Сборка с использованием CMake и блокировкой отдельных частей кода при использовании командной строки
Иногда при разработке ПО нет необходимости в сборке тестов и прочих подпрограмм в момент когда ПО отлаживается
Ранее я комментировал эти фрагменты в CMakeLists.txt и зачастую забывал раскомментировать, сейчас продумал такой способ:
CMakeLists.txt:
if(Without_tests)
message("tests build off")
else()#"" or FALSE => use tests
message("tests build on")
add_subdirectory(tests)
endif(Without_tests)
add_executable(main App main.cpp...)
set(Without_tests FALSE CACHE BOOL "Variable for tests" FORCE)
Запускаем CMake сборку с параметрами:
cmake .. —D Without_tests:BOOL=TRUE/FALSE
Как это работает:
1)—D Without_tests:BOOL=TRUE/FALSE создает CACHE переменную «Without_tests» в CMakeCache.txt
2) if/else выбирает инструкцию
если переменная не определена, это соответствует «» и равно false
3) сброс переменной для добавления переменной по умолчанию