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
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.
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.
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 .
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 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.
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.
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 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.
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:
Opinia o produkcie vcpkg
vcpkg to projekt typu open source. Wybierz link, aby przekazać opinię: