樣式建議
此頁面列出一些關於組織和格式化 Meson 建置檔案的建議。
Tab 鍵還是空格鍵?
總是使用空格鍵。兩個空格是最常見的。
尾隨逗號?
是的,盡可能使用。它們有助於在版本控制系統中產生更友善的差異。
變數命名
蛇式命名法 (風格化為 snake_case
) 是指一種寫作風格,其中每個空格都由底線 (_
) 字元取代,並且每個單字的第一個字母都以小寫書寫。它是 Meson 建置腳本中最常用的變數識別符命名慣例。
假設您想引用您的可執行檔,類似 my_exe
這樣。
相依性使用
建議使用 dependency
函式來處理相依性。如果您的包裝檔案具有必要的 [provide]
條目,則無論是在編譯您自己的程式碼還是使用系統相依性時,一切都將自動運作。
只有當您需要提取非相依性/程式時,才需要使用 subproject
。
選項命名
專案選項的命名方式有兩種。例如,對於布林值,第一種是 foo
,第二種是 enable-foo
。建議使用前一種樣式,因為在 Meson 中,選項具有強型別,而不僅僅是字串。
您應該嘗試將選項命名為與其他專案中常用的名稱相同。這對於產生的選項尤其重要,因為它們要求父專案和子專案選項具有相同的名稱。
全域引數
優先使用 add_project_arguments
而不是 add_global_arguments
,因為使用後者會阻止將專案用作子專案。
交叉編譯引數
盡可能讓交叉編譯引數遠離您的建置檔案。將它們保留在交叉檔案中。這樣可以增加可攜性,因為編譯到不同平台所需的所有變更都隔離在一個地方。
排序來源路徑
應對來源檔案陣列進行排序。這樣可以更輕鬆地發現錯誤,並經常減少合併衝突。此外,路徑應使用自然排序演算法進行排序,以便以直觀的方式對數字進行排序 (1, 2, 3, 10, 20
而不是 1, 10, 2, 20, 3
)。
數字也應在字元之前排序 (a111
在 ab0
之前)。此外,字串應不區分大小寫地排序。
此外,如果路徑包含目錄,則應在普通檔案之前排序。此規則也遞迴地適用於子目錄。
以下範例顯示正確的來源清單定義
sources = files(
'aaa/a1.c',
'aaa/a2.c',
'bbb/subdir1/b1.c',
'bbb/subdir2/b2.c',
'bbb/subdir10/b3.c',
'bbb/subdir20/b4.c',
'bbb/b5.c',
'bbb/b6.c',
'f1.c',
'f2.c',
'f10.c',
'f20.c',
)
搜尋結果為