Допустим, там следующую структуру каталогов:CMake: добавить зависимость не в подкаталоге
root
|
+--projects
| |
| +-test
| |
| +-CMakeFiles.txt
|
+--libs
|
+-testlib
|
+-CMakeFiles.txt
тест содержит CMakeFiles.txt и testlib также содержит CMakeFiles.txt. «test» создает исполняемый файл, а «testlib» создает статическую библиотеку.
Я хочу, чтобы «тест» связывался с «testlib» без использования символических ссылок и без перемещения библиотеки «testlib» в подкаталог в «тесте».
Поскольку «testlib» не подкаталог «тест», я не могу сделать
add_subdirectory("../../libs/testlib")
В CMakeFiles.txt тесте по - CMake будет жаловаться «testlib» не находится в подкаталоге «тест» ,
Кроме того, поскольку система имеет несколько разных компиляторов, я не могу просто установить библиотеки «testlib» в какой-то центральный каталог, поэтому я хочу, чтобы тест собирал локальную копию testlib и связывался с ней (т. Е. Как если бы testlib был подкаталог). Я также хочу, чтобы «тестовый» проект автоматически перестраивал «testlib», если он был изменен.
Итак, как я могу с этим справиться? cmake 2.8.4, winxp sp3.
спасибо - это именно то, что мне было нужно. – SigTerm
@Fraser - Можно ли указать двоичный каталог в CMakeFile testlib_build? – tower120
@ tower120 - Нет, вам нужно указать его в вызове 'add_subdirectory'. – Fraser