vcpkg/ports/libvorbis/portfile.cmake
Julian Xhokaxhiu cec6b3798e
[libvorbis] Fix libogg find_package (#39067)
- [x] Changes comply with the [maintainer
guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md).
- [x] SHA512s are updated for each updated download.
- [ ] The "supports" clause reflects platforms that may be fixed by this
new version.
- [ ] Any fixed [CI
baseline](https://github.com/microsoft/vcpkg/blob/master/scripts/ci.baseline.txt)
entries are removed from that file.
- [ ] Any patches that are no longer applied are deleted from the port's
directory.
- [x] The version database is fixed by rerunning `./vcpkg x-add-version
--all` and committing the result.
- [x] Only one version is added to each modified port's versions file.

---

Fix Ogg find_package.

Libogg now ships with an `OggConfig.cmake` file and the current way to
find it does not work anymore.
All the patch does adds the CONFIG notation to the find_package
function.

---

Repro case:

1. Add this to your own `vcpkg.json`
```json
{
  "name": "test",
  "version": "0.0.1",
  "dependencies": [
    {
      "name": "ffmpeg",
      "default-features": false,
      "features": [
        "vorbis"
      ],
      "platform": "windows"
    }
  ]
}
```

2. Add this line to your own `CMakeLists.txt`
```cmake
find_package(FFmpeg COMPONENTS AVFORMAT AVUTIL AVCODEC SWRESAMPLE)
```

3. See CMake failing with an error similar to this one:
```
CMake Error at REDACTED/vcpkg_installed/x86-windows-static/share/Vorbis/VorbisTargets.cmake:60 (set_target_properties):
  The link interface of target "Vorbis::vorbis" contains:

    Ogg::ogg

  but the target was not found.  Possible reasons include:

    * There is a typo in the target name.
    * A find_package call is missing for an IMPORTED target.
    * An ALIAS target is missing.

Call Stack (most recent call first):
  REDACTED/vcpkg_installed/x86-windows-static/share/Vorbis/VorbisConfig.cmake:30 (include)
  C:/vcpkg/scripts/buildsystems/vcpkg.cmake:859 (_find_package)
  REDACTED/vcpkg_installed/x86-windows-static/share/ffmpeg/vcpkg-cmake-wrapper.cmake:190 (find_package)
  C:/vcpkg/scripts/buildsystems/vcpkg.cmake:813 (include)
  CMakeLists.txt:1 (find_package)
```

---------

Co-authored-by: Kai Pastor <dg0yt@darc.de>
2024-06-03 22:40:39 -07:00

27 lines
899 B
CMake

vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO xiph/vorbis
REF v1.3.7
SHA512 bfb6f5dbfd49ed38b2b08b3667c06d02e68f649068a050f21a3cc7e1e56b27afd546aaa3199c4f6448f03f6e66a82f9a9dc2241c826d3d1d4acbd38339b9e9fb
HEAD_REF master
PATCHES
0001-Dont-export-vorbisenc-functions.patch
0002-Fixup-pkgconfig-libs.patch
0003-def-mingw-compat.patch
0004-ogg-find-dependency.patch
)
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
)
vcpkg_cmake_install()
vcpkg_cmake_config_fixup(PACKAGE_NAME Vorbis CONFIG_PATH "lib/cmake/Vorbis")
vcpkg_fixup_pkgconfig()
vcpkg_copy_pdbs()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)