Boost C++ Libraries

PrevUpHomeNext

內建規則

本節包含可在 Jamfile 中使用的所有規則列表,包括定義新目標的規則和輔助規則。

exe

建立可執行檔。請參閱「程式」一節

lib

建立程式庫檔案。請參閱「程式庫」一節

install

安裝已建置的目標和其他檔案。請參閱「安裝」一節

alias

為其他目標建立別名。請參閱「別名」一節

unit-test

建立將自動執行的可執行檔。請參閱「測試」一節

compilecompile-faillinklink-failrunrun-fail

專門用於測試的規則。請參閱「測試」一節

check-target-builds

check-target-builds 允許您根據某些中繼目標是否建置來有條件地使用不同的屬性。這類似於 autotools 專案中 configure 腳本的功能。函數簽章為

rule check-target-builds ( target message ? : true-properties * : false-properties * )
        

此函數只能在將需求或使用需求傳遞給中繼目標規則時使用。例如,要使應用程式連結到程式庫(如果可用),則必須使用以下內容

exe app : app.cpp : [ check-target-builds has_foo "System has foo" : <library>foo : <define>FOO_MISSING=1 ] ;
        

另一個例子是,alias 規則可用於整合配置選項,並使其可供其他中繼目標使用,如下所示

alias foobar : : : : [ check-target-builds has_foo "System has foo" : <library>foo : <library>bar ] ;
        
obj

建立目標檔。當必須使用特殊屬性編譯單個原始程式檔時很有用。

preprocessed

建立預處理的原始程式檔。參數遵循通用語法

glob

glob 規則接受 shell 模式列表,並返回專案原始程式碼目錄中符合該模式的檔案列表。例如

lib tools : [ glob *.cpp ] ;
        

也可以傳遞第二個參數——排除模式列表。結果將包含符合任何包含模式且不符合任何排除模式的檔案列表。例如

lib tools : [ glob *.cpp : file_to_exclude.cpp bad*.cpp ] ;
        

glob-tree

glob-treeglob 類似,不同之處在於它從包含 Jamfile 的目錄遞迴運作。例如

ECHO [ glob-tree *.cpp : .svn ] ;
        

將會印出專案中所有 C++ 檔案的名稱。.svn 排除模式可防止 glob-tree 規則進入 Subversion 版本控制系統的管理目錄。

project

宣告專案 ID 和屬性,包括專案需求。請參閱「專案」一節

use-project

將符號專案 ID 指派給指定路徑的專案。此規則需要更完善的說明!

explicit

explicit 規則接受單一參數:目標名稱列表。指定的目標將被標記為顯式,並且只會在命令列中明確請求建置它們,或者它們的依賴項被建置時才會建置。與之相對的是普通目標,它們在包含它們的專案被建置時會被隱式建置。

always

always 函數接受單一參數:元目標名稱列表。由指定的元目標產生的頂層目標將始終被視為過期。考慮以下範例:

exe hello : hello.cpp ;
exe bye : bye.cpp ;
always hello ;

如果請求建置 hello,則二進位檔將始終被重新連結。但是,目標檔不會被重新編譯。請注意,如果未請求建置 hello,例如您僅在命令列中指定 bye,則 hello 將不會被重新連結。

constant

設定專案範圍的常數。接受兩個參數:變數名稱和值,並使指定的變數名稱可在這個 Jamfile 和任何子 Jamfile 中存取。例如:

constant VERSION : 1.34.0 ;
        

path-constant

constant 相同,但值被視為相對於 Jamfile 位置的路徑。例如,如果在當前目錄中呼叫 b2,並且 helper 子目錄中的 Jamfile 具有:

path-constant DATA : data/a.txt ;
        

則變數 DATA 將被設定為 helper/data/a.txt,如果從 helper 目錄呼叫 b2,則變數 DATA 將被設定為 data/a.txt

build-project

導致建置其他專案。此規則接受單一參數:相對於包含 Jamfile 的目錄名稱。當包含 Jamfile 被建置時,位於該目錄的專案也將被建置。目前,此規則的參數應該是一個目錄名稱。不允許使用專案 ID 或一般目標參考。

test-suite

此規則已被棄用,等效於 alias


PrevUpHomeNext