總覽
Meson 是一個建置系統,其設計宗旨是在不犧牲效能的前提下,盡可能地使用者友善。為此,它主要使用一種客製化的語言,讓使用者描述其建置的結構。此語言的主要設計目標為簡單、清晰和簡潔。它從 Python 程式語言中汲取了許多靈感,Python 被認為是即使對於以前沒有使用 Python 編程過的人來說,也是非常易讀的。
另一個主要想法是為現代編程工具和最佳實踐提供一流的支援。這些功能包括單元測試、程式碼覆蓋率報告、預編譯標頭等。所有這些功能都應該可以立即提供給任何使用 Meson 的專案。使用者不應該需要尋找第三方巨集或編寫 shell 腳本來獲得這些功能。它們應該能夠開箱即用。
這種強大的功能不應該以有限的可用性為代價。許多軟體建置需要非傳統的步驟。一個常見的例子是,您首先需要建置一個客製化的工具,然後使用該工具來產生更多的原始碼以進行建置。此功能需要被支援,並且要像系統的其他部分一樣易於使用。
術語
Meson 遵循其他流行的建置系統(如 CMake 和 GNU Autotools)的總體結構。這表示建置分為兩個獨立的步驟:設定步驟和建置步驟。第一步檢查系統、檢查相依性,並執行所有其他必要步驟以設定建置。然後它會產生實際的建置系統。第二步只是執行此產生的建置系統。最終結果是一組建置目標,通常是可執行檔以及共享和靜態程式庫。
包含原始碼的目錄稱為原始碼目錄。相對應地,寫入輸出的目錄稱為建置目錄。在其他建置系統中,通常這兩個目錄是相同的。這稱為內部建置。建置目錄是分開的情況稱為外部建置。
Meson 與大多數建置系統的不同之處在於,它強制使用單獨的建置目錄。建置系統建立的所有檔案都會放入建置目錄中。實際上,不可能進行內部建置。對於習慣在原始碼樹中進行建置的人來說,這似乎是不必要的複雜化。然而,只進行外部建置有幾個好處。這些將在下一章中說明。
當原始碼建置完成時,通常會執行一組單元測試。它們確保程式按預期工作。如果測試通過,則可以安裝建置結果,之後就可以使用了。
搜尋結果為