Meson 關於在單一建置目錄中混合多個建置系統的政策
Meson 的設計原則是,所有依賴項皆由「平台」透過 Pkg-Config 之類的機制提供,或者它們會作為主要專案下的 Meson 子專案建置。有一些專案希望混合建置系統,也就是說,透過讓一個建置系統呼叫另一個建置系統,在與其他建置系統相同的建置目錄中建置依賴項。建置目錄不一定需要在彼此內部,但這是常見的情況。
本頁列出 Meson 專案對於混合建置系統的立場。簡而言之,雖然我們確實為這種使用情況提供了一些功能,但它僅適用於簡單的情況。任何更複雜的情況都無法可靠地實現,嘗試這樣做會使 Meson 開發人員背負實際上無窮無盡的維護負擔。因此,這些使用情況不保證有效,即使今天使用它們的專案可以工作,也無法保證它在任何未來版本中都能正常工作。
「混合建置系統」的定義
就本頁而言,混合建置系統是指任何和所有機制,其中一個建置系統以任何方式使用來自不同建置系統建置目錄的建置成品。
請注意,此定義並未指定依賴項是什麼以及如何建置它們,僅指定如何使用它們。例如,假設您有一個使用建置系統 X 建置的獨立依賴庫。在這種情況下,讓 Meson 呼叫建置系統在建置時建置依賴項將被解釋為混合建置系統。另一方面,使用外部機制建置和安裝庫,並透過標準的與建置系統無關的方法(例如 Pkg-Config)使用它的「類似 Flatpak」的方法,則不被視為混合建置系統。不過,使用未安裝的 pkgconfig 檔案被視為混合。
這對支援和相容性意味著什麼?
Meson 專案不會承擔任何維護負擔,以確保除了上述討論的簡單建置設置之外的任何情況都能正常工作。我們也不會為了支援這些使用情況而進行任何會惡化普通 Meson 用戶體驗的變更。這包括但不限於以下內容
-
其他建置系統的任何變更導致混合專案中斷,將不被視為 Meson 中的錯誤。
-
混合建置專案中的中斷將不被視為回歸,無論根本問題是什麼,此類問題永遠不會被視為發布的障礙。
-
任何需要 Meson 進行重大更改以解決其他建置系統中缺少或損壞的功能的使用情況都不受支援。這些問題必須在上游修復。
搜尋結果是