相关疑难解决方法(0)

从父CMakeLists.txt覆盖CMake中的默认选项(...)值

我试图在我的源代码树中包含几个第三方库,只需对其构建系统进行最小的更改,以便于升级.他们都像我一样使用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?

c++ build-process build cmake

56
推荐指数
3
解决办法
2万
查看次数

标签 统计

build ×1

build-process ×1

c++ ×1

cmake ×1