コマンドラインでCMakeoption()を設定する方法


97

以下を含む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

25
..引数の前にフラグをリストします。
矢印付き2013


5998186への答えが指摘しているように、それは 'cmake MyProjectFolder -DMyOption = ON'
Langley

1
cmakeの前にCMakeCache.txtを削除しましたか?
Henry Hu

回答:


107

CMakeCache.txtファイルを削除して、次のことを試してください。

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

パスを含める前に、すべてのコマンドライン定義を入力する必要があります。


具体的にOFFを指定する方法は?CUDAオプションをオフにできないようです。
–ÉbeIsaac 2016

7
@Ébe-isaacオプションを明示的にオフにしたい場合は、を使用してください-DOPTION=OFF
トマーシュMlčoch

パスの前にオプションを渡す必要がなくなったようです:cmake .. -G <whatever> -DOPTION=ONCMake3.16.2で問題なく動作します。
アレクサンダーレボ

10

追加のオプションは、ビルドフォルダーに移動し、コマンドを使用することです ccmake .

これはGUIに似ていますが、ターミナルベースです。これは明らかにインストールスクリプトには役立ちませんが、少なくともUIなしで実行できます。

私が持っている1つの警告は、警告があるときに生成できない場合があるということです。その場合は、インターフェイスを終了して呼び出しますcmake .


OPは特に「GUIなし」を要求します。
sancho.sReinstateMonicaCellio20年

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.