1. ホーム
  2. if-statement

[解決済み] cmake if else with option

2022-03-11 18:18:03

質問

を使用する際に問題があります。 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 オプションでOFFを付けてもダメなんですが、何がダメなんでしょうか?

解決方法は?

それは、オプションの値がキャッシュに保存されるからです( CMakeCache.txt ).

を変更した場合 デフォルト の値は、CMakeLists に含まれますが 実際の の値がすでにキャッシュに保存されている場合は、キャッシュからその値を読み込むだけです。

そのため、CMakeList のロジックをテストするには、CMake を再実行する前に、毎回キャッシュを削除してください。