Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Narzędzia używane w czasie kompilacji przez inne porty do generowania kodu lub implementowania niestandardowego systemu kompilacji można spakować wewnątrz programu vcpkg.
Spożywanie
W przypadku korzystania z portu jako narzędzia należy ustawić pole zależności "host" na wartość true. Na przykład:
{
"name": "contoso-http-library",
"version-string": "1.0.0",
"description": "Contoso's http runtime library",
"dependencies": [
"contoso-core-library",
{
"name": "contoso-code-generator",
"host": true
},
{
"name": "contoso-build-system",
"host": true
}
]
}
W takim przypadku contoso-code-generator elementy i contoso-build-system (w tym wszelkie zależności przechodnie) zostaną skompilowane i zainstalowane dla triplet hosta przed contoso-http-library kompilacją.
Uwaga
Użytkownicy muszą używać vcpkg.json zamiast CONTROL jako formatu metadanych. Istniejący CONTROL plik można łatwo przekonwertować przy użyciu polecenia vcpkg format-manifest /path/to/CONTROL.
Następnie w pliku portfile odbiorcy (contoso-http-library w przykładzie) zmienna CURRENT_HOST_INSTALLED_DIR CMake zostanie zdefiniowana installed/<host-triplet> i powinna służyć do lokalizowania wszelkich wymaganych zasobów. W tym przykładzie contoso-code-generator może być tools/contoso-code-generator/ccg.exe zainstalowane, które odbiorca doda do ścieżki lokalnej za pośrednictwem:
# ports/contoso-http-library/portfile.cmake
vcpkg_add_to_path(${CURRENT_HOST_INSTALLED_DIR}/tools/contoso-code-generator)
Określanie trójki hostów
Domyślne trójkropki hosta są wybierane na podstawie architektury hosta i systemu operacyjnego, na przykład x64-windows, x64-linuxlub x64-osx. Można je przesłonić za pomocą:
- W trybie manifestu opartym na narzędziu CMake wywoływanie
set(VCPKG_HOST_TRIPLET "<triplet>" CACHE STRING "")przed pierwsząproject()dyrektywą - W trybie manifestu
VcpkgHostTripletopartym na programie MSBuild ustawienie właściwości - W wierszu polecenia za pomocą flagi
--host-triplet=... - Zmienna środowiskowa
VCPKG_DEFAULT_HOST_TRIPLET
Produkcji
Tworzenie narzędzia nie ma specjalnych wymagań; narzędzia powinny być tworzone jako standardowy port, zgodnie ze wszystkimi normalnymi zasadami i praktykami. W szczególności powinny one opierać się na TARGET_TRIPLETelementach , a nie HOST_TRIPLET w kontekście ich pliku portfile.
Jeśli bieżący kontekst jest kompilowanie krzyżowe (TARGET_TRIPLET nie HOST_TRIPLETjest ), VCPKG_CROSSCOMPILING zostanie ustawiony na wartość prawda.
if(VCPKG_CROSSCOMPILING)
# This is a native build
else()
# This is a cross build
endif()
Porty tylko dla hosta
Niektóre porty powinny być zależne tylko od zależności hosta; Porty skryptu i porty narzędzi są typowymi przykładami. W tym przypadku możesz użyć "native" wyrażenia supports, aby to opisać. Obsługuje to wyrażenie ma wartość true, gdy VCPKG_CROSSCOMPILING ma wartość false (co oznacza, że TARGET_TRIPLET == HOST_TRIPLET).
VCPKG_USE_HOST_TOOLS
Ustaw tę opcję narzędzia CMake, aby dodać pliki wykonywalne skompilowane przez narzędzie vcpkg na .CMAKE_PROGRAM_PATH
i udostępnij je podczas procesu kompilacji.
Aby ta opcja weszła w życie, należy ją ustawić przed każdym wywołaniem project() elementu w CMakeLists.txt pliku. Należy również ustawić zmienną VCPKG_HOST_TRIPLET .
Do folderu są dodawane CMAKE_PROGRAM_PATHtylko narzędzia zainstalowane w tools folderze triplet hosta.
W rzeczywistości dodawane są następujące lokalizacje:
${VCPKG_INSTALLED_DIR}/${VCPKG_HOST_TRIPLET}/tools${VCPKG_INSTALLED_DIR}/${VCPKG_HOST_TRIPLET}/tools/*/bin