MochiuWiki : SUSE, EC, PCB
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
CMake - 変数のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
CMake - 変数
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == <br><br> == 変数の宣言と代入 == 変数は、<code>set</code>コマンドを使用して、変数を宣言および代入することができる。<br> CMakeでは、全ての変数を文字列として扱っており、変数名には、英数字、<code>_</code>、<code>.</code>、<code>/</code>、<code>-</code>、<code>+</code>を含めることができる。<br> また、大文字と小文字が区別される。<br> <br> 変数の値を代入する時、値にスペースが含まれていない限り、引用符で囲む必要はない。<br> <syntaxhighlight lang="cmake"> set(value 1) # 値が1の変数valueを宣言 </syntaxhighlight> <br> 既存の変数への代入も<code>set</code>コマンドを使用する。<br> 変数の値の参照は、入れ子にすることもできる。<br> <syntaxhighlight lang="cmake"> set(value 1) # 値が1の変数valueを生成 set(value 2) # 既存の変数valueに値1を代入 set(value_name value) # 変数value_nameに変数valueの値を代入 message(${${value_name}}) # ${value_name}が展開されて、${${value_name}}が${value}になり、これが展開されて2になる </syntaxhighlight> <br> 1つの変数に複数の値を指定する場合、各値はセミコロンで区切って結合される。(<u>文字列リストとして代入される</u>)<br> また、未定義の変数を参照する場合は、空の文字列となる。<br> <syntaxhighlight lang="cmake"> set(myVar a b c) # myVarの値: a;b;c set(myVar a;b;c) # myVarの値: a;b;c set(myVar "a b c") # myVarの値: a b c set(myVar a b;c) # myVarの値: a;b;c set(myVar a "b c") # myVarの値: a;b c </syntaxhighlight> <br> <syntaxhighlight lang="cmake"> set(USE_CCACHE OFF CACHE BOOL "") </syntaxhighlight> <br><br> == 変数の削除 == 変数の削除する場合は、<code>unset</code>コマンドを使用する。<br> <syntaxhighlight lang="cmake"> set(value 1) # 変数valueを宣言 unset(value) # 変数valueを削除 </syntaxhighlight> <br><br> == キャッシュ変数 == キャッシュ変数とは、ビルドディレクトリのCMakeCache.txtに記録される変数のことである。<br> グローバルスコープで参照可能であり、生存期間が<code>cmake</code>コマンドの終了後も継続する。<br> <br> 次の<code>cmake</code>コマンドの実行でも値を保つため、生成したビルドの構成情報を保存するような用途にも使用される。<br> <br> 例えば、キャッシュ変数VAR1の値は$CHACHE{VAR1}で参照できる。<br> 同名の通常変数が存在しない場合は、${VAR1}でも参照することができる。<br> <br> <code>set(CACHE)</code>コマンドで初回の変数が定義ができる。<br> <br> 既に定義されているキャッシュ変数を変更する場合は、<code>FORCE</code>オプションが必要である。<br> 指定されていない場合、<code>set(CACHE)</code>コマンドは無視される。<br> また、<code>cmake</code>コマンドの実行時に<code>-D<オプション名></code>でも定義や変更が可能である。<br> <br> 他の変数と異なり、キャッシュ変数は型を持つ。<br> <code>cmake</code>コマンドの<code>-D<オプション名></code>オプションで型を指定せずに定義することにより、型のない状態で使用することもできる。<br> この場合、<code>set(CACHE)</code>コマンドを実行した時点で型が確定する。<br> <br><br> == リスト(配列) == 変数は全て文字列として扱われるが、複数の変数をまとめて扱う場合はリストを使用する。<br> これは、複数の文字列をセミコロン<code>;</code>で連結したものである。<br> <br> リストという型は無く文字列であるが、関数の引数が暗黙的に連結されてリストとして扱うことができ、操作関数により言語レベルでのサポートがあるため、<br> 不定個数の変数をまとめて扱う場合に便利である。<br> <br> <syntaxhighlight lang="cmake"> set(LIST1 "AA" "BB" "CC") # 3つの文字列からなるリストを作成 message("${LIST1}") # -> AA;BB;CC list(APPEND LIST1 "DD") # リスト末尾に要素を追加 message("${LIST1}") # -> AA;BB;CC;DD list(LENGTH LIST1 LEN) # リスト要素の個数を取得 message("${LEN}") # -> 4 list(GET LIST1 2 ITEM) # 2番目の要素を取得 message("${ITEM}") # -> CC </syntaxhighlight> <br><br> == 定義された全ての変数を出力 == <syntaxhighlight lang="cmake"> get_cmake_property(variableNames VARIABLES) foreach(variableName ${variableNames}) message(STATUS "${variableName}=${${variableName}}") endforeach() </syntaxhighlight> <br><br> == CMAKE_PREFIX_PATH == <syntaxhighlight lang="cmake"> # ライブラリのインストールディレクトリを指定 ## ライブラリのインストールディレクトリを1つ指定する場合 set(CMAKE_PREFIX_PATH "<ライブラリのパス>") ## ライブラリのインストールディレクトリを複数指定する場合 set(CMAKE_PREFIX_PATH "<ライブラリのパス 1>;<ライブラリのパス 2>;<ライブラリのパス 3>") # find_packageコマンドを使用してライブラリを検索 find_package(<ライブラリ名> REQUIRED) if(<ライブラリ名>_FOUND) # ライブラリが見つかった場合 else() # ライブラリが見つからなかった場合 endif() </syntaxhighlight> <br><br> {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:C]][[カテゴリ:C++]][[カテゴリ:Qt]]
CMake - 変数
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse