我们正在从Clearmake迁移到Cmake。我们的代码库中的一个项目仅对所有标头使用一个位置(然后每个人都包含这个位置)。使用之前的Clearmake,我们在编译之前运行了一个目标export_include
。此目标将获取变量中指定的所有标头,并将它们复制到全局位置。它甚至足以复制丢失或更改的缺失。
有没有办法在Cmake中复制这种行为?我查看了add_custom_command
和add_custom_target
。 add_custom_command
只能用作构建目标的一部分(不是全局),并且add_custom_target
始终被视为过时,因此它总是会反复复制所有标头。理想情况下,我会运行make export_headers
,它会将新的和已更改的标头复制到共享位置。如果我运行make
(没有参数),它将首先执行export_headers
并且只有在它开始重建之后才会执行。
在普通的Make中,通常是通过运行
完成安装make
make install
我需要像
这样的东西make export
make
make install
理想情况下,一个make
目标可以运行上述三个目标。
P.S。在几十个目录和大约150个目标(库和二进制文件)中有超过1300个头文件,因此返回并指定每个目标的依赖项实际上并不是一个选项。