在Cmake

时间:2016-08-23 16:56:16

标签: c++ cmake

我们正在从Clearmake迁移到Cmake。我们的代码库中的一个项目仅对所有标头使用一个位置(然后每个人都包含这个位置)。使用之前的Clearmake,我们在编译之前运行了一个目标export_include。此目标将获取变量中指定的所有标头,并将它们复制到全局位置。它甚至足以复制丢失或更改的缺失。

有没有办法在Cmake中复制这种行为?我查看了add_custom_commandadd_custom_targetadd_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个头文件,因此返回并指定每个目标的依赖项实际上并不是一个选项。

0 个答案:

没有答案