2017-09-05 36 views
2

我有一個CMake文件,可以生成VS2015解決方案文件MyApp.sln。我建立MyApp.sln用下面的命令分別爲每個配置:如何使用CMake + msbuild構建所有配置

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

我不知道是否有人知道如何建立全都可以用單個的MSBuild命令的配置。例如,可能CMake可以生成一些「全部」配置?

我的問題與How can I build all with MSBuild from the command line?有些不同,因爲我沒有手動修改MyApp.sln文件,但它是由CMake生成的,所以我需要CMake中的一些選項來創建'all'目標或在一個調用msbuild它構建所有配置。

+2

可能的重複[如何使用MSBuild從命令行構建所有內容?](https://stackoverflow.com/questions/842706/how-can-i-build-all-with-msbuild-from-the - 命令行) – 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批處理腳本,它可以根據您的需要執行相同的操作。這肯定會比上面的自定義命令少一些眉毛。