vcpkg_cmake_config_fixup
マルチ構成ジェネレーターをサポートするために、CMake のターゲットと構成をマージして修正し、CMake のターゲットとデバッグを行います。
使用方法
vcpkg_cmake_config_fixup(
[PACKAGE_NAME <name>]
[CONFIG_PATH <config-directory>]
[TOOLS_PATH <tools/${PORT}>]
[DO_NOT_DELETE_PARENT_CONFIG_PATH]
[NO_PREFIX_CORRECTION]
)
この関数を使用するには、ヘルパー ポート vcpkg-cmake-config
に依存する必要があります。
"dependencies": [
{
"name": "vcpkg-cmake-config",
"host": true
}
]
さらに、絶対パスや不適切に配置されたバイナリなど、ターゲットに関する一般的な問題を修正します。
多くのポートではPACKAGE_NAME
、vcpkg_cmake_config_fixup()
既定では 〗、既定値${PORT}
CONFIG_PATH
share/${PACKAGE_NAME}
は .
渡される find_package
パッケージ名がポート名とは異なるポートの場合は、 PACKAGE_NAME
代わりにその名前に変更する必要があります。
ファイルのディレクトリを設定できないポートの *config.cmake
場合は、ファイルの CONFIG_PATH
存在するディレクトリを変更するために使用します。
既定では、CONFIG_PATHの親ディレクトリが "cmake" という名前の場合は削除されます。
このオプションを DO_NOT_DELETE_PARENT_CONFIG_PATH
渡すと、複数の CMake パッケージ構成ファイルをインストールするポートに便利であるため、このような動作は無効になります。
このオプションは NO_PREFIX_CORRECTION
、構成ファイルの _IMPORT_PREFIX
移動による vcpkg による完了の修正を無効にします。
現在、修正ではファイルの移動方法は考慮されず、単なる修正が適用され、場合によっては間違った結果が得られます。
しくみ
- に移動
/debug/<CONFIG_PATH>/*targets-debug.cmake
します/share/${PACKAGE_NAME}
。 - Windows に一致
/bin/*.exe
するすべての参照を/${TOOLS_PATH}/*.exe
変換します。 - 他のプラットフォームに一致
/bin/*
するすべての参照を/${TOOLS_PATH}/*
変換します。 ${_IMPORT_PREFIX}
自動生成されたターゲットの修正。${CURRENT_INSTALLED_DIR}
in configs で置き${_IMPORT_PREFIX}
換えられます。- リリース構成とデバッグ構成のINTERFACE_LINK_LIBRARIESをマージします。
${CURRENT_INSTALLED_DIR}
in ターゲットに置き${VCPKG_IMPORT_PREFIX}
換えます。/debug/<CONFIG_PATH>/*config.cmake
を削除します。
例
ソース
vcpkg