【发布时间】:2020-01-11 13:49:00
【问题描述】:
我有一个 CMakeLists.txt,其中包含以下内容,我无法修改:
set(BUILD_SHARED_LIBS ON)
我想使用命令行覆盖这个变量。我试过这个:
cmake -UBUILD_SHARED_LIBS -DBUILD_SHARED_LIBS=OFF ..
但它没有效果。有没有办法告诉 cmake 使用命令行中的值而不是这个值?
注意:我知道使用如下所示的缓存可以解决问题,但由于我无法编辑文件,遗憾的是这不是一个选项:
set(BUILD_SHARED_LIBS ON CACHE BOOL "library build mode")
【问题讨论】:
-
这是唯一可以不修改的 CMake 文件吗?您能否修改项目中的其他 CMakeLists.txt 文件,可能是调用
add_library()的文件? -
@squareskittles 遗憾的是,整个项目都作为 git 子模块引入。作为一种解决方法,我现在使用
sed在构建之前替换该行并在之后恢复...
标签: cmake