Udostępnij za pośrednictwem


Odwołanie do trójkropków

W tym artykule opisano zmienne vcpkg, które są dostępne dla plików potrójnych. Plik potrójny może również zawierać zmienne zdefiniowane przez użytkownika.

Zapoznaj się z dokumentacją dotyczącą koncepcji trypletów, aby zapoznać się z ogólnym widokiem funkcji potrójnych.

Zmienne

VCPKG_TARGET_ARCHITECTURE

Określa architekturę maszyny docelowej.

Prawidłowe opcje obejmują x86, x64arm64s390xppc64leriscv32arm64ecarmloongarch32loongarch64riscv64mips64i .wasm32

VCPKG_CRT_LINKAGE

Określa żądany link CRT (dla MSVC).

Prawidłowe opcje to dynamic i static.

VCPKG_LIBRARY_LINKAGE

Określa preferowany link biblioteki.

Prawidłowe opcje to dynamic i static. Biblioteki mogą ignorować to ustawienie, jeśli nie obsługują preferowanego typu połączenia.

VCPKG_BUILD_TYPE

Tę wartość można ustawić tak release , aby kompilować wersje tylko dla wersji portów. Domyślnie ta wartość jest pusta. Gdy ta wartość jest pusta, vcpkg kompiluje konfiguracje wydania i debugowania portów.

VCPKG_CMAKE_SYSTEM_NAME

Określa platformę docelową.

Prawidłowe opcje obejmują dowolną nazwę systemu CMake, taką jak:

  • Empty (Windows Desktop ze starszych powodów)
  • WindowsStore(platforma uniwersalna systemu Windows)
  • MinGW (Minimalistyczny GNU dla systemu Windows)
  • Darwin (Mac OSX)
  • iOS (iOS)
  • Linux (Linux)
  • Emscripten (Zestaw WebAssembly)

VCPKG_CMAKE_SYSTEM_VERSION

Określa docelową wersję systemu platformy.

To pole jest opcjonalne i, jeśli istnieje, zostanie przekazane do kompilacji jako CMAKE_SYSTEM_VERSION.

Zobacz również dokumentację narzędzia CMake, aby uzyskać informacje CMAKE_SYSTEM_VERSION

VCPKG_CHAINLOAD_TOOLCHAIN_FILE

Określa alternatywny plik łańcucha narzędzi CMake do użycia.

Spowoduje to (jeśli ustawiono) zastąpienie wszystkich innych logiki wykrywania kompilatora. Domyślnie plik łańcucha narzędzi jest wybierany z scripts/toolchains/ odpowiedniej do platformy.

Zobacz również dokumentację narzędzia CMake dotyczącą plików łańcucha narzędzi.

VCPKG_CXX_FLAGS

Ustawia dodatkowe flagi kompilatora, które mają być używane, gdy nie jest używany .VCPKG_CHAINLOAD_TOOLCHAIN_FILE

Ta opcja zawiera również formularze flag specyficznych dla konfiguracji i flag języka C:

  • VCPKG_CXX_FLAGS
  • VCPKG_CXX_FLAGS_DEBUG
  • VCPKG_CXX_FLAGS_RELEASE
  • VCPKG_C_FLAGS
  • VCPKG_C_FLAGS_DEBUG
  • VCPKG_C_FLAGS_RELEASE

VCPKG_LINKER_FLAGS

Ustawia dodatkowe flagi konsolidatora, które mają być używane podczas tworzenia bibliotek dynamicznych i plików wykonywalnych w przypadku braku elementu VCPKG_CHAINLOAD_TOOLCHAIN_FILE.

Ta opcja zawiera również formularze flag specyficznych dla konfiguracji:

  • VCPKG_LINKER_FLAGS
  • VCPKG_LINKER_FLAGS_DEBUG
  • VCPKG_LINKER_FLAGS_RELEASE

VCPKG_MESON_CONFIGURE_OPTIONS

