たとえば、CMakeに対応したプロジェクトを持って来た際に、もとのCMakeLists.txtを弄らずに外部から変数(CMAKE_CXX_FLAGSなど)を与えたいとします。
cmake . -G "Generator" -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake
みたいな。
そんな時に活躍するのがこのcmake-toolchainsの機能ですが、この時set()を用いて変数を設定する際に気をつける必要があります。
set(CMAKE_CXX_FLAGS_DEBUG “${CMAKE_CXX_FLAGS_DEBUG} /MTd”)
このままでは実際に反映されません。CACHE指定をつけましょう
set(CMAKE_CXX_FLAGS_DEBUG “${CMAKE_CXX_FLAGS_DEBUG} /MTd” CACHE STRING “description")
変数の設定がキャッシュされるのでちゃんと有効化されます。
最高ですね