명령 줄에서 CMake option ()을 설정하는 방법


93

다음을 포함하는 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는 OFF입니다. CMake GUI없이 cmake 명령 자체를 사용하여 어떻게 켤 수 있습니까? 다음을 시도했지만 작동하지 않습니다.

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

24
..인수 전에 플래그를 나열하십시오 .
-08-26


5998186에 대한 답변은 'cmake MyProjectFolder -DMyOption = ON'입니다
Langley

1
cmake 전에 CMakeCache.txt를 다시 제거 했습니까?
헨리 후

답변:


101

CMakeCache.txt 파일을 삭제하고 다음을 시도하십시오.

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

경로를 포함하기 전에 모든 명령 줄 정의를 입력해야합니다.


특별히 OFF를 지정하는 방법은 무엇입니까? CUDA 옵션을 끌 수없는 것 같습니다.
EBE 이삭

7
@ Ébe-isaac 명시 적으로 옵션을 끄려면을 사용하십시오 -DOPTION=OFF.
Tomáš Mlčoch

더 이상 경로 전에 옵션을 전달할 필요가없는 것 같습니다 cmake .. -G <whatever> -DOPTION=ON. CMake 3.16.2에서 잘 작동합니다.
Alexander Revo

8

추가 옵션은 빌드 폴더로 이동하여 다음 명령을 사용하는 것입니다. ccmake .

이것은 GUI와 비슷하지만 터미널 기반입니다. 이것은 분명히 설치 스크립트에 도움이되지 않지만 적어도 UI없이 실행할 수 있습니다.

내가 가진 한 가지 경고는 경고가있을 때 가끔 생성 할 수 없다는 것입니다. 이 경우 인터페이스를 종료하고cmake .


OP는 구체적으로 "GUI 없음"을 요구합니다.
sancho.s ReinstateMonicaCellio

2

이것은 나를 위해 작동합니다.

cmake -D DBUILD_SHARED_LIBS=ON DBUILD_STATIC_LIBS=ON DBUILD_TESTS=ON ..
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.