で設定すると、変数のCMAKE_GENERATOR
設定が遅すぎるように思えCMakeLists.txt
ます。使用する場合 (開始時でもCMakeLists.txt
)
set(CMAKE_GENERATOR "Ninja")
message("generator is set to ${CMAKE_GENERATOR}")
次のような出力が表示されます
% cmake ../source
-- The C compiler identification is GNU 4.9.2
...
-- Detecting CXX compile features - done
generator is set to Ninja
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/build
したがって、変数は生成手順の最後にのみ設定されます。次のようなものを使用する場合
set(CMAKE_GENERATOR "Ninja" CACHE INTERNAL "" FORCE)
でCMakeLists.txt
、最初の実行時にcmake ../source
( なしで-G
)デフォルトのジェネレーターが使用されます。ただし、変数CMAKE_GENERATOR
はキャッシュに格納されます。そのため、後で再実行すると、キャッシュcmake ../source
内の変数で指定されたとおりにジェネレーターが使用されます。CMAKE_GENERATOR
ただし、これは確かに最も洗練されたソリューションではありません;-)cmake -G generator
ユーザーのために実際に実行するバッチファイルを使用するかもしれません...