영어로 읽기

다음을 통해 공유


삼중 변수

이 문서에서는 삼중 파일에서 사용할 수 있는 vcpkg 변수에 대해 설명합니다. 삼중자 파일에는 사용자 정의 변수도 포함될 수 있습니다.

트리플렛 기능에 대한 개략적인 보기는 트리플렛 개념 설명서를 참조하세요.

변수

VCPKG_TARGET_ARCHITECTURE

대상 컴퓨터 아키텍처를 지정합니다.

유효한 옵션으로는 x86,x64, ,arm, arm64arm64ec,s390x, ppc64le, riscv64loongarch32riscv32, loongarch64mips64wasm32.

VCPKG_CRT_LINKAGE

원하는 CRT 링크(MSVC용)를 지정합니다.

유효한 옵션은 다음과 같습니다 dynamic static.

VCPKG_LIBRARY_LINKAGE

기본 라이브러리 연결을 지정합니다.

유효한 옵션은 다음과 같습니다 dynamic static. 라이브러리는 기본 설정 링크 유형을 지원하지 않는 경우 이 설정을 무시할 수 있습니다.

VCPKG_BUILD_TYPE

이 값을 설정하여 릴리스 전용 버전의 포트를 빌드할 release 수 있습니다. 기본적으로 이 값은 비어 있습니다. 이 값이 비어 있는 경우 vcpkg는 포트의 릴리스 및 디버그 구성을 빌드합니다.

VCPKG_CMAKE_SYSTEM_NAME

대상 플랫폼을 지정합니다.

유효한 옵션에는 다음과 같은 CMake 시스템 이름이 포함됩니다.

  • 비어 있음(레거시 이유로 Windows 데스크톱)
  • WindowsStore(유니버설 Windows 플랫폼)
  • MinGW (Windows용 미니멀리스트 GNU)
  • Darwin (Mac OSX)
  • iOS (iOS)
  • Linux (Linux)
  • Emscripten (WebAssembly)

VCPKG_CMAKE_SYSTEM_VERSION

대상 플랫폼 시스템 버전을 지정합니다.

이 필드는 선택 사항이며, 있는 경우 빌드에 다음과 같이 CMAKE_SYSTEM_VERSION전달됩니다.

에 대한 CMake 설명서도 참조하세요. CMAKE_SYSTEM_VERSION

VCPKG_CHAINLOAD_TOOLCHAIN_FILE

사용할 대체 CMake 도구 체인 파일을 지정합니다.

이 값(설정된 경우)은 다른 모든 컴파일러 검색 논리를 재정의합니다. 기본적으로 도구 체인 파일은 적절한 플랫폼에서 scripts/toolchains/ 선택됩니다.

참고

사용자 지정 도구 체인 파일을 만들려면 먼저 기존 도구 체인 ${VCPKG_ROOT}/scripts/toolchains 을 포함하고 확장하는 것이 가장 좋습니다. 이렇게 하면 vcpkg 실행 파일(예: VCPKG_TARGET_ARCHITECTURE, VCPKG_CXX_FLAGSVCPKG_LINKER_FLAGS및 기타 변수)에서 설정한 필수 변수가 CMake로 전달됩니다.

도구 체인 파일에 대한 CMake 설명서도 참조하세요.

VCPKG_CXX_FLAGS

를 사용하지 VCPKG_CHAINLOAD_TOOLCHAIN_FILE않을 때 사용할 추가 컴파일러 플래그를 설정합니다.

이 옵션에는 구성별 플래그 및 C 언어 플래그에 대한 양식도 있습니다.

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

설정하는 VCPKG_CXX_FLAGS경우 설정 VCPKG_C_FLAGS해야 하며 그 반대의 경우도 마찬가지입니다. 구성별 플래그도 마찬가지입니다. 이러한 변수는 공백으로 구분된 컴파일러 플래그 문자열을 허용합니다.

set(VCPKG_CXX_FLAGS "/wd4996 -D_CRT_SECURE_NO_WARNINGS")
set(VCPKG_C_FLAGS "/wd4996 -D_CRT_SECURE_NO_WARNINGS")

VCPKG_LINKER_FLAGS

