Msbuild 如何为特定配置生成Visual Studio项目?
使用CMake的Msbuild 如何为特定配置生成Visual Studio项目?,msbuild,cmake,sfml,Msbuild,Cmake,Sfml,使用CMake的ExternalProject\u Add,我可以自动构建依赖项。但是,尽管我通过了CMAKE\u build\u TYPE和build\u SHARED\u LIBS,但最终生成配置不匹配 如何生成生成发布版本的VisualStudio项目,而不是在没有提供命令行参数的情况下退回到调试模式?是否有一种方法可以生成一个项目,该项目使用一个msbuild项目生成发行版和调试版。sln?对于多配置生成器(例如Visual Studio),实际的版本配置(调试或发行版)是在生成项目时指
ExternalProject\u Add
,我可以自动构建依赖项。但是,尽管我通过了CMAKE\u build\u TYPE
和build\u SHARED\u LIBS
,但最终生成配置不匹配
如何生成生成发布版本的VisualStudio项目,而不是在没有提供命令行参数的情况下退回到调试模式?是否有一种方法可以生成一个项目,该项目使用一个
msbuild项目生成发行版和调试版。sln
?对于多配置生成器(例如Visual Studio),实际的版本配置(调试或发行版)是在生成项目时指定的。在配置时设置CMAKE\u BUILD\u类型
无效
使用Visual Studio生成器时,使用ExternalProject\u Add
命令设置外部项目的生成过程,以便项目使用当前在IDE中选择的生成配置。在CMake术语中,这意味着执行以下代码:
cmake --build <BINARY_DIR> --config ${CMAKE_CFG_INTDIR}
要同时生成发行版和调试版,请添加另一个cmake调用:
ExternalProject_Add(SFML
...
#--Build step-----------------
BINARY_DIR ${SFML_PREFIX}/build
BUILD_COMMAND
${CMAKE_COMMAND} --build <BINARY_DIR> --config Release
COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config Debug
...
)
ExternalProject\u Add(SFML
...
#--构建步骤-----------------
二进制目录${SFML\u前缀}/build
生成命令
${CMAKE_COMMAND}--build--config发行版
命令${CMAKE_COMMAND}--build--config调试
...
)
非常感谢。所以我可以使用cmake--build--config Release
在发布模式下构建一个配置好的项目?是否有一个选项可以在一个命令中同时生成发布和调试?此外,在单一配置环境中(我假设GCC是其中之一),我是否仍然可以使用--config
标志覆盖建筑上的配置类型?第一个问题:是。第二个问题:不是用一个命令。您必须调用cmake两次。第三个问题:否。但是cmake--build
默认为cmake\u build\u TYPE
中设置的配置,对吗?否。对于多配置生成,将忽略cmake\u build\u TYPE
。默认生成配置通常是CMAKE\u配置类型中的第一个。
ExternalProject_Add(SFML
...
#--Build step-----------------
BINARY_DIR ${SFML_PREFIX}/build
BUILD_COMMAND
${CMAKE_COMMAND} --build <BINARY_DIR> --config Release
...
)
ExternalProject_Add(SFML
...
#--Build step-----------------
BINARY_DIR ${SFML_PREFIX}/build
BUILD_COMMAND
${CMAKE_COMMAND} --build <BINARY_DIR> --config Release
COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config Debug
...
)