如果目录中的任何文件不存在于指定的目标中,我如何将目录的内容复制到另一个目录中? (我想复制只缺少的那些,而不是用新的替换)
答案 0 :(得分:1)
这是你的表现..
1-将CMakeLists.txt添加到包含您要复制的文件夹的同一目录中。
file(GLOB_RECURSE allfiles RELATIVE "${CMAKE_SOURCE_DIR}/test/" "folder/*")
foreach( each_file ${allfiles} )
set(destinationfile "${CMAKE_BINARY_DIR}/${each_file}")
set(sourcefile "${CMAKE_CURRENT_SOURCE_DIR}/${each_file}")
add_custom_command(TARGET uox3
POST_BUILD
COMMAND ${CMAKE_COMMAND}
-Ddestinationfile=${destinationfile}
-Dsourcefile=${sourcefile}
-P ${CMAKE_CURRENT_SOURCE_DIR}/check.cmake
)
endforeach(each_file)
2-创建另一个名为" check.cmake"的文件在同一个目录。
if(NOT EXISTS ${destinationfile})
execute_process(COMMAND ${CMAKE_COMMAND}
-E copy ${sourcefile} ${destinationfile})
endif()
那就是它。我为CMake 3.0.0进行了测试,但它确实有效。