CMAKE 文件(复制 <src> <dest>) 无法正常工作

CMAKE file(COPY <src> <dest>) not alaways working

本文关键字:lt gt 常工作 工作 文件 src CMAKE dest 复制      更新时间:2024-09-29

所以我在调用命令时遇到了问题:

file( COPY ${src_dir} DESTINATION ${dest_dir} )

一半的时间它工作,然后一半的时间我得到一个错误:

文件COPY无法设置"的权限${dest_dir}/subdir";

我的问题是,在执行之间,我没有更改任何权限或接触这些文件。我更喜欢使用这种方法来复制我们的文件,因为add_custom_command/target的其他方法似乎对我们不起作用。在最终声明我们的可执行目标之前,我需要复制这些文件。

我甚至愿意使用bash-shell来执行这个复制命令,但它必须在cmake执行的这个特定点上完成。

我一直在想file (COPY...)是否会抛出一个返回值,如果我得到一个返回,是否有可能重新运行复制命令。有人知道这是否可能吗?

如果遇到这个问题,有人能帮忙吗?

谢谢!

编辑:我已经尝试过使用不同的FILE_PERMISSIONS来看看它是否能正常工作。

您可以使用PERMISSIONS <permissions>FILE_PERMISSIONS <permissions>DIRECTORY_PERMISSIONS <permissions>显式设置权限,也可以通过NO_SOURCE_PERMISSIONS跳过权限设置。

您可以破解ls -laR ${dest_dir}命令,查看在调用file(COPY ...)时文件系统中是否发生了任何特殊情况。

所以,我最终所做的只是在while循环中使用这个复制步骤,因为它通常在第2次(如果不是第一次的话(工作。这不是一种优雅的方式,可能只适用于我的情况,但如果有人能想到其他方法,请留下其他答案。