Bjam は Make に似たプロジェクト管理ツールです。Boost 用にカスタマイズされたコンパイル マネージャーです。Perforce Jam から開発された FTJam に基づいています。Bjam は Perforce Jam と下位互換性があります。
Bjam ツールは Boost.Jam プロジェクトによって保守されています。
Bjam の現在の最新バージョンは 3.1.9 (Boost-1.31.0 とともにリリース) です。これは、Jam/MR の 2.4 に基づいています。
Jam 言語定義
語彙
Jam は、すべてのトークン (Token) が空白で構成されていると考えています。 、タブ、または改行)。
記号 (:) と (;) を含む場合も、空白文字で区切る必要があります。
例外:
トークンは引用符 ( ") では、空白記号を使用できます。
記号 (/) は引用符と空白文字をエスケープできます。
{} で囲まれた文字列は空白記号を使用でき、単なる文字列とみなされます。
キーワードをトークンとして使用する場合は、引用符で囲む必要があります。
組み込みルールのセマンティクス
1. 依存関係の構築
DEPENDS ターゲット 1 : ターゲット 2 ;
# ターゲット 1 の使用はターゲット 2 に依存します。ターゲット 2 がターゲット 1 よりも新しい場合、ターゲット 1 は再構築されます。 INCLUDES ターゲット 1 : ターゲット 2 ; コンストラクト依存関係を変更する ALWAYS ターゲット ; LEAVES ターゲット ; NOCARE ターゲット; NOTFILE ターゲット ; NOUPDATE ターゲット ; TEMPORARY ターゲット ;3.Tools # ECHO args ; パラメータの表示 EXIT args ; パラメータを表示して終了します。 GLOB ディレクトリ: パターン: downcase-opt ディレクトリからパターンに一致するファイル名を取得します。 MATCH regexps: list リストから正規表現に一致するシンボルを取得します。フロー制御
for var in list { states }リスト内の項目ごとにステートメントを 1 回実行します。var はリスト要素の値になるように設計されています。
if cond { ステートメント } [ else ステートメント ] 明らかに、else 部分はオプションです。条件は次のようになります:a 当a的元素中最少有一个非空字符串时为true; a = b 列表元素全部相同时为true a != b 列表元素不完全相同时为true a < b a和b中,第一个不相同的元素相比较, a的元素比b小(按字符串顺序). a <= b a中每个元素都比b对应元素小或相等 a > b a和b中,第一个不相同的元素相比较, a的元素比b大(按字符串顺序). a >= b a中每个元素都比b对应元素大或相等 a in b a所有元素都可以在b中找到,或者a是空表 ! cond 逻辑非 cond && cond 逻辑与 cond || cond 逻辑或 ( cond ) 优先运算include file ; jam を使用してファイルを読み取り、処理します。このプロセスは解析フェーズ中に発生するため、ファイルは構築されず、ファイル スコープはありません。local vars [ =値 ] ; ローカル変数を定義すると、{} の外側にある元の変数の値が格納されます。戻り値、注意してください。ルールでは、return はルールの実行プロセスから飛び出すわけではありません。
switch value { case pattern1 : statements ; case pattern2 : statements ; ... }値に従って 1 つまたは 0 個のステートメントを実行します。パターンは次の記号ワイルドカード
です。
? 任意の文字に一致します* 0 個以上の文字に一致します [chars] chars 内の任意の文字に一致します [^chars] chars にない任意の文字に一致します /x x と一致します (他のワイルドカードをエスケープします) while cond { ステートメント } 条件が true の場合、ステートメントは繰り返し実行されます。 #変数コントロールと内部 変数の作成Jam 変数は文字列リストであり、その要素は 0 個または複数の文字列です。未定義の変数と空の変数
(要素 0) ) 違いはありません。ただし、変数は複数の空の文字列を含むように定義できます。
変数は $(変数) を通じて値を取ることができます。
変数には「グローバル」または「 2 種類のターゲット固有の変数。ターゲット固有の変数は、ターゲットの構築時にのみ値を受け取ります。変数を定義するにはいくつかの方法があります。
variable = elements ; variable += elements ; variable on targets = elements ; variable on targets += elements ; variable default = elements ; variable ?= elements ;
最初の 2 つの方法はグローバル変数を定義します、 3 番目の方法 ターゲット固有の変数を定義する 4 番目の方法と同じです
= は変数の内容を書き換えることができます = 元の内容と新しい内容を接続します
最後の 2 つの効果は同じです。変数が定義されていない場合、グローバル変数を定義します。
以上がPythonでジャムを使う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。