你可以用add_custom_command.
說你的目標(biāo)被調(diào)用MyTarget
,然后你可以這樣做:
add_custom_command(TARGET MyTarget PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
${CMAKE_SOURCE_DIR}/config/ $<TARGET_FILE_DIR:MyTarget>)
每次構(gòu)建MyTarget
并將"/ config"的內(nèi)容復(fù)制到目標(biāo)exe/lib最終的目錄時(shí),都會(huì)執(zhí)行此操作.
正如馬克Lakata在下面評(píng)論指出,更換PRE_BUILD
用POST_BUILD
在add_custom_command
確保復(fù)制如果生成成功才會(huì)發(fā)生.
說明
-
${CMAKE_COMMAND}
?是CMake的路徑 -
-E
?使CMake運(yùn)行命令而不是構(gòu)建 -
copy_directory
是一個(gè)命令行工具 -
config
是一個(gè)生成器表達(dá)式,在$<TARGET_FILE_DIR:MyTarget>
文檔中描述.
- 有沒有辦法讓`make clean`知道在項(xiàng)目清理時(shí)必須刪除復(fù)制的文件??(6認(rèn)同)
- POST_BUILD可能是更好的選擇,這意味著只有在構(gòu)建成功時(shí)才會(huì)復(fù)制文件.?(5認(rèn)同)
- 有沒有辦法復(fù)制目錄本身而不是內(nèi)容??(3認(rèn)同)
除了最佳答案,
要復(fù)制目錄本身而不是內(nèi)容,您可以添加/${FOLDER_NAME}
到第二個(gè)參數(shù)的末尾。
像這樣:文章來源:http://www.zghlxwxcb.cn/news/detail-600174.html
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
${CMAKE_SOURCE_DIR}/config $<TARGET_FILE_DIR:${PROJECT_NAME}>/config)
使用符號(hào)鏈接
CMake 通過以下方式啟用符號(hào)鏈接create_symlink
:文章來源地址http://www.zghlxwxcb.cn/news/detail-600174.html
add_custom_command(TARGET ${CMAKE_PROJECT_NAME} PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E create_symlink
${CMAKE_SOURCE_DIR}/config $<TARGET_FILE_DIR:${PROJECT_NAME}>/config)
到了這里,關(guān)于[CMakeLists]使用CMake后如何將目錄內(nèi)容復(fù)制到build目錄的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!