|
|
| 128行目: |
128行目: |
| endif() | | endif() |
| </syntaxhighlight> | | </syntaxhighlight> |
| <br><br>
| |
|
| |
| == ソースツリーおよびビルドツリー ==
| |
| ビルドに使用されるソースコードを含むトップレベルディレクトリをソースツリーと呼ぶ。<br>
| |
| ソースツリーは、トップレベルのCMakeLists.txtが配置され、プロジェクトが定義される。<br>
| |
| <br>
| |
| ビルドの生成物を保管するためのディレクトリをビルドツリーと呼ぶ。<br>
| |
| ビルドツリーは、CMakeCache.txtが作成・保管され、キャッシュ変数やオプション等が格納される。<br>
| |
| <br>
| |
| 同一ディレクトリを両方の用途に使用することも可能であるが、ビルドツリーをソースツリーと分離(out-of-source build)して、ソースツリーを綺麗に保つことが推奨されている。<br>
| |
| <br>
| |
| <code>cmake</code>コマンドの実行中において、実行時の情報を提供する変数が多数提供されている。<br>
| |
| 例えば、処理中の位置を取得する場合は、次のような変数がある。<br>
| |
| * <code>CMAKE_SOURCE_DIR</code> (非推奨)
| |
| *: ソースツリーの絶対パス (CMakeLists.txtファイルが存在するディレクトリへの絶対パス)
| |
| *: 通常、プロジェクトのルートディレクトリを指す。
| |
| *: <br>
| |
| *: 変数<code>CMAKE_SOURCE_DIR</code>は、異なるプロジェクトがネストしている場合、自身のプロジェクトのルートディレクトリ以外のパスを示すので使用しない方がよい。
| |
| *: <u>代替できる変数として、<code>CMAKE_CURRENT_SOURCE_DIR</code>、<code>PROJECT_SOURCE_DIR</code>、<code><プロジェクト名>_SOURCE_DIR</code>がある。</u>
| |
| *: <br>
| |
| * <code>CMAKE_BINARY_DIR</code>
| |
| *: バイナリツリーの絶対パス
| |
| *: <br>
| |
| *: ビルドプロセス中に生成されるファイル (バイナリや中間ファイル等) が出力されるディレクトリへの絶対パスを表す。
| |
| *: ソースコードからビルドされた実行可能ファイル、ライブラリ、テスト等のビルドされた成果物がここに配置される。
| |
| *: 通常、プロジェクトのビルドディレクトリを指す。
| |
| *: <br>
| |
| * <code>CMAKE_CURRENT_SOURCE_DIR</code>
| |
| *: ソースツリーにおける現在処理中のディレクトリの絶対パス
| |
| *: <br>
| |
| * <code>CMAKE_CURRENT_BINARY_DIR</code>
| |
| *: ビルドツリー内における現在処理中のディレクトリの絶対パス
| |
| <br><br> | | <br><br> |
|
| |
|