この記事では、トリプレット ファイルで使用できる vcpkg 変数について説明します。 トリプレット ファイルには、ユーザー定義変数を含めることもできます。
トリプレットの機能の概要についてはトリプレットの概念に関するドキュメントを参照してください。
変数
VCPKG_TARGET_ARCHITECTURE
ターゲット コンピューターのアーキテクチャを指定します。
有効なオプションには、 x86、 x64、 arm、 arm64、 arm64ec、 s390x、 ppc64le、 riscv32、 riscv64、 loongarch32、 loongarch64、 mips64、 wasm32などがあります。
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/ から選択されます。
Note
カスタム ツールチェーン ファイルを作成するには、まず、 ${VCPKG_ROOT}/scripts/toolchains から既存のツールチェーンを含めて拡張することをお勧めします。 これにより、vcpkg 実行可能ファイルによって設定された重要な変数 ( VCPKG_TARGET_ARCHITECTURE、 VCPKG_CXX_FLAGS、 VCPKG_LINKER_FLAGS、その他の変数など) が CMake に転送されるようになります。
toolchain ファイルについては、CMake のドキュメントも参照してください。
VCPKG_CXX_FLAGS
VCPKG_CHAINLOAD_TOOLCHAIN_FILEを使用しない場合に使用する追加のコンパイラ フラグを設定します。
このオプションには、構成固有のフラグと C 言語フラグのフォームもあります。
VCPKG_CXX_FLAGSVCPKG_CXX_FLAGS_DEBUGVCPKG_CXX_FLAGS_RELEASEVCPKG_C_FLAGSVCPKG_C_FLAGS_DEBUGVCPKG_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_FLAGSVCPKG_LINKER_FLAGS_DEBUGVCPKG_LINKER_FLAGS_RELEASE
VCPKG_MESON_CONFIGURE_OPTIONS
構成コマンドに追加される追加の Meson 構成オプションを設定します ( vcpkg_configure_meson)。
このフィールドは省略可能です。
ビルドタイプ固有の VCPKG_MESON_CONFIGURE_OPTIONS_DEBUG および VCPKG_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
構成コマンドに追加される追加の CMake 構成オプションを設定します ( vcpkg_cmake_configure)。
このフィールドは省略可能です。
ビルドタイプ固有の VCPKG_CMAKE_CONFIGURE_OPTIONS_DEBUG および VCPKG_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_DEBUG および VCPKG_CONFIGURE_MAKE_OPTIONS_RELEASE 変数としても使用できます。
VCPKG_HASH_ADDITIONAL_FILES
このフィールドは省略可能です。
パッケージの内容に影響を与え、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
Note
このセクションでは、いつでも変更または削除できる vcpkg の試験的な機能について説明します。
トリプレット "サポート" 項の既定の計算済みリストを置き換えます。
このオプション (設定されている場合) は、 Platform 式 評価に使用される既定の用語セットをオーバーライドします。
詳細については、 "supports" マニフェスト ファイルフィールドのドキュメントを参照してください。
Note
このリストは、 vcpkg_get_dep_info ヘルパー関数を使用して抽出されます。
VCPKG_DISABLE_COMPILER_TRACKING
警告
このオプションを有効にすると、復元されたバイナリ パッケージで ABI の非互換性が発生する可能性があるため、推奨されません。 詳細については、 binary キャッシュに関するドキュメント を参照してください
このオプションが TRUE、 ON、または 1に設定されている場合、コンパイラはパッケージの一部として追跡されません。
これにより、 binary キャッシュ 古いコンパイラまたは新しいコンパイラからのビルドが再利用されます。
Windows 固有の変数
VCPKG_ENV_PASSTHROUGH
ビルド プロセスに追加の環境変数を許可するように vcpkg に指示します。
Windows では、vcpkg は、ビルドの信頼性と一貫性を確保するために、現在のコマンド プロンプトから分離された特別なクリーンな環境でパッケージをビルドします。 このトリプレット オプションは、クリーン環境に追加される追加の環境変数の一覧に設定できます。 これらの環境変数の値はパッケージ abi にハッシュされます。abi 追跡なしで環境変数を渡すには、 VCPKG_ENV_PASSTHROUGH_UNTRACKEDを参照してください。
使用される正確な環境を検査する方法については、 vcpkg env コマンドも参照してください。
Note
このリストは、 vcpkg_get_tags ヘルパー関数を使用して抽出されます。
VCPKG_ENV_PASSTHROUGH_UNTRACKED
abi 追跡なしでビルド プロセスに追加の環境変数を許可するように vcpkg に指示します。
以下を参照してください。VCPKG_ENV_PASSTHROUGH
VCPKG_VISUAL_STUDIO_PATH
使用する Visual Studio のインストールを指定します。
Visual Studio インスタンスとツールセットのバージョンの正確な組み合わせを選択するには、次のアルゴリズムについて説明します。
- トリプレットまたは環境変数
VCPKG_VISUAL_STUDIO_PATHからVCPKG_VISUAL_STUDIO_PATHの設定を決定するか、未設定と見なします - トリプレットから
VCPKG_PLATFORM_TOOLSETの設定を決定するか、未設定と見なします - これらのインスタンスで使用できるすべてのツールセットを使用して、Visual Studio インスタンスのすべてのペアの一覧を収集します
- これは、最初にインスタンスの種類 (Stable、Prerelease、Legacy) で並べ替えられた後、ツールセットのバージョン (v143、v142、v141、v140) ごとに並べ替えられます。
VCPKG_VISUAL_STUDIO_PATHとVCPKG_PLATFORM_TOOLSETの設定に基づいて一覧をフィルター処理します。- 残りの最適なオプションを選択する
パスは絶対パスで、円記号で書式設定し、末尾にスラッシュを付けてはなりません。
set(VCPKG_VISUAL_STUDIO_PATH "C:\\Program Files\\Microsoft Visual Studio\\2022\\Preview")
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_FILEを指定しない Windows トリプレットの場合、これはONです。 VCPKG_CHAINLOAD_TOOLCHAIN_FILEを指定する Windows 以外のトリプレットとトリプレットの場合、既定値は OFF になります。
Linux 変数
VCPKG_FIXUP_ELF_RPATH
このオプションを (true|1|on) に設定すると、vcpkg は実行可能ファイルと共有ライブラリのRUNPATH ヘッダーに$ORIGINと$ORIGIN/<path_relative_to_lib>を追加します。 これにより、Linux 上でパッケージを再配置できます。
MacOS 変数
VCPKG_INSTALL_NAME_DIR
macOS 動的ライブラリをビルドするときに使用するインストール名を設定します。 既定値は @rpath です。 詳細については、 CMAKE_INSTALL_NAME_DIR の CMake ドキュメントを参照してください。
VCPKG_FIXUP_MACHO_RPATH
vcpkg によってビルドされた Mach-O バイナリが、相対インストール名と実行パスを使用して再配置可能であることを確認します。
ONに設定する場合:
- 共有ライブラリ バイナリの
@rpath/<library>に絶対LC_LC_ID_DYLIBフィールドを変更します。 - 実行可能ファイルおよび共有ライブラリ バイナリの相対
@loader_path/<relative/path/to/library>に絶対LC_RPATHフィールドを変更します。
重要
この機能は、 VCPKG_TARGET_IS_OSX が TRUEされている場合に既定で有効になります。 無効にするには、triplet ファイルにOFFVCPKG_FIXUP_MACHO_RPATHを明示的に設定。
macOS の動的ライブラリの詳細については、次のリンクを参照してください。
VCPKG_OSX_DEPLOYMENT_TARGET
コンパイル済みバイナリの macOS の最小バージョンを設定します。 これにより、macOS プラットフォーム SDK CMake の検索対象のバージョンも変更されます。 詳細については、 CMAKE_OSX_DEPLOYMENT_TARGET の CMake ドキュメントを参照してください。
VCPKG_OSX_SYSROOT
CMake で使用される macOS プラットフォーム SDK の名前またはパスを設定します。 詳細については、 CMAKE_OSX_SYSROOT の CMake ドキュメントを参照してください。
VCPKG_OSX_ARCHITECTURES
CMake で使用される macOS/iOS ターゲット アーキテクチャを設定します。 詳細については、 CMAKE_OSX_ARCHITECTURES の CMake ドキュメントを参照してください。
ポートごとのカスタマイズ
PORT CMake 変数は、トリプレット ファイルを解釈するときに設定されます。 ポートごとに設定 ( 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」を参照してください。
vcpkg