На самом деле, у меня есть проект с различными CMakeLists: один для компиляций и один для модульных тестов (с тестированием goole) для каждого «модуля». У меня есть структура вроде этого:Опция CMake Set включена только в одном CMakeLists
module_1
- | ЦСИ
--CMakeLists.txt // для компиляции модуля 1
--test
---- | CMakeLists.txt // для модульных тестов модуля 1
module_2
- | ЦСИ
--CMakeLists.txt // для компиляции модуля 2
--test
---- | CMakeLists // для единичных испытаний модуль 2
Теперь моя цель - создать только один CMakeLists.txt для каждого модуля и выполнить компиляцию и модульный тест в том же CMakeLists.txt. Поэтому я делаю OPTION в моем CMakeLists.txt (для компиляции), который запускает тест.
option(TEST_ENABLED
"Tests Unitaires Core"
OFF
)
if(TEST_ENABLED)
set...
endif()
Он работает хорошо для одного CMakeLists. Но если я строю все свои модули, опция активируется для каждого модуля (надеюсь, вы последуете за мной).
cmake -DTEST_ENABLED=ON -G"Unix Makefiles" ../module1
И запустить компиляцию с сервером (Jenkins) с некоторыми $variables
поэтому я хочу, чтобы активировать опции только для основных CMakeLists (тот, который под названием с командой CMake линии)
Как я могу сделать что ?
Если вы хотите получить больше информации, скажите мне
Спасибо advnace за помощь.
Это работает прекрасно. благодаря – Algorys