macos - 如果 CMake 中的目录内容已更改,如何复制目录?

标签 macos copy cmake

我正在寻找一种方法来复制目录(如果目录的内容与目标不同)。有这个 copy_if_ different 选项,但它仅适用于文件。我正在寻找一种递归方法。

这是我到目前为止的代码:

add_custom_command(
  TARGET ${PROJECT_NAME}
  POST_BUILD
  COMMAND ${CMAKE_COMMAND}
  ARGS -E copy_directory "${PROJECT_SOURCE_DIR}/../folderA" "${PROJECT_SOURCE_DIR}/release/Debug/${PROJECT_NAME}.app/Contents/"
  COMMENT "Copying Bundle Stuff"
)

“仅”unix 系统的解决方案就可以了,因为我在 OSX 上运行它。

最佳答案

对于 OS X,您可以使用内置命令 rsync 来代替:

ADD_CUSTOM_COMMAND(
   TARGET ${PROJECT_NAME}
   POST_BUILD
   COMMAND rsync
   ARGS -r
      "${PROJECT_SOURCE_DIR}/../folderA/"
      "${PROJECT_SOURCE_DIR}/release/Debug/${PROJECT_NAME}.app/Contents/"
   COMMENT "Copying Bundle Stuff")

另请参阅rsync documentation .

关于macos - 如果 CMake 中的目录内容已更改,如何复制目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13156015/

相关文章:

vba - 从 VBA 复制范围中排除 1 行

c++ - cpprestsdk 使用 vcpkg、cmake - 找不到包含文件

符号链接(symbolic link)的 CMake 命令副本

c++ - 我如何使用 CMake 将 opencv 简单地包含在我的项目中

c++ - 从命令行用 clang 编译 : compatibility issues mac os X

macos - NSTextView 撤消/重做属性更改(当不是第一响应者时)

objective-c - 从 NSString 中删除前缀

使用 xdebug 的 PHPStorm 本地调试永远不会捕获并且无法验证

gradle - 如何根据子文件夹复制文件并重命名

java - 如何使用 apache commons io 复制空目录?