次の方法で共有


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_NAMEvcpkg_cmake_config_fixup()既定では 〗、既定値${PORT}CONFIG_PATHshare/${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 による完了の修正を無効にします。 現在、修正ではファイルの移動方法は考慮されず、単なる修正が適用され、場合によっては間違った結果が得られます。

しくみ

  1. に移動 /debug/<CONFIG_PATH>/*targets-debug.cmake します /share/${PACKAGE_NAME}
  2. Windows に一致 /bin/*.exe するすべての参照を /${TOOLS_PATH}/*.exe 変換します。
  3. 他のプラットフォームに一致 /bin/* するすべての参照を /${TOOLS_PATH}/* 変換します。
  4. ${_IMPORT_PREFIX}自動生成されたターゲットの修正。
  5. ${CURRENT_INSTALLED_DIR} in configs で置き${_IMPORT_PREFIX}換えられます。
  6. リリース構成とデバッグ構成のINTERFACE_LINK_LIBRARIESをマージします。
  7. ${CURRENT_INSTALLED_DIR} in ターゲットに置き${VCPKG_IMPORT_PREFIX}換えます。
  8. /debug/<CONFIG_PATH>/*config.cmake を削除します。

ソース

ports/vcpkg-cmake-config/vcpkg_cmake_config_fixup.cmake