我創建使用的文件列表:如何使用cmake安裝文件的層次結構?
file(GLOB_RECURSE DEPLOY_FILES "${PROJECT_SOURCE_DIR}/install/*")
我想安裝所有在/ usr/myproject的這些文件中的/但我要保持在安裝文件夾中的文件樹:
install/junk
install/other/junk2
install/other/junk3
如果我使用:
:install(FILES ${DEPLOY_FILES} DESTINATION "usr/myproject")
所有文件在/ usr/myproject的作爲結束
/usr/myproject/junk
/usr/myproject/junk2
/usr/myproject/junk3
如何使安裝命令可以跟蹤相對路徑?
我已經做手工在for循環中解決這個問題的工作:
set(BASE "${PROJECT_SOURCE_DIR}/install")
foreach(ITEM ${DEPLOY_FILES})
get_filename_component(ITEM_PATH ${ITEM} PATH)
string(REPLACE ${BASE} "" ITEM_PATH ${ITEM_PATH})
install(FILES ${ITEM} DESTINATION "usr/myproject${ITEM_PATH}")
endforeach()
...但是這很煩人的事情。當然有更簡單的方法?
(廣東話看到安裝文檔任何東西,雖然...)
簡單有趣的是,他們難以做出簡單的**'cp -r' **操作。 – ulidtko