![]() |
Jamroot
またはproject-root.jam
があるディレクトリがプロジェクトルートになり、その配下のディレクトリ階層がプロジェクトの階層に対応する。C:\Boost\boost_1_34_0
にproject-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<プロジェクトのディレクトリ名>」という名前のモジュールとして評価される。
現在のプロジェクトに別名を付けたり、プロジェクトとそのサブプロジェクトに共通の設定を行うには、標準ルール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 |
|
|
|||||||||
Windows |
|
|