없는 경우 동적 라이브러리 및 실행 파일을 빌드하는 동안 사용할 추가 링커 플래그를 VCPKG_CHAINLOAD_TOOLCHAIN_FILE설정합니다.

이 옵션에는 구성별 플래그에 대한 양식도 있습니다.

  • VCPKG_LINKER_FLAGS
  • VCPKG_LINKER_FLAGS_DEBUG
  • VCPKG_LINKER_FLAGS_RELEASE

VCPKG_MESON_CONFIGURE_OPTIONS

구성 명령(in vcpkg_configure_meson)에 추가되는 추가 Meson 구성 옵션을 설정합니다.

이 필드는 선택적입니다.

빌드 형식별 VCPKG_MESON_CONFIGURE_OPTIONS_DEBUGVCPKG_MESON_CONFIGURE_OPTIONS_RELEASE 변수로도 사용할 수 있습니다.

VCPKG_MESON_NATIVE_FILE_RELEASE

추가 구성 종속 파일을 meson 크로스/네이티브 파일로 제공합니다. vcpkg에서 생성된 크로스/네이티브 파일이 전달된 후에 전달되므로 vcpkg에서 제공하는 설정을 재정의하는 데 사용할 수 있습니다.

사용자 고유의 build_machine 및 host_machine 항목을 제공하는 데 특히 유용합니다.

VCPKG_MESON_NATIVE_FILE_DEBUG

VCPKG_MESON_NATIVE_FILE_RELEASE 참조하세요.

VCPKG_MESON_CROSS_FILE_RELEASE

VCPKG_MESON_NATIVE_FILE_RELEASE 참조하세요.

VCPKG_MESON_CROSS_FILE_DEBUG

VCPKG_MESON_NATIVE_FILE_RELEASE 참조하세요.

VCPKG_CMAKE_CONFIGURE_OPTIONS

구성 명령(in vcpkg_cmake_configure)에 추가되는 추가 CMake 구성 옵션을 설정합니다.

이 필드는 선택적입니다.

빌드 형식별 VCPKG_CMAKE_CONFIGURE_OPTIONS_DEBUGVCPKG_CMAKE_CONFIGURE_OPTIONS_RELEASE 변수로도 사용할 수 있습니다.

VCPKG_CONFIGURE_MAKE_OPTIONS

구성 명령에 추가되는 추가 automake/autoconf 구성 옵션을 설정합니다(vcpkg_configure_make/>).

이 필드는 선택적입니다.

예를 들어 잘못 실패할 수 있는 특정 libtool 검사를 건너뛰려면 다음을 수행합니다.

set(VCPKG_CONFIGURE_MAKE_OPTIONS "lt_cv_deplibs_check_method=pass_all")

빌드 형식별 VCPKG_CONFIGURE_MAKE_OPTIONS_DEBUGVCPKG_CONFIGURE_MAKE_OPTIONS_RELEASE 변수로도 사용할 수 있습니다.

VCPKG_HASH_ADDITIONAL_FILES

패키지 ABI 해시 계산 에 포함할 파일 목록입니다.

이 필드는 선택적입니다.

패키지의 내용에 영향을 주는 파일을 선언하고 ABI 해시 계산에 포함해야 합니다. 예시:

  • 사용자 지정 삼중자 및 도구 체인에 포함된 파일(통해 include(filepath))입니다.
  • 에 정의된 파일 VCPKG_MESON_(NATIVE|CROSS)_FILE_<CONFIG>

파일의 내용과 순서만 고려되며 파일 경로는 ABI 해시에 영향을 미치지 않습니다.

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

VCPKG_POST_PORTFILE_INCLUDES

portfile.cmake를 실행한 후 포함할 CMake 파일 목록입니다.

이 필드는 선택적입니다.

파일의 내용과 순서는 ABI 해시에 사용되며 파일 경로는 ABI 해시에 영향을 미치지 않습니다.

set(VCPKG_POST_PORTFILE_INCLUDES
  "${CMAKE_CURRENT_LIST_DIR}/file1.cmake"
  "${CMAKE_CURRENT_LIST_DIR}/file2.cmake"
)

VCPKG_DEP_INFO_OVERRIDE_VARS

참고

