cmake:传递全局模式以设置\u目录\u属性其他\u创建\u清理\u文件?

cmake:传递全局模式以设置\u目录\u属性其他\u创建\u清理\u文件?,cmake,Cmake,作为构建过程的一部分,我们用版本信息标记某些二进制文件,如git分支、提交次数、构建变量等,并将它们安装到本地源文件夹中 例如,对于名为“app”的二进制文件,我们可以在本地源目录中安装一个名为“app.branch\u foo.91.debug” 这些标记在makefiles未更改的情况下更改,因此为了匹配,我们必须使用全局模式(即:在cmake makefile生成过程中,我们无法生成匹配的标记) 匹配的全局模式是“app.[0-9]*” 如果我为附加的\u MAKE\u CLEAN\u文件

作为构建过程的一部分,我们用版本信息标记某些二进制文件,如git分支、提交次数、构建变量等,并将它们安装到本地源文件夹中

例如,对于名为
“app”
的二进制文件,我们可以在本地源目录中安装一个名为
“app.branch\u foo.91.debug”

这些标记在makefiles未更改的情况下更改,因此为了匹配,我们必须使用全局模式(即:在cmake makefile生成过程中,我们无法生成匹配的标记)

匹配的全局模式是
“app.[0-9]*”

如果我为
附加的\u MAKE\u CLEAN\u文件指定一个全局模式,它会将其指定为实际文件

set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES app.*[0-9]*)
这导致

file(REMOVE_RECURSE
    "../../../app/app.*[0-9]*"
    ...
)
我尝试将嵌套的
文件(GLOB…
添加到
set\u目录\u属性中,但这也不起作用

  • 是否可以在
    set\u directory\u properties(属性附加\u MAKE\u CLEAN\u文件…)中指定全局模式

  • 是否可以在
    文件中指定全局模式(删除递归…


您能澄清一下安装到源目录是什么意思吗?我希望您使用的是源代码外版本,那么不建议修改源目录。@usr1234567是的,我使用的是源代码外版本。但是,作为我们公司使用的内部构建过程的一部分,构建的二进制文件随后会以特定的文件名复制到应用程序的源目录中,如上所述。这是我们发展过程的一部分,对我们来说很有效。是否鼓励的问题是另一回事。这是现状,所以我正试图找到一个解决我特殊问题的办法