CMakeにコマンドラインオプションを追加する


111

CMakeを使用して大規模なライブラリを構築しています。ビルドプロセスの特定の部分をユーザーが選択的に有効/無効にできるようにしたいと考えています。

たとえば、ユーザーが次のように入力できるように、CMakeビルドにコマンドラインオプションを追加するにはどうすればよいcmake --build-partone --nobuild-parttwo --dothis=true --dothat=false ..ですか。

どうやらOPTIONキーワードはCMake GUIから設定できる変数を作成しますが、コマンドラインからこれを行う方法を理解できません。


cmakeオプションの目的に関する私の質問に回答しましたので、質問をありがとうございます。だから、私は今それがGUI用であるとわかります
TruthAdjuster

回答:


161

ええ、あなたはoptionコマンドを使用する必要があります。次の方法でコマンドラインからオプションを設定できます。

//CMakeLists.txt
option(MyOption "MyOption" OFF)

//Command line
cmake -DMyOption=ON MyProjectFolder

-DMyOptionパスの前に来る必要があることに注意してください。


5
... cmake MyProjectFolder -DMyOptionオプションをオン(またはオフ)にしません
マブラハム

MyProjectFolderの前に-DMyOptionを置き、試してみますか?
updogliu 2014

11
-DMyOption=ONまたは-DMyOption=OFFを使用して、オンまたはオフにします。
kvanberendonck 2014年

CMakeLists.txtの "set(NAME blahblah)"で設定されたアイテムは、cmakeコマンドラインで-DNAME = overridingValueを使用して上書きできるというサードパーティのモジュールを作成しようとしているときに気づきました
peterk

13

ほんの少しの修正:

渡す他の変数がある場合は、これらのタイプを示すことをお勧めします。

//CMakeLists.txt
option(MyOption "MyOption" OFF)

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