我试图在我的源代码树中包含几个第三方库,只需对其构建系统进行最小的更改,以便于升级.他们都像我一样使用CMake,因此在我自己的CMakeLists.txt中我可以使用add_subdirectory(extern/foo)libfoo.
但是foo CMakeLists.txt编译测试工具,构建文档,我不需要的共享库,等等.libfoo作者有远见控制这些via选项 - option(FOO_BUILD_SHARED "Build libfoo shared library" ON)例如 - 这意味着我可以通过CMake命令行设置它们.但是我希望默认情况下关闭它并通过命令行覆盖.
我以前尝试set(FOO_BUILD_SHARED OFF)过add_subdirectory(extern/foo).这样做的结果是在第二次和后续构建尝试期间不尝试构建共享库,而不是在第一次构建期间构建共享库,这是我真正需要加速的那个.
这是可能的,还是我需要为这些项目维护分叉的CMakeLists.txt?