CMake - ツリー

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動

概要

ビルドに使用されるソースコードを含むトップレベルディレクトリをソースツリーと呼ぶ。
ソースツリーは、トップレベルのCMakeLists.txtが配置され、プロジェクトが定義される。

ビルドの生成物を保管するためのディレクトリをビルドツリーと呼ぶ。
ビルドツリーは、CMakeCache.txtが作成・保管され、キャッシュ変数やオプション等が格納される。

同一ディレクトリを両方の用途に使用することも可能であるが、ビルドツリーをソースツリーと分離(out-of-source build)して、ソースツリーを綺麗に保つことが推奨されている。


ソースツリーおよびビルドツリー

cmakeコマンドの実行中において、実行時の情報を提供する変数が多数提供されている。
例えば、処理中の位置を取得する場合は、次のような変数がある。

  • CMAKE_CURRENT_SOURCE_DIR (推奨)
    ソースツリーにおける現在処理中のディレクトリの絶対パス

  • CMAKE_CURRENT_BINARY_DIR (推奨)
    ビルドツリー内における現在処理中のディレクトリの絶対パス


非推奨の変数を以下に示す。

  • CMAKE_SOURCE_DIR (非推奨)
    ソースツリーの絶対パス (CMakeLists.txtファイルが存在するディレクトリへの絶対パス)
    通常、プロジェクトのルートディレクトリを指す。

    変数CMAKE_SOURCE_DIRは、異なるプロジェクトがネストしている場合、自身のプロジェクトのルートディレクトリ以外のパスを示すので使用しない方がよい。
    代替できる変数として、CMAKE_CURRENT_SOURCE_DIRPROJECT_SOURCE_DIR<プロジェクト名>_SOURCE_DIRがある。

  • CMAKE_BINARY_DIR ()
    バイナリツリーの絶対パス

    ビルドプロセス中に生成されるファイル (バイナリや中間ファイル等) が出力されるディレクトリへの絶対パスを表す。
    ソースコードからビルドされた実行可能ファイル、ライブラリ、テスト等のビルドされた成果物がここに配置される。
    通常、プロジェクトのビルドディレクトリを指す。