Bjam 是一個類似於Make的專案管理工具.它專門為Boost定制的編譯管理器,它基於FTJam, FTJam是從Perforce Jam發展起來的.Bjam向後兼容Perforce Jam.
Bjam工具由Boost.Jam專案維護.
目前Bjam的最新版本是:3.1.9(與Boost-1.31.0一起發布).它基於2.4 of Jam/MR.
Jam語言定義
詞法
Jam認為所有的記號(Token)都由空白字元(blanks, tabs , or newlines)分隔.
包括符號(:)和(;)也必須用空白字元分隔.
例外:
由引號(")包圍的記號中, 可以使用空白符號.
符號(/)可以轉義引號和空白字元.
由{}包圍的字串,可以使用空白符號,並且認為只是一個字串.
關鍵字,做為記號時,必須使用引號包圍.
內建Rule語意
1.建構依賴關係
DEPENDS targets1 : targets2 ;
使用target1依賴targets2, 如果targets2比targets1新, targets1會被重新為
.
#### 建構同位依賴, 使依賴targets2的目標同時也依賴targets1.
2.修改依賴關係
ALWAYS targets ;
LEAVES targets ;
NOCARE targets ;
NOTFILE targets ;
NOUPDATE targets ;
TEMPORARY targets ;
3.工具
ECHO args ;
顯示參數
卷downcase-opt
在directories中取出符合patterns的檔名.
MATCH regexps : list
從list中取出符合regexps的符號。
#流程控制
for var in list { statements }#為list中的每個執行一次statements, var被設計為list元素的值.
if cond { statements } [ else statements ] 顯然,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 ) 优先运算
switch value { case pattern1 : statements ; case pattern2 : statements ; ... }
變數控制與內建變數
Jam變數是一個字串列表,它的元素可能是0個,也可以是多個字串.一個未定義的變數和一個空變數(0個元素)沒有區別.但是一個變數可以定義為含有多個空字串.
變數可以透過$(variable)來取值變數有"全域"或"目標專用"兩種.目標專用的變數只在建造目標時取值.變數定義的方式有以下幾種.variable = elements ; variable += elements ; variable on targets = elements ; variable on targets += elements ; variable default = elements ; variable ?= elements ;
以上是python中jam如何使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!