13,007
回編集
(→概要) |
|||
113行目: | 113行目: | ||
<br><br> | <br><br> | ||
== | == 変数 == | ||
<code>message</code> | ==== 変数の宣言と代入 ==== | ||
変数は、<code>set</code>コマンドを使用して、変数を宣言および代入することができる。<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> | |||
<syntaxhighlight lang="cmake"> | |||
set(USE_CCACHE OFF CACHE BOOL "") | |||
</syntaxhighlight> | |||
<br> | |||
==== 変数の削除 ==== | |||
変数の削除する場合は、<code>unset</code>コマンドを使用する。<br> | |||
<syntaxhighlight lang="cmake"> | |||
set(value 1) # 変数valueを宣言 | |||
unset(value) # 変数valueを削除 | |||
</syntaxhighlight> | |||
<br> | |||
==== 定義された全ての変数を出力 ==== | |||
<syntaxhighlight lang="cmake"> | |||
get_cmake_property(variableNames VARIABLES) | |||
foreach(variableName ${variableNames}) | |||
message(STATUS "${variableName}=${${variableName}}") | |||
endforeach() | |||
</syntaxhighlight> | |||
<br><br> | |||
== ログメッセージの出力 == | |||
==== messageコマンドとは ==== | |||
<syntaxhighlight lang="cmake"> | |||
message([<mode>] "message to display" ...) | |||
</syntaxhighlight> | |||
<br> | |||
下表に、<code><mode></code>に指定できる項目を示す。(一部)<br> | |||
<center> | |||
{| class="wikitable" | style="background-color:#fefefe;text-align: center;" | |||
|- | |||
! style="background-color:#66CCFF;width: 20%;" | modeの種類 | |||
! style="background-color:#66CCFF;width: 30%;" | 説明 | |||
! style="background-color:#66CCFF;width: 30%;" | 処理の継続 | |||
! style="background-color:#66CCFF;width: 20%;" | 出力先 | |||
|- | |||
| 省略する場合 || 重要な情報 || CMakeの処理を継続する || STDERR | |||
|- | |||
| STATUS || 情報 || CMakeの処理を継続する || STDOUT | |||
|- | |||
| WARNING || 警告 || CMakeの処理を継続する || STDERR | |||
|- | |||
| SEND_ERROR || エラー || CMakeの処理を継続する || STDERR | |||
|- | |||
| FATAL_ERROR || 致命的なエラー || CMakeの処理を終了する || STDERR | |||
|} | |||
</center> | |||
<br> | |||
以下の例では、<code>message</code>コマンドにおいて、第1引数に<code>FATAL_ERROR</code>を指定することにより、エラーメッセージを出力して、CMakeコマンドを終了している。<br> | |||
<syntaxhighlight lang="cmake"> | <syntaxhighlight lang="cmake"> | ||
message(FATAL_ERROR "cmake to terminate.") | message(FATAL_ERROR "cmake to terminate.") | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
また、<code>message</code> | また、<code>message</code>コマンドにおいて、第1引数に<code>SEND_ERROR</code>を指定することにより、エラーメッセージを出力して動作を継続する。<br> | ||
<syntaxhighlight lang="cmake"> | <syntaxhighlight lang="cmake"> | ||
message(SEND_ERROR "Continue cmake.") | message(SEND_ERROR "Continue cmake.") | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
以下の例では、Linux以外のOSの場合は、エラーメッセージを出力して、<code>cmake</code> | 以下の例では、Linux以外のOSの場合は、エラーメッセージを出力して、<code>cmake</code>コマンドを終了している。<br> | ||
<syntaxhighlight lang="cmake"> | <syntaxhighlight lang="cmake"> | ||
if(NOT (UNIX AND NOT APPLE)) | if(NOT (UNIX AND NOT APPLE)) |