Я использую переменную cmake CMAKE_BUILD_CONFIG
, чтобы указать, какие модули репо компилировать, как в командной строке ...
cmake -DCMAKE_BUILD_CONFIG=A ..
Этот CMAKE_BUILD_CONFIG
затем используется в файле CMakeLists.txt
следующим образом ...
if(CMAKE_BUILD_CONFIG STREQUAL A)
message(STATUS "Compiling only config A modules")
set(MODULES
foo1
foo2
)
elseif(CMAKE_BUILD_CONFIG STREQUAL B)
message(STATUS "Compiling only config B modules")
set(MODULES
foo3
)
endif()
Так что теперь, когда я впервые запускаю cmake -DCMAKE_BUILD_CONFIG=A ..
(или B), он работает нормально. Однако после этого, похоже, CMAKE_BUILD_CONFIG
сохраняется в CMakeCache.txt
и не обновляется, если я звоню cmake -DCMAKE_BUILD_CONFIG=B ..
.
При поиске решения я нашел вызов unset(CMAKE_BUILD_CONFIG CACHE)
и добавил его в конец CMakeLists.txt
, но это не сработало.
Спасибо