📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

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>