Я пытаюсь скопировать файлы из одного места назначения в другое, используя configure_file
.Я нашел следующее решение Как скопировать каталог из исходного дерева в двоичное дерево? .
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
в другую функцию, он прекратил создавать каталоги.Он просто копировал файлы без сохранения структуры.В основном оба фрагмента кода одинаковы, просто я удаляю цикл 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()