2017-09-05 20 views
2

私はVS2015ソリューションファイルMyApp.slnを生成するCMakeファイルを持っています。私は、構成ごとに個別に以下のコマンドでMyApp.sln構築:CMake + msbuildですべての構成を構築する方法

msbuild MyApp.sln /property:Configuration=Debug 
msbuild MyApp.sln /property:Configuration=RelWithDebInfo 
msbuild MyApp.sln /property:Configuration=Release 

誰もが単一のMSBuildコマンドですべての構成を構築する方法を知っている場合、私は疑問に思います。おそらく、CMakeはいくつかの 'すべて'の設定を生成することができます。

私の質問は、手動でMyApp.slnファイルを変更しないので、How can I build all with MSBuild from the command line?とは少し異なりますが、CMakeによって生成されるので、CMakeで 'all'ターゲットを作成するか、msbuildをそれはすべての構成を構築します。

+2

[MSBuildをすべてコマンドラインからビルドするにはどうすればいいですか?](https://stackoverflow.com/questions/842706/how-can-i-build-all-with-msbuild-from-the -command-line) – arrowd

+0

おそらく私の質問はCMakeを使うので少し違います。 – Koban

+0

CMakeはソリューションを生成するために使われますが、msbuildを使ってビルドします。 – arrowd

答えて

1

これは少し愚かですが、プロジェクトのビルド自体を引き起こすことCMakeのにカスタムターゲットを追加することができます。

add_custom_target(build_all_configs 
    COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target ALL_BUILD --config Debug 
    COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target ALL_BUILD --config Release 
) 

あなたがアイデアを得る... CMake can build its own projects、そうする必要がないことに注意してくださいMSBuildに全く頼っている。

これは正常に動作しますが、私はむしろconfigure_fileあなたのニーズに適した場所に同じことをするバッチスクリプトです。それは間違いなく上のカスタムコマンドよりも眉毛を少なくします。

関連する問題