이 섹션에서는 언제든지 변경하거나 제거할 수 있는 vcpkg의 실험적 기능에 대해 설명합니다.

세 쌍둥이 "지원" 용어의 기본 계산 목록을 바꿉니다.

이 옵션(설정된 경우)은 플랫폼 식 평가에 사용되는 기본 용어 집합을 재정의합니다.

"supports" 자세한 내용은 매니페스트 파일 필드 설명서를 참조하세요.

참고

이 목록은 도우미 함수를 vcpkg_get_dep_info 통해 추출됩니다.

VCPKG_DISABLE_COMPILER_TRACKING

경고

복원된 이진 패키지에서 ABI 비호환성이 발생할 수 있으므로 이 옵션을 사용하지 않는 것이 좋습니다. 자세한 내용은 이 진 캐싱 설명서를 참조하세요.

이 옵션을 < a0/ON> 또는 1로 설정TRUE하면 컴파일러가 패키지 abis의 일부로 추적되지 않습니다.

이로 인해 이진 캐싱 이 이전 또는 최신 컴파일러의 빌드를 다시 사용합니다.

Windows 관련 변수

VCPKG_ENV_PASSTHROUGH

빌드 프로세스에 추가 환경 변수를 허용하도록 vcpkg에 지시합니다.

Windows에서 vcpkg는 빌드 안정성 및 일관성을 보장하기 위해 현재 명령 프롬프트에서 격리된 특수한 클린 환경에서 패키지를 빌드합니다. 이 삼중자 옵션은 클린 환경에 추가될 추가 환경 변수 목록으로 설정할 수 있습니다. 이러한 환경 변수의 값은 패키지 abi로 해시됩니다. abi 추적 없이 환경 변수를 통과하려면 다음을 참조하세요 VCPKG_ENV_PASSTHROUGH_UNTRACKED.

사용할 정확한 환경을 검사하는 방법에 대한 명령도 vcpkg env 참조하세요.

참고

이 목록은 도우미 함수를 vcpkg_get_tags 통해 추출됩니다.

VCPKG_ENV_PASSTHROUGH_UNTRACKED

abi 추적 없이 빌드 프로세스에 추가 환경 변수를 허용하도록 vcpkg에 지시합니다.

VCPKG_ENV_PASSTHROUGH을 참조하세요.

VCPKG_VISUAL_STUDIO_PATH

사용할 Visual Studio 설치를 지정합니다.

Visual Studio 인스턴스 및 도구 집합 버전의 정확한 조합을 선택하려면 다음 알고리즘을 안내합니다.

  1. 삼중자 또는 환경 변수VCPKG_VISUAL_STUDIO_PATH에서 설정을 VCPKG_VISUAL_STUDIO_PATH 결정하거나 설정되지 않은 것으로 간주합니다.
  2. 삼중자에서 설정을 VCPKG_PLATFORM_TOOLSET 결정하거나 설정되지 않은 것으로 간주합니다.
  3. 해당 인스턴스에서 사용할 수 있는 모든 도구 집합을 사용하여 Visual Studio 인스턴스의 모든 쌍 목록을 수집합니다.
    • 먼저 인스턴스 유형(안정, 시험판, 레거시) 및 도구 집합 버전(v143, v142, v141, v140)에 따라 정렬됩니다.
  4. 및 에 대한 VCPKG_VISUAL_STUDIO_PATH 설정에 따라 목록을 필터링합니다 VCPKG_PLATFORM_TOOLSET.
  5. 가장 적합한 나머지 옵션 선택

경로는 절대 경로여야 하며 백슬라이시로 서식이 지정되며 후행 슬래시가 없어야 합니다.

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

VCPKG_PLATFORM_TOOLSET

사용할 Visual Studio 기반 C/C++ 컴파일러 도구 체인을 지정합니다.

전체 선택 알고리즘은 참조 VCPKG_VISUAL_STUDIO_PATH 하세요.

유효한 설정:

  • Visual Studio 2022 플랫폼 도구 집합은 v143.
  • Visual Studio 2019 플랫폼 도구 집합은 v142.
  • Visual Studio 2017 플랫폼 도구 집합은 v141.
  • Visual Studio 2015 플랫폼 도구 집합은 v140.

VCPKG_PLATFORM_TOOLSET_VERSION