Ustaw dodatkowe opcje konfiguracji Meson, które są dołączane do polecenia configure (w pliku vcpkg_configure_meson).

To pole jest opcjonalne.

Dostępne również jako zmienne i VCPKG_MESON_CONFIGURE_OPTIONS_RELEASE specyficzne dla VCPKG_MESON_CONFIGURE_OPTIONS_DEBUG typu kompilacji.

VCPKG_MESON_NATIVE_FILE_RELEASE

Podaj dodatkowy plik zależny od konfiguracji jako plik między/natywny meson. Może służyć do zastępowania ustawień udostępnianych przez narzędzie vcpkg, ponieważ zostanie on przekazany po przekazaniu wygenerowanych plików krzyżowych/natywnych vcpkg.

Szczególnie przydatne do udostępniania własnych wpisów build_machine i host_machine.

VCPKG_MESON_NATIVE_FILE_DEBUG

Zobacz VCPKG_MESON_NATIVE_FILE_RELEASE.

VCPKG_MESON_CROSS_FILE_RELEASE

Zobacz VCPKG_MESON_NATIVE_FILE_RELEASE.

VCPKG_MESON_CROSS_FILE_DEBUG

Zobacz VCPKG_MESON_NATIVE_FILE_RELEASE.

VCPKG_CMAKE_CONFIGURE_OPTIONS

Ustawia dodatkowe opcje konfiguracji narzędzia CMake, które są dołączane do polecenia configure (w pliku vcpkg_cmake_configure).

To pole jest opcjonalne.

Dostępne również jako zmienne i VCPKG_CMAKE_CONFIGURE_OPTIONS_RELEASE specyficzne dla VCPKG_CMAKE_CONFIGURE_OPTIONS_DEBUG typu kompilacji.

VCPKG_CONFIGURE_MAKE_OPTIONS

Ustaw dodatkowe opcje konfiguracji automake/autoconf, które są dołączane do polecenia configure (w pliku vcpkg_configure_make).

To pole jest opcjonalne.

Aby na przykład pominąć niektóre kontrole libtool, które mogą błędnie zakończyć się niepowodzeniem:

set(VCPKG_CONFIGURE_MAKE_OPTIONS "lt_cv_deplibs_check_method=pass_all")

Dostępne również jako zmienne i VCPKG_CONFIGURE_MAKE_OPTIONS_RELEASE specyficzne dla VCPKG_CONFIGURE_MAKE_OPTIONS_DEBUG typu kompilacji.

VCPKG_HASH_ADDITIONAL_FILES

Lista plików do uwzględnienia w obliczeniu skrótów ABI pakietu.

To pole jest opcjonalne.

Zadeklaruj wszystkie pliki, które mają wpływ na zawartość pakietu i powinny być uwzględniane w obliczeniu skrótu ABI. Na przykład:

  • Pliki dołączone (za pośrednictwem include(filepath)) w niestandardowych trójkach i łańcuchach narzędzi.
  • Pliki zdefiniowane w programie VCPKG_MESON_(NATIVE|CROSS)_FILE_<CONFIG>

Uwzględniana jest tylko zawartość i kolejność plików. Ścieżki plików nie mają wpływu na skrót ABI.

set(VCPKG_HASH_ADDITIONAL_FILES
  "${CMAKE_CURRENT_LIST_DIR}/file1.cmake"
  "${CMAKE_CURRENT_LIST_DIR}/meson-cross.txt"
)

VCPKG_DEP_INFO_OVERRIDE_VARS

Uwaga

W tej sekcji opisano eksperymentalną funkcję vcpkg, która może ulec zmianie lub zostać usunięta w dowolnym momencie.

Zastępuje domyślną obliczoną listę terminów "Obsługuje".

Ta opcja (jeśli ustawiona) zastąpi domyślny zestaw terminów używanych do oceny wyrażeń platformy.

