如何自动添加CMake INSTALL项目来构建配置

问题描述:

我试图在编译时使用CMake将几个.ini文件部署到二进制目录。我这样做是通过以下线路(手工输入,随意编辑,如果你发现一个错字)如何自动添加CMake INSTALL项目来构建配置

FILE(GLOB INI_FILES "${CMAKE_CURRENT_SOURCE_DIR}/../misc/*.ini") 
INSTALL(FILES ${INI_FILES} CONFIGURATIONS Debug DESTINATION ${CMAKE_BINARY_DIR}/bin/Debug) 
INSTALL(FILES ${INI_FILES} CONFIGURATIONS Release DESTINATION ${CMAKE_BINARY_DIR}/bin/Release) 

这正常产生在我的Visual Studio解决方案的INSTALL项目如果“编”手动其中工程。但是,该项目不是解决方案的调试和发布版本配置的一部分,这意味着它在编译解决方案时不会执行。有没有办法将项目手动添加到CMake的构建配置中?

或者这是不是打算,我需要以不同的方式调用CMake?

我使用cmake 3.0.2与Visual Studio 2013年 我生成我的Visual Studio解决方案是这样的:

"%VS120COMNTOOLS%..\..\VC\vcvarsall" amd64 
cmake .. -G "Visual Studio 12 2013 Win64" 

是的,你可以添加自定义命令复制.ini文件在你建立这个项目之前。假设你的构建目标被命名为my_target,你可以做这样的事情:

FILE(GLOB INI_FILES "${CMAKE_CURRENT_SOURCE_DIR}/../misc/*.ini") 
add_executable(my_target test.cpp) 
foreach(FN ${INI_FILES}) 
    add_custom_command(TARGET my_target 
     PRE_BUILD 
     COMMAND ${CMAKE_COMMAND} -E copy "${FN}" "${CMAKE_CURRENT_BINARY_DIR}") 
endforeach() 

它基本上使用的cmake单独到构建目录中的.ini文件复制。

+0

虽然这不能回答我的实际问题,但它为我的初始意图提供了一个工作解决方案,因此我接受了您的答案。 – 2015-02-27 08:04:18