Triplet 変数
この記事では、トリプレット ファイルで使用できる vcpkg 変数について説明します。 トリプレット ファイルには、ユーザー定義変数を含めることもできます。
トリプレットの機能の概要についてはトリプレットの概念に関するドキュメントを参照してください。
ターゲット コンピューターのアーキテクチャを指定します。
有効なオプションには、 x86
、 x64
、 arm
、 arm64
、 arm64ec
、 s390x
、 ppc64le
、 riscv32
、 riscv64
、 loongarch32
、 loongarch64
、 mips64
、 wasm32
などがあります。
目的の CRT リンケージ (MSVC の場合) を指定します。
有効なオプションは dynamic
と static
です。
優先するライブラリ リンケージを指定します。
有効なオプションは dynamic
と static
です。 ライブラリは、優先リンケージの種類をサポートしていない場合、この設定を無視できます。
この値を release
に設定して、リリースのみのバージョンのポートをビルドできます。
既定では、この値は空です。 この値が空の場合、vcpkg はポートのリリース構成とデバッグ構成をビルドします。
ターゲット プラットフォームを指定します。
有効なオプションには、次のような CMake システム名が含まれます。
- 空 (従来の理由から Windows デスクトップ)
WindowsStore
(ユニバーサル Windows プラットフォーム)MinGW
(Windows 用ミニマリスト GNU)Darwin
(Mac OSX)iOS
(iOS)Linux
(Linux)Emscripten
(WebAssembly)
ターゲット プラットフォーム システムのバージョンを指定します。
このフィールドは省略可能であり、存在する場合は、 CMAKE_SYSTEM_VERSION
としてビルドに渡されます。
については、CMake のドキュメントも参照してください。 CMAKE_SYSTEM_VERSION
使用する代替 CMake ツールチェーン ファイルを指定します。
この (設定されている場合) は、他のすべてのコンパイラ検出ロジックをオーバーライドします。 既定では、ツールチェーン ファイルはプラットフォームに適した scripts/toolchains/
から選択されます。
注意
カスタム ツールチェーン ファイルを作成するには、まず、 ${VCPKG_ROOT}/scripts/toolchains
から既存のツールチェーンを含めて拡張することをお勧めします。 これにより、vcpkg 実行可能ファイルによって設定された重要な変数 ( VCPKG_TARGET_ARCHITECTURE
、 VCPKG_CXX_FLAGS
、 VCPKG_LINKER_FLAGS
、その他の変数など) が CMake に転送されるようになります。
toolchain ファイルについては、CMake のドキュメントも参照してください。
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_CHAINLOAD_TOOLCHAIN_FILE
がない場合に動的ライブラリと実行可能ファイルをビルドするときに使用する追加のリンカー フラグを設定します。
このオプションには、構成固有のフラグ用のフォームもあります。
VCPKG_LINKER_FLAGS
VCPKG_LINKER_FLAGS_DEBUG
VCPKG_LINKER_FLAGS_RELEASE
構成コマンドに追加される追加の Meson 構成オプションを設定します ( vcpkg_configure_meson
)。
このフィールドは省略可能です。
ビルドタイプ固有の VCPKG_MESON_CONFIGURE_OPTIONS_DEBUG
および VCPKG_MESON_CONFIGURE_OPTIONS_RELEASE
変数としても使用できます。
追加の構成依存ファイルを、meson クロス/ネイティブ ファイルとして指定します。 vcpkg によって生成されたクロス/ネイティブ ファイルが渡された後に渡されるため、vcpkg によって提供される設定をオーバーライドするために使用できます。
独自のbuild_machineとhost_machineエントリを提供するのに特に便利です。
VCPKG_MESON_NATIVE_FILE_RELEASEを参照してください。
VCPKG_MESON_NATIVE_FILE_RELEASEを参照してください。
VCPKG_MESON_NATIVE_FILE_RELEASEを参照してください。
構成コマンドに追加される追加の CMake 構成オプションを設定します ( vcpkg_cmake_configure
)。
このフィールドは省略可能です。
ビルドタイプ固有の VCPKG_CMAKE_CONFIGURE_OPTIONS_DEBUG
および VCPKG_CMAKE_CONFIGURE_OPTIONS_RELEASE
変数としても使用できます。
構成コマンドに追加される追加の 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
変数としても使用できます。
このフィールドは省略可能です。
パッケージの内容に影響を与え、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"
)
portfile.cmake の実行後に含める CMake ファイルの一覧。
このフィールドは省略可能です。
ファイルの内容と順序は ABI ハッシュに使用され、ファイルのパスは ABI ハッシュに影響しません。
set(VCPKG_POST_PORTFILE_INCLUDES
"${CMAKE_CURRENT_LIST_DIR}/file1.cmake"
"${CMAKE_CURRENT_LIST_DIR}/file2.cmake"
)
注意
このセクションでは、いつでも変更または削除できる vcpkg の試験的な機能について説明します。
トリプレット "サポート" 項の既定の計算済みリストを置き換えます。
このオプション (設定されている場合) は、 Platform 式 評価に使用される既定の用語セットをオーバーライドします。
詳細については、 "supports"
マニフェスト ファイルフィールドのドキュメントを参照してください。
注意
このリストは、 vcpkg_get_dep_info
ヘルパー関数を使用して抽出されます。
警告
このオプションを有効にすると、復元されたバイナリ パッケージで ABI の非互換性が発生する可能性があるため、推奨されません。 詳細については、 binary キャッシュに関するドキュメント を参照してください
このオプションが TRUE
、 ON
、または 1
に設定されている場合、コンパイラはパッケージの一部として追跡されません。
これにより、 binary キャッシュ 古いコンパイラまたは新しいコンパイラからのビルドが再利用されます。
ビルド プロセスに追加の環境変数を許可するように vcpkg に指示します。
Windows では、vcpkg は、ビルドの信頼性と一貫性を確保するために、現在のコマンド プロンプトから分離された特別なクリーンな環境でパッケージをビルドします。 このトリプレット オプションは、クリーン環境に追加される追加の環境変数の一覧に設定できます。 これらの環境変数の値はパッケージ abi にハッシュされます。abi 追跡なしで環境変数を渡すには、 VCPKG_ENV_PASSTHROUGH_UNTRACKED
を参照してください。
使用される正確な環境を検査する方法については、 vcpkg env
コマンドも参照してください。
注意
このリストは、 vcpkg_get_tags
ヘルパー関数を使用して抽出されます。
abi 追跡なしでビルド プロセスに追加の環境変数を許可するように vcpkg に指示します。
以下を参照してください。VCPKG_ENV_PASSTHROUGH
使用する 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 (x86)\\Microsoft Visual Studio\\Preview\\Community")
使用する Visual Studio ベースの C/C++ コンパイラ ツールチェーンを指定します。
完全な選択アルゴリズムについては、 VCPKG_VISUAL_STUDIO_PATH
を参照してください。
有効な設定:
- Visual Studio 2022 プラットフォーム ツールセットが
v143
。 - Visual Studio 2019 プラットフォーム ツールセットが
v142
。 - Visual Studio 2017 プラットフォーム ツールセットが
v141
。 - Visual Studio 2015 プラットフォーム ツールセットが
v140
。
使用する詳細な MSVC C/C++ コンパイラ ツールチェーンを指定します。
既定では、 VCPKG_PLATFORM_TOOLSET
は常に、選択したツールセットのインストール済みの最新のマイナー バージョンを選択します。 さらに細分性が必要な場合は、この変数を使用できます。 部分的または完全なバージョン番号を指定できます。 有効な値は、 14.25
や 14.27.29110
などです。
vcpkg が、トリプレット環境の一部として Visual Studio のインスタンスを検索して使用するかどうかを決定します。
既定では、VCPKG_CHAINLOAD_TOOLCHAIN_FILE
を指定しない Windows トリプレットの場合、これはON
です。 VCPKG_CHAINLOAD_TOOLCHAIN_FILE
を指定する Windows 以外のトリプレットとトリプレットの場合、既定値は OFF
になります。
このオプションを (true|1|on) に設定すると、vcpkg は実行可能ファイルと共有ライブラリのRUNPATH
ヘッダーに$ORIGIN
と$ORIGIN/<path_relative_to_lib>
を追加します。 これにより、Linux 上でパッケージを再配置できます。
macOS 動的ライブラリをビルドするときに使用するインストール名を設定します。 既定値は @rpath
です。 詳細については、 CMAKE_INSTALL_NAME_DIR の CMake ドキュメントを参照してください。
vcpkg によってビルドされた Mach-O バイナリが、相対インストール名と実行パスを使用して再配置可能であることを確認します。
ON
に設定する場合:
- 共有ライブラリ バイナリの
@rpath/<library>
に絶対LC_LC_ID_DYLIB
フィールドを変更します。 - 実行可能ファイルおよび共有ライブラリ バイナリの相対
@loader_path/<relative/path/to/library>
に絶対LC_RPATH
フィールドを変更します。
重要
この機能は、 VCPKG_TARGET_IS_OSX
が TRUE
されている場合に既定で有効になります。 無効にするには、triplet ファイルにOFF
VCPKG_FIXUP_MACHO_RPATH
を明示的に設定。
macOS の動的ライブラリの詳細については、次のリンクを参照してください。
コンパイル済みバイナリの macOS の最小バージョンを設定します。 これにより、macOS プラットフォーム SDK CMake の検索対象のバージョンも変更されます。 詳細については、 CMAKE_OSX_DEPLOYMENT_TARGET の CMake ドキュメントを参照してください。
CMake で使用される macOS プラットフォーム SDK の名前またはパスを設定します。 詳細については、 CMAKE_OSX_SYSROOT の CMake ドキュメントを参照してください。
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 に関するフィードバック
vcpkg はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。