【发布时间】:2021-01-17 23:46:30
【问题描述】:
我正在将一个项目移植到 linux 和 cmake。它是一个巨大项目的一部分,每个子项目都在一个文件夹中。我只想构建我的项目及其依赖项。
我可以从主 CMakeList.txt 文件中评论其他项目,但这不起作用,因为对其他项目有一些依赖项(也可能依赖于其他项目......)
我不想修改来自其他项目的所有 cmake 文件来仅构建我需要的小部分,因为这很容易出错且耗时。例如,我可能会错误地签入一些我不应该签入的东西。
我的主要问题是其他项目不断中断(几乎其他人都只是在 Windows 中工作,所以 linux 构建没有得到很好的照顾)并且让我慢了很多。
我的问题是:有没有办法告诉 cmake:运行所有项目,但只编译编译某些子文件夹所需的内容?
【问题讨论】:
-
所以使用
EXCLUDE_FROM_ALL。或者指定只构建您想要的目标。 -
有数千个目标。我不能将 EXCLUDE_FROM_ALL 添加到每个。此外,每次都需要还原该更改以签入 tfs 存储库。
-
这就是为什么
add_subdirectory(dir EXCLUDE_FROM_ALL)- 然后这个子目录中的所有目标都是EXCLUDE_FROM_ALL。但是只要指定你要编译的目标,不要编译all,你不想这样吗? -
是的!这行得通。我希望我以前问过这个。我没有看到 add_subdirectory 的这个选项。如果您将其写为答案,我会将其标记为正确答案。
标签: cmake