我正在尝试使用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"
答案 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文件分别复制到构建目录。