Я совершенно новый для CMake и хочу достичь с ним очень «общей» задачи. До сих пор я просто использовал Eclipse CDT с автогенерированными make-файлами. Предположим, что у меня есть два проекта A и B. Строит статическую библиотеку, а B - эту библиотеку. Конечно, при построении B я хочу, чтобы статическая библиотека, созданная A, была обновлена. Таким образом, здание проекта B должно инициировать построение A, если какие-либо изменения были внесены в источниках A. Это поведение по умолчанию Eclipse, когда просто вставляя A в зависимость от B.CMake: В зависимости от другого проекта
Итак, что такое самый простой способ добиться этого с помощью CMake? Я прочитал несколько уроков и подобных вопросов, но никто не дал мне удовлетворительного ответа.
Например, есть учебник http://www.cmake.org/Wiki/CMake/Tutorials/Exporting_and_Importing_Targets, который может быть решением. Однако для такой простой задачи это кажется довольно сложным. Я должен «установить» цели A, но я не хочу ничего устанавливать, я просто хочу, чтобы B зависел от A. Затем я слышал о ExternalProject_add, но я не знаю, как справиться с этим.
Они не находятся в одном файле CMakeLists.txt и файл верхнего уровня отсутствует. Таким образом, я использовал ваше последнее предложение просто используя ADD_SUBDIRECTORY (A) и указав в качестве двоичного файла каталог A как двоичный каталог. Работает как шарм, спасибо! – gexicide
Можете ли вы поделиться своим cmake? У меня такая же проблема, и я совершенно новый для cmake. Не уверен, что я понимаю ADD_SUBDIRECTORY – pdiddy