다음을 통해 공유


vcpkg_cmake_config_fixup

다중 구성 생성기를 지원하기 위해 릴리스 및 디버그 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
  }
]

또한 절대 경로 및 잘못 배치된 이진 파일과 같은 대상의 일반적인 문제를 수정합니다.

많은 포트 vcpkg_cmake_config_fixup() 의 경우 기본적으로 작동하며 기본값은 ${PORT} CONFIG_PATH .로 share/${PACKAGE_NAME}설정 PACKAGE_NAME 됩니다. 전달된 find_package 패키지 이름이 포트 이름과 PACKAGE_NAME 다른 포트의 경우 대신 해당 이름으로 변경해야 합니다. 파일의 디렉터리를 설정할 CONFIG_PATH 수 없는 포트의 *config.cmake 경우 파일을 가져올 디렉터리를 변경합니다.

기본적으로 "cmake"라는 이름의 부모 디렉터리가 CONFIG_PATH 제거됩니다. DO_NOT_DELETE_PARENT_CONFIG_PATH 이 옵션을 전달하면 둘 이상의 CMake 패키지 구성 파일을 설치하는 포트에 편리하므로 이러한 동작이 비활성화됩니다.

NO_PREFIX_CORRECTION 옵션은 구성 파일 이동으로 인해 vcpkg에서 수행된 수정 _IMPORT_PREFIX 을 사용하지 않도록 설정합니다. 현재 수정은 파일 이동 방법을 고려하지 않으며, 경우에 따라 잘못된 결과를 생성하는 단순히 수정을 적용합니다.

작동 방식

  1. 으로 /share/${PACKAGE_NAME}이동합니다/debug/<CONFIG_PATH>/*targets-debug.cmake.
  2. Windows에서 일치하는 /bin/*.exe 모든 참조를 /${TOOLS_PATH}/*.exe 변환합니다.
  3. 다른 플랫폼에서 일치하는 /bin/* 모든 참조를 /${TOOLS_PATH}/* 변환합니다.
  4. ${_IMPORT_PREFIX} 자동 생성된 대상의 수정 사항입니다.
  5. 구성에서 대체 ${_IMPORT_PREFIX} 합니다${CURRENT_INSTALLED_DIR}.
  6. INTERFACE_LINK_LIBRARIES 릴리스 및 디버그 구성의 병합입니다.
  7. ${CURRENT_INSTALLED_DIR} 대상에서 대체 ${VCPKG_IMPORT_PREFIX} 합니다.
  8. /debug/<CONFIG_PATH>/*config.cmake을 제거합니다.

예제

Source

ports/vcpkg-cmake-config/vcpkg_cmake_config_fixup.cmake