Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uruchamianie za pomocą polecenia create
Najpierw znajdź globalnie dostępne archiwum źródeł biblioteki. Obsługiwane są pliki zip, gzip i bzip. Zdecydowanie preferuj oficjalne źródła lub lustra na nieoficjalnych lustrach.
Patrząc na witrynę internetową biblioteki zlib, adres URL http://zlib.net/zlib-1.2.13.tar.gz
wygląda odpowiednio.
Po drugie, określ odpowiednią nazwę pakietu. Powinno to być ASCII, małe litery i rozpoznawalne dla kogoś, kto zna "ludzkie imię" biblioteki. Jeśli biblioteka jest już spakowana w innym menedżerze pakietów, preferuj tę nazwę.
Ponieważ zlib jest już spakowany jako zlib, w tym przykładzie użyjemy nazwy zlib2.
Na koniec, jeśli nazwa serwera dla archiwum nie jest bardzo opisowa (na przykład pobieranie spakowanego zatwierdzenia lub gałęzi z usługi GitHub), wybierz miłą nazwę archiwum formularza <packagename>-<version>.zip
.
zlib-1.2.13.zip
to dobra nazwa, więc żadna zmiana nie jest wymagana.
Wszystkie te informacje można następnie przekazać do create
polecenia , które pobierze źródła i uruchomi proces pakowania wewnątrz ports/<packagename>
programu .
PS D:\src\vcpkg> .\vcpkg create zlib2 http://zlib.net/zlib-1.2.13.tar.gz zlib-1.2.13.tar.gz
-- Downloading http://zlib.net/zlib-1.2.13.tar.gz -> zlib-1.2.13.tar.gz...
-- Generated portfile: D:\src\vcpkg\ports\zlib2\portfile.cmake
-- Generated manifest: D:\src\vcpkg\ports\zlib2\vcpkg.json
-- To launch an editor for these new files, run
-- .\vcpkg edit zlib2
Tworzenie pliku manifestu
Oprócz wygenerowanego ports/<package>/portfile.cmake
pliku potrzebujemy ports/<package>/vcpkg.json
również pliku. Ten plik to prosty zestaw pól opisujących metadane pakietu.
W przypadku biblioteki zlib2 utworzymy plik ports/zlib2/vcpkg.json
z następującą zawartością:
{
"name": "zlib2",
"version": "1.2.13",
"description": "A Massively Spiffy Yet Delicately Unobtrusive Compression Library"
}
Dostosowywanie wygenerowanego pliku portów
Wygenerowany portfile.cmake
element będzie potrzebował edycji, aby poprawnie spakować większość bibliotek w środowisku naturalnym, jednak możemy rozpocząć od wypróbowania kompilacji.
PS D:\src\vcpkg> .\vcpkg install zlib2
Computing installation plan...
The following packages will be built and installed:
zlib2[core]:x64-uwp
Starting package 1/1: zlib2:x64-uwp
Building package zlib2[core]:x64-uwp...
-- Using cached C:/src/vcpkg/downloads/zlib-1.2.13.tar.gz
-- Cleaning sources at C:/src/vcpkg/buildtrees/zlib2/src/1.2.13-deec42f53b.clean. Pass --editable to vcpkg to reuse sources.
-- Extracting source C:/src/vcpkg/downloads/zlib-1.2.13.tar.gz
-- Applying patch cmake_dont_build_more_than_needed.patch
-- Using source at C:/src/vcpkg/buildtrees/zlib2/src/1.2.13-deec42f53b.clean
-- Configuring x64-uwp
-- Building x64-uwp-dbg
-- Building x64-uwp-rel
-- Installing: C:/src/vcpkg/packages/zlib2_x64-uwp/share/zlib2/copyright
-- Performing post-build validation
Include files should not be duplicated into the /debug/include directory. If this cannot be disabled in the project cmake, use
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
/debug/share should not exist. Please reorganize any important files, then use
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
The software license must be available at ${CURRENT_PACKAGES_DIR}/share/zlib2/copyright
Found 3 error(s). Please correct the portfile:
D:\src\vcpkg\ports\zlib2\portfile.cmake
W tym momencie jest to kwestia odczytywania komunikatów o błędach i plików dziennika, jednocześnie poprawiając jakość pliku portfile. Biblioteka Zlib wymaga dostarczenia dyskretnej kopii licencji do skopiowania do pakietu, pomijania kompilacji i instalacji plików wykonywalnych i nagłówków oraz usuwania bibliotek statycznych po ich zainstalowaniu.
Sugerowane przykładowe pliki portów
W katalogu jest wiele bibliotek, które mogą być używane jako przykłady, w tym wiele, które nie są oparte na narzędziu ports/
CMake.
- Biblioteki tylko nagłówków
- rapidjson
- range-v3
- Oparty na programie MSBuild
- chakracore
- Nienależący do narzędzia CMake, niestandardowy system kompilacji
- openssl
- ffmpeg