Aby uzyskać więcej informacji, zobacz dokumentację pola pliku manifestu "supports" .

Uwaga

Ta lista jest wyodrębniona za pośrednictwem vcpkg_get_dep_info funkcji pomocnika.

VCPKG_DISABLE_COMPILER_TRACKING

Ostrzeżenie

Włączenie tej opcji nie jest zalecane, ponieważ może prowadzić do niezgodności ABI w przywróconych pakietach binarnych. Zobacz dokumentację buforowania binarnego, aby dowiedzieć się więcej

Jeśli ta opcja jest ustawiona na TRUE, ONlub 1, kompilator nie będzie śledzony w ramach pakietu abis.

Spowoduje to Buforowanie binarne ponowne użycie kompilacji ze starszych lub nowszych kompilatorów.

Zmienne specyficzne dla systemu Windows

VCPKG_ENV_PASSTHROUGH

Instruuje program vcpkg, aby zezwolić na dodatkowe zmienne środowiskowe w procesie kompilacji.

W systemie Windows program vcpkg kompiluje pakiety w specjalnym czystym środowisku, które jest odizolowane od bieżącego wiersza polecenia, aby zapewnić niezawodność i spójność kompilacji. Tę opcję potrójną można ustawić na listę dodatkowych zmiennych środowiskowych, które zostaną dodane do czystego środowiska. Wartości tych zmiennych środowiskowych zostaną skrócone do pakietu abi — aby przekazać zmienne środowiskowe bez śledzenia abi, zobacz VCPKG_ENV_PASSTHROUGH_UNTRACKED.

Zobacz również vcpkg env polecenie, aby dowiedzieć się, jak można sprawdzić dokładne środowisko, które będzie używane.

Uwaga

Ta lista jest wyodrębniona za pośrednictwem vcpkg_get_tags funkcji pomocnika.

VCPKG_ENV_PASSTHROUGH_UNTRACKED

Instruuje program vcpkg, aby zezwolić na dodatkowe zmienne środowiskowe w procesie kompilacji bez śledzenia abi.

Zobacz: VCPKG_ENV_PASSTHROUGH.

VCPKG_VISUAL_STUDIO_PATH

Określa instalację programu Visual Studio do użycia.

Aby wybrać dokładną kombinację wystąpienia programu Visual Studio i wersji zestawu narzędzi, omówimy następujący algorytm:

  1. Określ ustawienie dla wartości VCPKG_VISUAL_STUDIO_PATH z potrójnej lub zmiennej VCPKG_VISUAL_STUDIO_PATHśrodowiskowej lub rozważ jej anulowanie
  2. Określanie ustawienia dla VCPKG_PLATFORM_TOOLSET elementu z potrójnego lub rozważ jego anulowanie
  3. Zbierz listę wszystkich par wystąpień programu Visual Studio z wszystkimi zestawami narzędzi dostępnymi w tych wystąpieniach
    • Jest to najpierw uporządkowane według typu wystąpienia (stabilna, wersja wstępna, starsza wersja), a następnie według wersji zestawu narzędzi (v143, v142, v141, v140)
  4. Filtruj listę na podstawie ustawień dla VCPKG_VISUAL_STUDIO_PATH i VCPKG_PLATFORM_TOOLSET.
  5. Wybierz najlepszą pozostałą opcję

Ścieżka powinna być bezwzględna, sformatowana ukośnikami odwrotnymi i nie ma ukośnika końcowego:

set(VCPKG_VISUAL_STUDIO_PATH "C:\\Program Files (x86)\\Microsoft Visual Studio\\Preview\\Community")

VCPKG_PLATFORM_TOOLSET

Określa łańcuch narzędzi kompilatora C/C++ oparty na programie VS.

Zobacz VCPKG_VISUAL_STUDIO_PATH , aby zapoznać się z algorytmem pełnego wyboru.

