我正在处理后期构建、INSTALL 命令。构建项目后,我构建 INSTALL 项目,它将目录复制到用户指定的位置。我可以正常使用
安装(TARGETS EXECTUABLE RUNTIME DESTINATION CMAKE_INSTALL_PREFIX/USERSPECIFIEDLOCATION)。
我想把它改成
安装(TARGETS EXECTUABLE RUNTIME DESTINATION CMAKE_INSTALL_PREFIX/DEBUG or RELEASE)。
因此,如果我在 VS2012 中使用调试进行构建,它应该将可执行文件复制到 CMAKE_INSTALL_PREFIX/DEBUG 而不是 CMAKE_INSTALL_PREFIX/USERSPECIFIEDLOCATION。
提前致谢。
最佳答案
如果您仔细查看 documentation,您会找到问题的答案:
The CONFIGURATIONS argument specifies a list of build configurations
for which the install rule applies (Debug, Release, etc.).
例子:
add_executable(boo boo.cpp)
install(
TARGETS
boo
CONFIGURATIONS
Debug
DESTINATION
bin/Debug
)
install(
TARGETS
boo
CONFIGURATIONS
Release
DESTINATION
bin/Release
)
DEBUG_POSTFIX
但我认为您只需要 CONFIG_POSTFIX目标属性:
add_executable(bar bar.cpp)
add_library(baz baz.cpp)
set_target_properties(bar baz PROPERTIES DEBUG_POSTFIX d)
install(TARGETS bar DESTINATION bin)
install(TARGETS baz DESTINATION lib)
使用 Release
配置生成 install
目标生成:bar.exe
和 baz.lib
。
使用Debug
配置生成install
目标:bard.exe
和bazd.lib
。
注意事项
请注意,对于库,您可以使用 CMAKE_DEBUG_POSTFIX (我不知道为什么,但是 CMAKE_DEBUG_POSTFIX
不适用于可执行文件):
set(CMAKE_DEBUG_POSTFIX d)
add_library(baz baz.cpp)
install(TARGETS baz DESTINATION lib)
相关
target_link_libraries .请参阅调试
和优化
。
关于visual-studio-2012 - 在 CMake 中根据 Release/Debug 构建类型创建一个目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20767436/