2015-02-24 35 views
3

我試圖在編譯時使用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" 

回答

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文件複製。

+0

雖然這不能回答我的實際問題,但它爲我的初始意圖提供了一個工作解決方案,因此我接受了您的答案。 – 2015-02-27 08:04:18

相關問題