【发布时间】:2019-04-12 14:01:26
【问题描述】:
我正在尝试使用configure_file 将文件从一个目的地复制到另一个目的地。我找到了以下解决方案How to copy directory from source tree to binary tree?。
function(USR_copy_directory srcDir destDir)
make_directory(${destDir})
file(GLOB_RECURSE files RELATIVE ${srcDir} ${srcDir}/*)
foreach(file ${files})
set(srcFile ${srcDir}/${file})
if(NOT IS_DIRECTORY ${srcFile})
configure_file(${srcFile} ${destDir}/${file} COPYONLY)
endif(NOT IS_DIRECTORY ${srcFile})
endforeach(file)
endfunction()
这个解决方案让我能够完成这项工作。但是当我试图将for 放在另一个函数中时,它停止创建目录。它只是简单地复制了文件而不保留结构。基本上两个sn-ps的代码都是一样的,只是我删除了for循环并将它放在另一个函数中,仅此而已。我究竟做错了什么?
function(USR_copy_directory srcDir destDir)
make_directory(${destDir})
file(GLOB_RECURSE files RELATIVE ${srcDir} ${srcDir}/*)
set(srcFile "")
foreach(file ${files}) #this for loop allows me to append file and path
list(APPEND srcFile "${srcDir}/${file}")
endforeach(file)
USR_copy_files("${srcFile}" ${destDir})
endfunction()
function(USR_copy_files files destDir)
foreach(file ${files})
if(NOT IS_DIRECTORY ${file})
get_filename_component(filename ${file} NAME)
configure_file(${file} ${destDir}/${filename} COPYONLY)
endif(NOT IS_DIRECTORY ${file})
endforeach(file)
endfunction()
【问题讨论】: