Build CMake without tests in command line

Сборка с использованием 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) сброс переменной для добавления переменной по умолчанию

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *