- 概要 - 各ツールに共通の機能(ファイル・ディレクトリ操作,ツールの探索など)を提供する
- 場所 - BOOST_BUILD_PATH/tools/common.jam
check-init-parameters
rule check-init-parameters ( toolset : * )
引数・戻り値
要調査
get-invocation-command
rule get-invocation-command ( toolset : tool : user-provided-command * : additional-paths * : path-last ? )
引数・戻り値
- toolset
- tool
- user-provided-command
- additional-paths
- path-last
要調査
get-absolute-tool-path
rule get-absolute-tool-path ( command )
例
# rubyへの絶対パスを表示 ECHO [ get-absolute-tool-path ruby ] ;
find-tool
rule find-tool ( name : additional-paths * : path-last ? )
概要
指定された名前のツールを探索する
- name - 探索するツールの名前
- additional-paths - 追加の探索パス
- path-last - OS規定のパス,追加の探索パスを探索した後に最後に探索するパス
- 戻り値 - 以下の順
- OS規定のパス(PATH環境変数)中に見つかればname
- additional-paths中に見つかればフルパス
- 見つからなければ空文字列
例
if [ common.find-tool perl ] { # perlが使える場合 } else if [ common.find-tool ruby ] { # rubyが使える場合 } else { # どっちも見つからねーよ!! errors.error "error: no available tool" ; }
要調査:last-path指定時の挙動が不明
check-tool-aux
rule check-tool-aux ( command )
引数・戻り値
- command - 探索するコマンド名,またはコマンドへの拡張子付きフルパス
- 戻り値 - 見つかればcommand,見つからなければ空文字列
check-tool
rule check-tool ( xcommand + )
概要
与えられた呼び出し構文によってコマンドが呼び出されるかどうかをチェック
引数・戻り値
- xcommand - 呼び出し構文.コマンド引数によって構成されるリストで構わない
要調査 - 拡張子付きの呼び出し構文でないと機能しないが,そのような設計にしている理由が不明
handle-options
rule hendle-options ( toolset : condition * : command ? : options * )
概要
要調査
引数・戻り値
- toolset
- condition
- command
- options
要調査
get-program-files-dir
rule get-program-files-dir ( )
variable-setting-command
rule variable-setting-command ( variable value )
概要
実行環境下でのシェル変数設定コマンドを返す
引数・戻り値
- variable - 設定するシェル変数名
- value - 変数に設定する値
- 戻り値 - シェル変数を設定するコマンド文字列
例
import os ; set-command = [ common.variable-setting-command HOGE huga ] ; rule variable-dereference-string ( variable ) { if [ os.name ] = NT { result = %$(variable)% ; } else { result = $$(variable) ; } return $(result) ; } deref-command = [ variable-dereference-string HOGE ] ; rule set-and-echo ( target ) { NOTFILE $(target) ; ALWAYS $(target) ; } actions set-and-echo { $(set-command) echo $(deref-command) } # t1はダミーターゲット set-and-echo t1 ; DEPENDS all : t1 ;
path-variable-setting-command
rule path-variable-setting-command ( variable : values * : exported ? )
引数・戻り値
- variable - 値を設定するシェル変数名
- values - 設定する値
- exported - UNIX環境下で変数をexportするかどうか true or false
例
# Windows環境下 local command = [ path-variable-setting-command PATH : C: "C:\\Program Files" ] # command = "set PATH=C:;C:\Program Files" # UNIX環境下 local command = [ path-variable-setting-command PATH : /bin /usr/bin /usr/local/bin ] # command = "PATH=/bin:/usr/bin:/usr/local/bin" # UNIX環境下,exported local command = [ path-variable-setting-command PATH : /bin /usr/bin : true ] # command = "PATH=/bin:/usr/bin;export PATH"
file-creation-command
rule file-creation-command ( )
概要
ファイルを新規生成するコマンド(NT環境下では"echo. > ",それ以外では"touch ")を返す.ファイルが既存の場合の振る舞いは未定
戻り値 - ファイルを新規に生成するコマンド
MkDir
rule MkDir ( target )
引数・戻り値
- target - 生成するディレクトリ名
- 戻り値 - なし
例
# child/grand_childディレクトリを生成する.childディレクトリがない場合 # childディレクトリがまず生成される common.MkDir child/grand_child ; DEPENDS all : child/grand_child ;
copy
rule copy ( target : source )
概要
ファイルをコピーする
引数・戻り値
- target - コピー先のファイル
- source - コピー元のファイル
- 戻り値 - なし
例
# copied.cppをsource.cppからコピーする.common.copyは依存関係を生成しないため # ビルドターゲットとcommon.copyのターゲットとの間に依存関係がないと何もしない. # またsourceとtargetの間の依存関係も生成しない.そのため,そのままでは # sourceが更新されてもtargetは更新されない. # 以下は all -> target.cpp -> sources.cpp という依存関係を明示している例. common.copy copied.cpp : source.cpp ; DEPENDS copied.cpp : source.cpp ; DEPENDS all : copied.cpp ;
response-file
rule response-file ( targets + : sources * : the-response-file : properties * )
概要
レスポンスファイルを生成する.レスポンスファイルには'sources'で指定したすべてのソースを含んでおり,また'targets'で指定した全てのターゲットがレスポンスファイルに依存する
引数・戻り値
- target - レスポンスファイルに依存するターゲット
- sources - レスポンスファイルに含まれるソースファイル
- the-response-file - レスポンスファイル名
- properties - 要調査