樣式建議

此頁面列出一些關於組織和格式化 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)。

數字也應在字元之前排序 (a111ab0 之前)。此外,字串應不區分大小寫地排序。

此外,如果路徑包含目錄,則應在普通檔案之前排序。此規則也遞迴地適用於子目錄。

以下範例顯示正確的來源清單定義

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',
)

搜尋結果為