【问题标题】:How to set a CMake option() at command line如何在命令行设置 CMake 选项()
【发布时间】:2013-08-28 10:25:39
【问题描述】:

我创建了一个包含以下内容的 CMakeLists.txt

project(P4V)
cmake_minimum_required(VERSION 2.6)

option(BUILD_STATIC_LIBS "Build the static library" ON)
option(BUILD_SHARED_LIBS "Build the shared library" ON)
option(BUILD_TESTS "Build test programs" OFF)

include_directories(${CMAKE_SOURCE_DIR}/include)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
set(CMAKE_BUILD_TYPE Release)

add_subdirectory(src)
if(BUILD_TESTS)
    add_subdirectory(tests)
endif(BUILD_TESTS)

默认情况下 BUILD_TESTS 是关闭的,如何在没有 CMake GUI 的情况下打开它,但使用 cmake 命令本身? 我尝试了以下方法,但它不起作用

cmake .. -G %1 -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON -DBUILD_TESTS=ON

【问题讨论】:

标签: cmake cmakelists-options


【解决方案1】:

删除 CMakeCache.txt 文件并尝试以下操作:

cmake -G %1 -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON -DBUILD_TESTS=ON ..

在包含路径之前,您必须输入所有命令行定义。

【讨论】:

  • 如何具体指定OFF?我似乎无法关闭 CUDA 选项。
  • @Ébe-isaac 如果你想明确关闭一个选项,只需使用-DOPTION=OFF
  • 看来您不再需要在路径之前传递选项:cmake .. -G <whatever> -DOPTION=ON 对我来说适用于 CMake 3.16.2。
【解决方案2】:

另一个选项是转到您的构建文件夹并使用命令ccmake .

这类似于 GUI,但基于终端。这显然对安装脚本没有帮助,但至少它可以在没有 UI 的情况下运行。

我收到的一个警告是,有时当您收到警告时,它不会让您生成。如果是这种情况,退出界面并调用cmake .

【讨论】:

  • OP 明确要求“无 GUI”。
【解决方案3】:

这对我有用:

cmake -D DBUILD_SHARED_LIBS=ON DBUILD_STATIC_LIBS=ON DBUILD_TESTS=ON ..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-24
    • 2011-08-25
    • 2015-11-17
    • 1970-01-01
    相关资源
    最近更新 更多