【发布时间】:2011-04-15 13:39:42
【问题描述】:
我正在尝试在我的源代码树中包含几个第三方库,对它们的构建系统进行最小的更改以便于升级。他们都使用 CMake,我也是,所以在我自己的 CMakeLists.txt 中,我可以使用 add_subdirectory(extern/foo) 作为 libfoo。
但是 foo CMakeLists.txt 编译测试工具、构建文档、我不需要的共享库等等。 libfoo 作者有远见地通过选项控制这些 - 例如option(FOO_BUILD_SHARED "Build libfoo shared library" ON) - 这意味着我可以通过 CMake 命令行设置它们。但我想默认关闭它并通过命令行覆盖。
我在add_subdirectory(extern/foo) 之前尝试过set(FOO_BUILD_SHARED OFF)。这样做的效果是在第二次和后续构建尝试期间不尝试构建共享库,但在第一次尝试期间不尝试构建共享库,这是我真正需要加速的。
这可能吗,还是我需要为这些项目维护分叉的 CMakeLists.txt?
【问题讨论】:
标签: c++ build build-process cmake