概念:埠
vcpkg 中的埠是產生一組檔案的版本化配方。 執行埠會藉由產生新的標頭或二進位檔,來影響安裝圖形。 埠可能與其他埠有相依性,而且在啟用特定功能時可能需要額外的相依性。 這些相依性必須反映在埠元數據中。 連接埠至少包含:
- 套件的相關元數據:名稱、版本、支援的功能、相依性等。
- 取得、視需要建置及安裝套件的指示。
此外,埠可能包括:
- 要套用至套件原始程式碼的修補程式
- 與專案建置系統整合的指示
所有埠都必須包含 portfile (名為 portfile.cmake
的檔案)。 portfile 是腳本,其中包含如何在 vcpkg 環境中建置及安裝套件的指示。 portfiles 所執行的一些常見工作如下:
- 下載套件的原始程式碼。
- 使用上游組建系統建置套件。
- 將組建輸出複製到 vcpkg 安裝樹狀結構。
- 安裝組建系統整合檔案。
檔案 vcpkg.json
描述 vcpkg 埠中所含套件的相關元數據。 此檔案會定義屬性,例如套件的名稱、版本、描述、相依性、支援的功能和平臺等。若要深入瞭解, vcpkg.json
請參閱檔案參考。
警告
CONTROL
檔案已被取代,且只會保留回溯相容性。
CONTROL
vcpkg 中的檔案可作為元數據檔案,指定 vcpkg 可以安裝之套件的詳細數據或「埠」。 這些檔案已被取代,而且基本上已由 vcpkg.json
新埠的指令清單檔取代。 不過,它們會保留為回溯相容性。 如需詳細資訊,請參閱 control-files 。
在某些情況下,埠可能包含修補程序檔案。 這些檔案會修改連結庫的原始程式碼,這對於修正現有問題或維護與其他元件的相容性至關重要。 建置程序開始之前,修補程式會套用為 portfile 所執行之步驟的一部分,以方便順暢且無錯誤的連結庫整合。 如需深入瞭解, 請參閱維護者指南 。
埠類別是維護者用來表達 vcpkg 內不同埠所扮演角色的口述詞彙。 雖然這些類別有助於描述一般功能,但值得注意的是,任何指定的埠都可以根據其功能和使用案例,屬於多個類別或完全不屬於任何類別。
標準埠可作為從來源建置連結庫的配方,或提供僅限標頭連結庫的頭檔。 其中包含取得、建置及安裝連結庫所需的指示和元數據。 策展登錄中絕大多數的連結庫都是標準埠。
中繼埠可用來在安裝圖形上施加條件約束,而不需要有自己的組建檔案。 這些埠通常用來將一組相關連結庫分組為單一名稱,或做為可取代元件的間接層。 例如,是一個中繼埠, boost
會將各種 Boost 連結庫分組在單一名稱下,以便更輕鬆地進行相依性管理。
腳本埠包含公用程式腳本,主要適用於 vcpkg 內的內部工作,或供其他埠取用。 這些埠會啟用公用程式腳本的版本控制,藉此維護相容性和標準化。 例如, vcpkg-cmake
是公開協助程式函式的 vcpkg_cmake_configure()
腳本埠。
本檔提供 vcpkg 中的埠概觀,詳細說明其基本元素和各種類別。 如需更進階的主題和詳細指南,請參閱下列內容: