我创建使用的文件列表:如何使用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