Prawidłowe ustawienia:

  • Zestaw narzędzi platformy programu Visual Studio 2022 to v143.
  • Zestaw narzędzi platformy programu Visual Studio 2019 to v142.
  • Zestaw narzędzi platformy programu Visual Studio 2017 to v141.
  • Zestaw narzędzi platformy programu Visual Studio 2015 to v140.

VCPKG_PLATFORM_TOOLSET_VERSION

Określa szczegółowy łańcuch narzędzi kompilatora C/C++ MSVC do użycia.

Domyślnie [VCPKG_PLATFORM_TOOLSET] zawsze wybiera najnowszą zainstalowaną wersję pomocniczą wybranego zestawu narzędzi. Jeśli potrzebujesz większej szczegółowości, możesz użyć tej zmiennej. Specyfikacja może być częściowym lub pełnym numerem wersji. Prawidłowe wartości to na przykład 14.25 lub 14.27.29110.

VCPKG_LOAD_VCVARS_ENV

Określa, czy narzędzie vcpkg będzie wyszukiwać i używać wystąpienia programu Visual Studio w ramach środowiska potrójnego.

Domyślnie dotyczy ON to trypletów systemu Windows, które nie określają VCPKG_CHAINLOAD_TOOLCHAIN_FILE. W przypadku trojaków i trojaków innych niż Windows określających VCPKG_CHAINLOAD_TOOLCHAIN_FILEwartość , ta wartość jest domyślnie ustawiona na OFF.

Zmienne systemu Linux

VCPKG_FIXUP_ELF_RPATH

Po ustawieniu tej opcji na wartość (true|1|on) program vcpkg doda $ORIGIN i $ORIGIN/<path_relative_to_lib> do RUNPATH nagłówka plików wykonywalnych i bibliotek udostępnionych. Umożliwia to przenoszenie pakietów w systemie Linux.

Zmienne systemu MacOS

VCPKG_INSTALL_NAME_DIR

Ustawia nazwę instalacji używaną podczas kompilowania bibliotek dynamicznych systemu macOS. Wartość domyślna to @rpath. Aby uzyskać więcej informacji, zobacz dokumentację narzędzia CMake dla CMAKE_INSTALL_NAME_DIR .

VCPKG_OSX_DEPLOYMENT_TARGET

Ustawia minimalną wersję systemu macOS dla skompilowanych plików binarnych. Spowoduje to również zmianę wersji zestawu SDK platformy macOS wyszukiwanego przez narzędzie CMake. Aby uzyskać więcej informacji, zobacz dokumentację narzędzia CMake dla CMAKE_OSX_DEPLOYMENT_TARGET .

VCPKG_OSX_SYSROOT

Ustaw nazwę lub ścieżkę zestawu SDK platformy macOS, który będzie używany przez narzędzie CMake. Aby uzyskać więcej informacji, zobacz dokumentację narzędzia CMake dla CMAKE_OSX_SYSROOT .

VCPKG_OSX_ARCHITECTURES

Ustaw architekturę docelową systemu macOS/iOS, która będzie używana przez narzędzie CMake. Aby uzyskać więcej informacji, zobacz dokumentację narzędzia CMake dla CMAKE_OSX_ARCHITECTURES .

Dostosowywanie poszczególnych portów

Makro PORT CMake zostanie ustawione podczas interpretowania pliku potrójnego i może służyć do zmiany ustawień (takich jak VCPKG_LIBRARY_LINKAGE) na podstawie portu.

Przykład:

set(VCPKG_LIBRARY_LINKAGE static)
if(${PORT} MATCHES "qt5-")
    set(VCPKG_LIBRARY_LINKAGE dynamic)
endif()

Spowoduje to skompilowanie qt5-* wszystkich bibliotek jako bibliotek DLL, ale każda inna biblioteka jako biblioteka statyczna.

Przykład w rzeczywistym projekcie można znaleźć w temacie https://github.com/Intelight/vcpkg/blob/master/triplets/x86-windows-mixed.cmake.