【发布时间】:2019-03-15 02:57:30
【问题描述】:
我正在开发一个基于 CMake 的项目,该项目依赖于一个巨大的第三方代码库,该代码库也使用 CMake。我通过 ExternalProject_Add 机制包括第三方项目。该项目默认使用 Makefile,尽管父项目是 Xcode 项目。
生成的外部项目构建非常缓慢,因为它只使用一个内核。我不认为我可以强制项目生成 Xcode 项目而不是 Makefile。
假设我被 Makefile 卡住了,我如何通知 ExternalProject_Add 使用所有可用于大型第三方项目的内核?
请注意,添加不可避免的“-j N”选项(为什么“make”默认不这样做?)需要有条件地出现在 Mac 和 Linux 版本中,而不是 Windows/Visual Studio。
【问题讨论】:
-
请注意,我能够有条件地为外部项目生成 Xcode 项目。我怀疑这个项目默认为 Makefiles 的原因可能是因为我必须覆盖 ExternalProject_Add CONFIGURE_COMMAND 以指定主 CMakeLists.txt 所在的子目录(不在 SOURCE_DIR 中)。现在 Xcode 构建速度要快得多。但是我在 Linux 上仍然会遇到同样的问题,所以我需要解决告诉 make 使用多个内核的问题。
标签: xcode visual-studio makefile cmake external-project