13,007
回編集
41行目: | 41行目: | ||
cmake_minimum_required(VERSION <メジャー番号>.<マイナー番号>[.<バグフィックス番号>.<ビルド番号>]) | cmake_minimum_required(VERSION <メジャー番号>.<マイナー番号>[.<バグフィックス番号>.<ビルド番号>]) | ||
<br> | <br> | ||
<code>VERSION</ | <code>VERSION</code>オプションは常に必要であり、<code><メジャー番号></code>および<code><マイナー番号></code>も記述する必要がある。<br> | ||
ほとんどのCMakeプロジェクトでは、<code><バグフィックス番号></code>および<code><ビルド番号></code>を指定する必要はない。(CMakeの新しい機能はマイナー番号のアップデートでのみ現れるため)<br> | ほとんどのCMakeプロジェクトでは、<code><バグフィックス番号></code>および<code><ビルド番号></code>を指定する必要はない。(CMakeの新しい機能はマイナー番号のアップデートでのみ現れるため)<br> | ||
特定のバグフィックスが必要な場合のみ、<code><バグフィックス番号></code>を指定すべきである。 | 特定のバグフィックスが必要な場合のみ、<code><バグフィックス番号></code>を指定すべきである。 | ||
49行目: | 49行目: | ||
詳細を知りたい場合は、[[Qtの設定 - CMake#CMakeのポリシー設定]]において、<code>cmake_minimum_required</code>コマンドの挙動を調整する方法を参照すること。<br> | 詳細を知りたい場合は、[[Qtの設定 - CMake#CMakeのポリシー設定]]において、<code>cmake_minimum_required</code>コマンドの挙動を調整する方法を参照すること。<br> | ||
これにより、CMakeは内部でバグを修正し、新しい機能を導入しながらも、過去の特定のリリースの期待される振る舞いを維持することができる。<br> | これにより、CMakeは内部でバグを修正し、新しい機能を導入しながらも、過去の特定のリリースの期待される振る舞いを維持することができる。<br> | ||
<br><br> | |||
== projectコマンド == | |||
全てのCMakeプロジェクトは、<code>project</code>コマンドを含む必要があり、<code>cmake_minimum_required</code>コマンドの後に記述する。<br> | |||
<syntaxhighlight lang="cmake"> | |||
# CMake 3.0以降 | |||
project( | |||
<プロジェクト名> | |||
[VERSION <メジャー番号>[.<マイナー番号>.<バグフィックス番号>.<ビルド番号>]] | |||
[LANGUAGES <プログラム言語名 例. CやCXX等>] | |||
) | |||
# CMake 2.x以前 | |||
project( | |||
<プロジェクト名> | |||
[<プログラム言語名 例. CやCXX等>] | |||
) | |||
</syntaxhighlight> | |||
<br> | |||
<code><プロジェクト名></code>オプションは必須であり、英数字、アンダースコア(<code>_</code>)、ハイフン(<code>-</code>)が使用できる。<br> | |||
ただし、空白は使用できない。<br> | |||
<code><プロジェクト名></code>は、引用符で囲む必要はない。<br> | |||
<br> | |||
<code>VERSION</code>オプションは、CMake 3.0以降でのみサポートされている。<br> | |||
<br> | |||
<code>LANGUAGES</code>オプションは、CMakeプロジェクトで有効にするプログラム言語を指定する。(<code>C</code>、<code>CXX</code>、<code>Fortran</code>、<code>ASM</code>、<code>Java</code>等)<br> | |||
複数の言語を指定する場合は、それぞれをスペースで区切る。<br> | |||
<br> | |||
特殊な状況下では、CMakeプロジェクトはプログラム言語を使用しないことを示す必要がある場合が存在する。<br> | |||
このような場合、<code>LANGUAGES NONE</code>を指定する。 | |||
<br> | |||
CMake 2.x以前では、<code>LANGUAGES</code>オプションがサポートされていないため、<code><プロジェクト名></code>の後にプログラム言語を指定する。<br> | |||
<br> | |||
<code>project</code>コマンドの重要な役割の1つは、有効化された各言語のコンパイラをチェックして、正常にコンパイルとリンクを行えるかどうかを確認することである。<br> | |||
コンパイラやリンカのチェックが正常に終了した後、その結果はキャッシュされて、ビルドディレクトリのCMakeCache.txtファイルに保存される。<br> | |||
その後、CMakeは有効化された機能を制御する多くの変数とプロパティをセットアップする。<br> | |||
<br><br> | <br><br> | ||