hamigaki.png

前のページ 上に戻る ホーム 次のページ

プロジェクト

プロジェクト階層
Jamfile
プロジェクト定数
環境設定

プロジェクト階層

Jamrootまたはproject-root.jamがあるディレクトリがプロジェクトルートになり、その配下のディレクトリ階層がプロジェクトの階層に対応する。C:\Boost\boost_1_34_0project-root.jamがある場合のプロジェクトboostの例を示す。

プロジェクトID パス 意味
/boost C:\Boost\boost_1_34_0 boostプロジェクトのプロジェクトルート
/boost/doc C:\Boost\boost_1_34_0\doc boostプロジェクトのサブプロジェクトdoc
/boost/libs/filesystem/test C:\Boost\boost_1_34_0\libs\filesystem\test boostプロジェクトのサブプロジェクトlibs/filesystem/test

Jamfile

プロジェクトの設定はプロジェクトのディレクトリ中のJamfileで行う。このファイルは、「Jamfile<プロジェクトのディレクトリ名>」という名前のモジュールとして評価される。

現在のプロジェクトに別名を付けたり、プロジェクトとそのサブプロジェクトに共通の設定を行うには、標準ルールprojectを用いる。

rule project ( id ? : options * : * )

第一引数のidはプロジェクトの名前であり、第二引数以降はプロジェクト属性の名前とプロパティのリストを組にして指定する。プロジェクト属性には以下のようなものがある。

属性名 意味
source-location ソースファイルの位置
requirements ビルドに必要なプロパティ
default-build コマンドラインや依存するターゲットのdefault-buildでの指定がない場合のみ使用されるプロパティ
build-dir 出力先ディレクトリ

プロジェクト属性の指定順序は自由である。

# あるプロジェクトの設定
project project_a
    : source-location src
    : build-dir bin
    ;

# 別のプロジェクトの設定
project project_b
    : requirements <threading>multi
    : build-dir bin.v2
    : source-location src
    ;

プロジェクト定数

プロジェクト全体(サブプロジェクトを含む)で使用したい定数を設定するには標準ルールconstantを用いる。パスの定数を設定するのに便利なpath-constantルールもある。

# プロジェクト定数DEBUG_LEVELに5を設定する
constant DEBUG_LEVEL : 5 ;
# このプロジェクトとサブプロジェクトでは$(DEBUG_LEVEL)で値を取得できる

# プロジェクト定数ROOTにカレントディレクトリを設定する
path-constant ROOT : . ;
# このプロジェクトとサブプロジェクトでは$(ROOT)で値を取得できる
# 相対パスは設定時のプロジェクトのディレクトリを基点として絶対パスに変換される

環境設定

全てのプロジェクトの親プロジェクトとして、site-configとuser-configの二つが使用される。(site-configはuser-configの親プロジェクトである。)

site-configとuser-configはそれぞれsite-config.jam、user-config.jamというファイルで定義される。これらのファイルは次表に示す順序に従い検索される。

プラットフォーム site-config.jam user-config.jam
POSIX
/etc
$HOME
$BOOST_BUILD_PATH
$HOME
$BOOST_BUILD_PATH
Windows
%SystemRoot%
%HOMEDRIVE%%HOMEPATH%
%HOME%
%USERPROFILE%
%BOOST_BUILD_PATH%
%HOMEDRIVE%%HOMEPATH%
%HOME%
%USERPROFILE%
%BOOST_BUILD_PATH%

これらのファイルで、グローバル変数プロジェクト定数を設定することでBBv2の動作をカスタマイズすることができる。


前のページ 上に戻る ホーム 次のページ