사용할 자세한 MSVC C/C++ 컴파일러 도구 체인을 지정합니다.

기본적으로 VCPKG_PLATFORM_TOOLSET 선택한 도구 집합의 최신 설치된 부 버전을 항상 선택합니다. 더 세분성이 필요한 경우 이 변수를 사용할 수 있습니다. 부분 또는 전체 버전 번호를 지정할 수 있습니다. 유효한 값은 예를 들면 14.25 다음과 14.27.29110같습니다.

VCPKG_LOAD_VCVARS_ENV

vcpkg가 Visual Studio 인스턴스를 검색하여 삼중자 환경의 일부로 사용할지 여부를 결정합니다.

기본적으로 지정하지 않는 VCPKG_CHAINLOAD_TOOLCHAIN_FILEWindows 트리플렛용입니다ON. Windows가 아닌 세 쌍둥이 및 세 쌍둥이를 지정하는 VCPKG_CHAINLOAD_TOOLCHAIN_FILE경우 이 기본값은 .입니다 OFF.

Linux 변수

VCPKG_FIXUP_ELF_RPATH

이 옵션을 (true|1|on)으로 설정하면 vcpkg가 실행 파일 및 $ORIGIN/<path_relative_to_lib> 공유 라이브러리의 헤더에 RUNPATH 추가 $ORIGIN 됩니다. 이렇게 하면 Linux에서 패키지를 재배치할 수 있습니다.

MacOS 변수

VCPKG_INSTALL_NAME_DIR

macOS 동적 라이브러리를 빌드할 때 사용되는 설치 이름을 설정합니다. 기본값은 @rpath여야 합니다. 자세한 내용은 CMake 설명서에서 CMAKE_INSTALL_NAME_DIR 참조하세요.

VCPKG_FIXUP_MACHO_RPATH

상대 설치 이름 및 실행 경로를 사용하여 vcpkg에서 빌드한 Mach-O 이진 파일을 재배치할 수 있는지 확인합니다.

로 설정된 ON경우:

  • 공유 라이브러리 이진 파일에 대한 절대 LC_LC_ID_DYLIB 필드를 @rpath/<library> 수정합니다.
  • 절대 LC_RPATH 필드를 실행 파일 및 공유 라이브러리 이진 파일의 상대 @loader_path/<relative/path/to/library> 필드로 수정합니다.

중요

이 기능은 다음과 같은 경우 VCPKG_TARGET_IS_OSX 기본적으로 사용하도록 설정됩니다 TRUE. 사용하지 않도록 설정하려면 명시적으로 삼중 파일설정합니다 VCPKG_FIXUP_MACHO_RPATH OFF.

macOS의 동적 라이브러리에 대한 자세한 내용은 다음 링크를 참조하세요.

VCPKG_OSX_DEPLOYMENT_TARGET

컴파일된 이진 파일에 대한 최소 macOS 버전을 설정합니다. 또한 검색할 macOS 플랫폼 SDK CMake 버전도 변경됩니다. 자세한 내용은 CMake 설명서에서 CMAKE_OSX_DEPLOYMENT_TARGET 참조하세요.

VCPKG_OSX_SYSROOT

CMake에서 사용할 macOS 플랫폼 SDK의 이름 또는 경로를 설정합니다. 자세한 내용은 CMake 설명서에서 CMAKE_OSX_SYSROOT 참조하세요.

VCPKG_OSX_ARCHITECTURES

CMake에서 사용할 macOS/iOS 대상 아키텍처를 설정합니다. 자세한 내용은 CMake 설명서에서 CMAKE_OSX_ARCHITECTURES 참조하세요.

포트별 사용자 지정

CMake 변수 PORT 는 triplet 파일을 해석할 때 설정됩니다. 포트별로 설정을 변경하는 데 사용할 수 있습니다(예: VCPKG_LIBRARY_LINKAGE).

예시:

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

그러면 모든 포트가 qt5-* 동적 라이브러리로 빌드되지만 다른 모든 포트는 정적 라이브러리로 빌드됩니다.

실제 프로젝트의 예제는 다음을 참조하세요 https://github.com/Intelight/vcpkg/blob/master/triplets/x86-windows-mixed.cmake.