Подтвердить что ты не робот

Cmake if else с опцией

Мне сложно использовать option вместе if-else в cmake.

project(test)

option(TESTE "isso é um teste" OFF)

if(TESTE)
  message("true")
else()
  message("false")
endif()

add_executable(test main.cpp)

Он всегда отображает true, даже если я отключу опцию, что я делаю неправильно?

4b9b3361

Ответ 1

Это потому, что значение параметра хранится в кеше (CMakeCache.txt).

Если вы измените значение по умолчанию в CMakeLists, но фактическое значение уже сохранено в кеше, оно просто загрузит значение из кеша.

Итак, чтобы проверить логику в CMakeLists, удалите кеш каждый раз перед повторным запуском CMake.