Udostępnij za pośrednictwem


Koncepcja: porty

Port w narzędziu vcpkg to przepis w wersji, który tworzy zestaw plików. Wykonanie portu wpływa na graf instalacji przez utworzenie nowych plików nagłówkowych lub binarnych. Porty mogą mieć zależności od innych portów i mogą wymagać dodatkowych zależności po włączeniu niektórych funkcji. Te zależności muszą być odzwierciedlone w metadanych portów. Co najmniej port zawiera:

  • Metadane dotyczące pakietu: nazwa, wersja, obsługiwane funkcje, zależności itp.
  • Instrukcje uzyskiwania, kompilowania i instalowania pakietu.

Ponadto porty mogą obejmować:

  • Poprawki stosowane do kodu źródłowego pakietu
  • Instrukcje dotyczące integracji z systemem kompilacji projektu

Plik portu (portfile.cmake)

Wszystkie porty muszą zawierać plik portowy (plik o nazwie portfile.cmake). Plik portfile to skrypt zawierający instrukcje dotyczące kompilowania i instalowania pakietu w środowisku vcpkg. Niektóre typowe zadania wykonywane przez pliki portów to:

  • Pobierz kod źródłowy pakietu.
  • Skompiluj pakiet przy użyciu nadrzędnego systemu kompilacji.
  • Skopiuj dane wyjściowe kompilacji do drzewa instalacji narzędzia vcpkg.
  • Zainstaluj pliki integracji systemu kompilacji.

vcpkg.json

Plik vcpkg.json opisuje metadane dotyczące pakietu zawartego w porcie vcpkg. Ten plik definiuje atrybuty, takie jak nazwa pakietu, wersja, opis, zależności, obsługiwane funkcje i platformy itp. Zobacz dokumentację vcpkg.json pliku, aby dowiedzieć się więcej.

PLIKI CONTROL

Ostrzeżenie

CONTROL pliki są przestarzałe i zachowywane tylko w celu zachowania zgodności z poprzednimi wersjami.

CONTROL pliki w narzędziu vcpkg służą jako pliki metadanych, które określają szczegółowe informacje o pakiecie lub "porcie", które można zainstalować w narzędziu vcpkg. Te pliki są przestarzałe i zostały w dużej mierze zastąpione plikami vcpkg.json manifestu dla nowych portów. Są one jednak zachowywane pod kątem zgodności z poprzednimi wersjami. Aby uzyskać więcej informacji, zobacz pliki kontroli .

Pliki poprawek

W niektórych scenariuszach port może zawierać pliki poprawek. Te pliki zawierają modyfikacje kodu źródłowego biblioteki, które są niezbędne do rozwiązania istniejących problemów lub zachowania zgodności z innymi składnikami. Przed rozpoczęciem procesu kompilacji poprawki są stosowane w ramach kroków wykonywanych przez plik portfile, ułatwiając bezproblemową i bezpłatną integrację biblioteki. Zapoznaj się z przewodnikiem obsługi , aby dowiedzieć się więcej.

Kategorie portów

Kategorie portów to potoczne terminy używane przez osoby odpowiedzialne za artykułowanie ról różnych portów w ramach programu vcpkg. Chociaż te kategorie pomagają opisać ogólne funkcje, warto zauważyć, że każdy dany port może należeć do wielu kategorii lub być może w ogóle nie, na podstawie jego funkcji i przypadków użycia.

Port standardowy

Standardowy port służy jako przepis na kompilowanie bibliotek ze źródła lub udostępnianie plików nagłówków dla bibliotek tylko nagłówków. Zawiera on instrukcje i metadane potrzebne do uzyskania, skompilowania i zainstalowania biblioteki. Zdecydowana większość bibliotek w rejestrze wyselekcjonowanych to porty standardowe.

Port meta

Meta port służy do nałożenia ograniczeń na graf instalacji bez posiadania własnych plików kompilacji. Te porty są często używane do grupowania zestawu powiązanych bibliotek pod pojedynczą nazwą lub służyć jako warstwa pośrednia dla składników możliwych do zastąpienia. Na przykład to meta-port, boost który grupuje różne biblioteki Boost pod pojedynczą nazwą, aby ułatwić zarządzanie zależnościami.

Port skryptu

Port skryptu zawiera skrypty narzędzi, które są przeznaczone głównie do zadań wewnętrznych w programie vcpkg lub do użycia przez inne porty. Te porty umożliwiają przechowywanie wersji skryptów narzędziowych, zapewniając zgodność i standaryzację. Na przykład vcpkg-cmake to port skryptu, który uwidacznia vcpkg_cmake_configure() funkcję pomocnika.

Następne kroki

Ten dokument zawiera omówienie portów w narzędziu vcpkg, szczegółowo opisujących podstawowe elementy i różne kategorie. Aby uzyskać bardziej zaawansowane tematy i szczegółowe przewodniki, zapoznaj się z następującymi tematami: