我有一个CMake项目,它有多个目标,这些目标是通过add_subdirectory
添加的,并且add_subdirectory
调用是由选项保护的。使用Ninja
作为构建运行程序。
现在,当我关闭某个特定的选项并重新配置时,现在丢失的子目录的所有目标文件显然都无效了。当我重新打开该选项时,add_subdirectory
再次运行,但它希望从头开始重新编译所有内容。
显然,ccache
在这里有很大帮助,因为输入和输出完全相同。但是复制对象仍然比什么都不复制要慢得多,而且链接器运行时是最重要的。
有没有办法告诉cmake:如果子目录没有了,请暂时考虑一下,并保持文件和它们的信息有效,只是不使用它们?
1条答案
按热度按时间j0pj023g1#
如果子目录没有了,请暂时考虑一下,并保持文件和它们的信息有效,只是不使用它们?
正是,所以不要使用,不要修改
add_subdirectory
,将项目的依赖改为不依赖子目录导出的目标。