Допустим, существует следующая структура каталогов:
root
|
+--projects
| |
| +-test
| |
| +-CMakeFiles.txt
|
+--libs
|
+-testlib
|
+-CMakeFiles.txt
test
содержит CMakeFiles.txt
и testlib
также содержит CMakeFiles.txt
. «test» создает исполняемый файл, а «testlib» создает статическую библиотеку.
Я хочу, чтобы "test" связывался с "testlib" без использования символических ссылок и без перемещения библиотеки "testlib" в подкаталог внутри "test".
Поскольку "testlib" не является подкаталогом "test", я не могу выполнить
add_subdirectory("../../libs/testlib")
В тесте CMakeFiles.txt
— CMake будет жаловаться на то, что «testlib» отсутствует в подкаталоге «test».
Кроме того, поскольку в системе есть несколько разных компиляторов, я не могу просто установить библиотеки «testlib» в какой-то центральный каталог, поэтому я хочу, чтобы test
скомпилировал локальную копию testlib
и связать с ним (т.е. как если бы testlib
был подкаталогом). Я также хочу, чтобы проект «test» автоматически перестраивал «testlib», если он был изменен.
Итак, как мне с этим справиться? Я использую CMake 2.8.4 в Windows XP SP3.