如何在命令行设置CMake选项()

Den*_*rim 73 cmake

我创建了一个包含以下内容的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)
Run Code Online (Sandbox Code Playgroud)

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

cmake .. -G %1 -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON -DBUILD_TESTS=ON
Run Code Online (Sandbox Code Playgroud)

fen*_*688 83

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

cmake -G %1 -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON -DBUILD_TESTS=ON ..
Run Code Online (Sandbox Code Playgroud)

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

  • @Ébe-isaac如果你想明确地关闭一个选项,只需使用`-DOPTION = OFF`. (5认同)
  • 看来你不再需要在路径之前传递选项: `cmake .. -G <whatever> -DOPTION=ON` 对我来说 CMake 3.16.2 工作得很好。 (3认同)

cra*_*l32 8

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

这就像GUI但基于终端.这显然无助于安装脚本,但至少可以在没有UI的情况下运行.

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

  • OP 特别要求“无 GUI”。 (2认同)

Med*_*nzo 6

这对我有用:

cmake -D DBUILD_SHARED_LIBS=ON DBUILD_STATIC_LIBS=ON DBUILD_TESTS=ON ..
Run Code Online (Sandbox Code Playgroud)