Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CMake-添加全局构建步骤(不特定于任何项目)_Cmake - Fatal编程技术网

CMake-添加全局构建步骤(不特定于任何项目)

CMake-添加全局构建步骤(不特定于任何项目),cmake,Cmake,有没有办法用CMake添加“全局”构建步骤?每个构建执行一次且不与任何特定项目绑定的一个 将它添加到ZERO_CHECK项目中是可行的,但我不知道是否/如何做到这一点。看来唯一的方法是添加一个空目标并将构建步骤添加到其中。它并不漂亮,但很有效。是否向顶级CMakeLists.txt添加了一些内容?听起来好像你混淆了标题中提到的CMake的用法,以及CMake项目在VS中的工作方式 这个全局构建步骤究竟应该做什么?如果您不满意,可以使用CMake的安装工具,它内置了时间戳检查功能,以便在必要时只复

有没有办法用CMake添加“全局”构建步骤?每个构建执行一次且不与任何特定项目绑定的一个


将它添加到ZERO_CHECK项目中是可行的,但我不知道是否/如何做到这一点。

看来唯一的方法是添加一个空目标并将构建步骤添加到其中。它并不漂亮,但很有效。

是否向顶级CMakeLists.txt添加了一些内容?听起来好像你混淆了标题中提到的CMake的用法,以及CMake项目在VS中的工作方式


这个全局构建步骤究竟应该做什么?

如果您不满意,可以使用CMake的安装工具,它内置了时间戳检查功能,以便在必要时只复制新文件。但是你的用户可能会这样做,这可能不是你想要的

因为它会将另一个项目添加到列表中。幸运的是,所有_BUILD和ZERO_CHECK都是按字母顺序排列的第一个和最后一个项目,但新目标的名称可以是描述性的(在这种情况下,它将按字母顺序排列在其他项目之间),或者以A或Z开头,并显示在末尾或开头,但名称不是描述性的。或者它可以是描述性的,并以“389;”开头,但命名样式不匹配。对于某些IDE,您可以通过在每个目标上设置来整理您的解决方案资源管理器树。整洁,我必须对此进行研究。谢谢。它需要复制一些所有项目都依赖的文件。因此,如果一个开发人员构建项目A和B,则需要复制(一次)文件。如果其他开发人员构建项目C,则需要复制文件(一次)。因此,我无法将该步骤添加到所有项目中,因为它们会被复制多次。我无法将该步骤添加到任何一个项目中,因为它可能不会被添加为目标。您可以使用自定义命令的输出参数指定复制的文件,甚至可以添加一个touch命令来创建一个戳记文件,以确保文件只复制一次。我可以将文件复制多次,但最终我有20个项目,每个都试图复制文件。VS的输出窗口变得疯狂。因此,我认为添加一个执行复制的空目标是最干净的方法,特别是因为我现在知道了文件夹属性,这要归功于Fraser的评论。空目标解决方案正是我所需要的,我只需要克服我对它的非理性保留:)