CMake - ツリー
ナビゲーションに移動
検索に移動
概要
ビルドに使用されるソースコードを含むトップレベルディレクトリをソースツリーと呼ぶ。
ソースツリーは、トップレベルの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_DIR
、PROJECT_SOURCE_DIR
、<プロジェクト名>_SOURCE_DIR
がある。
CMAKE_BINARY_DIR
()- バイナリツリーの絶対パス
- ビルドプロセス中に生成されるファイル (バイナリや中間ファイル等) が出力されるディレクトリへの絶対パスを表す。
- ソースコードからビルドされた実行可能ファイル、ライブラリ、テスト等のビルドされた成果物がここに配置される。
- 通常、プロジェクトのビルドディレクトリを指す。