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

时间:2015-02-24 06:33:56

标签: visual-studio-2013 cmake

我正在尝试使用CMake在编译时将几个.ini文件部署到二进制目录。我通过以下几行(手工输入;如果发现拼写错误,可随意编辑)

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吗?

我在Visual Studio 2013中使用CMake 3.0.2。 我正在生成这样的Visual Studio解决方案:

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

1 个答案:

答案 0 :(得分:1)

是的,您可以在构建项目之前添加自定义命令来复制.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文件分别复制到构建目录。