Сборка только 1 таргета в CMake

Есть проект с различными таргетами в верхнем CMakeLists.txt. У этих таргетов свои зависимости. Могу ли я, не изменяя CMakeLists.txt, сбилдить только 1 таргет, имея только его зависимости в системе?

Проблема в том, что перед тем как делать cmake --build . --target my_target надо сгенерировать build tree с помощью cmake ... И в момент этой генерации исполняются все команды верхнего CMakeLists.txt, в том числе поиск зависимостей для таргетов, которые не хочу билдить. А у меня в текущем контейнере установлены зависимости только для интересующего таргета, поэтому выдаёт ошибки. Можно ли как-то в момент cmake .. игнорировать части CMakeLists.txt, относящиеся не к моему таргету? Или это делается только редактированием CMakeLists.txt с кучей строк типа IF (BUILD_THIS_TARGET)?

Пример верхнего CMakeLists.txt:

find_package(lib_1_dep)
add_library(lib_1)
target_link_libraries(lib_1 PRIVATE lib_1_dep)

find_package(lib_2_dep)
add_library(lib_2)
target_link_libraries(lib_2 PRIVATE lib_2_dep)

Надо сбилдить только lib_1, lib_2_dep в системе не установлена.


Ответы (0 шт):