From 37c3e63a1306562f7f59c4c3c8892ddd50fdf992 Mon Sep 17 00:00:00 2001 From: MajorMurphy Date: Fri, 23 Feb 2024 15:00:28 -0800 Subject: [PATCH] [libheif] x265 as feature to allow non-GPL build (#36857) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit x265 is still included as a default feature when installed as: `vcpkg.exe install libheif` but to avoid linking to a GPL library, x265 can now be optionally excluded with: `vcpkg.exe install libheif[core,libde265]` (libheif cannot encode without x265, only decode) ### Checklist (please forgive if completed inaccurately) - [✔️] Changes comply with the [maintainer guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md). - [N/A ] The name of the port matches an existing name for this component on https://repology.org/ if possible, and/or is strongly associated with that component on search engines. - [N/A] Optional dependencies are resolved in exactly one way. For example, if the component is built with CMake, all `find_package` calls are REQUIRED, are satisfied by `vcpkg.json`'s declared dependencies, or disabled with [CMAKE_DISABLE_FIND_PACKAGE_Xxx](https://cmake.org/cmake/help/latest/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.html). - [ N/A] The versioning scheme in `vcpkg.json` matches what upstream says. - [N/A] The license declaration in `vcpkg.json` matches what upstream says. - [ N/A] The installed as the "copyright" file matches what upstream says. - [ N/A] The source code of the component installed comes from an authoritative source. - [ N/A ?] The generated "usage text" is accurate. See [adding-usage](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/examples/adding-usage.md) for context. - [ N/A] The version database is fixed by rerunning `./vcpkg x-add-version --all` and committing the result. - [ N/A] Only one version is in the new port's versions file. - [ N/A] Only one version is added to each modified port's versions file. --------- Co-authored-by: Lily Wang <94091114+LilyWangLL@users.noreply.github.com> --- ports/libheif/portfile.cmake | 6 ++++++ ports/libheif/vcpkg.json | 18 +++++++++++++++--- versions/baseline.json | 2 +- versions/l-/libheif.json | 5 +++++ 4 files changed, 27 insertions(+), 4 deletions(-) diff --git a/ports/libheif/portfile.cmake b/ports/libheif/portfile.cmake index 0572f84ed4..81bdfc46ec 100644 --- a/ports/libheif/portfile.cmake +++ b/ports/libheif/portfile.cmake @@ -8,12 +8,18 @@ vcpkg_from_github( gdk-pixbuf.patch ) +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + hevc WITH_X265 +) + vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DWITH_EXAMPLES=OFF -DWITH_DAV1D=OFF -DPKG_CONFIG_USE_CMAKE_PREFIX_PATH=ON + ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() diff --git a/ports/libheif/vcpkg.json b/ports/libheif/vcpkg.json index 81e0c3ae0e..9b079991b0 100644 --- a/ports/libheif/vcpkg.json +++ b/ports/libheif/vcpkg.json @@ -1,6 +1,7 @@ { "name": "libheif", "version": "1.17.6", + "port-version": 1, "description": "libheif is an HEIF and AVIF file format decoder and encoder.", "homepage": "http://www.libheif.org/", "license": "LGPL-3.0-only", @@ -18,7 +19,18 @@ { "name": "vcpkg-cmake-config", "host": true - }, - "x265" - ] + } + ], + "default-features": [ + "hevc" + ], + "features": { + "hevc": { + "description": "HEVC encoding via x265", + "license": "GPL-2.0-or-later", + "dependencies": [ + "x265" + ] + } + } } diff --git a/versions/baseline.json b/versions/baseline.json index 4f2c537777..0640d3d535 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -4434,7 +4434,7 @@ }, "libheif": { "baseline": "1.17.6", - "port-version": 0 + "port-version": 1 }, "libhsplasma": { "baseline": "2023-05-08", diff --git a/versions/l-/libheif.json b/versions/l-/libheif.json index 8d45c4f14a..a0e2640be1 100644 --- a/versions/l-/libheif.json +++ b/versions/l-/libheif.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "09b2045951b7521e2d597082009265a70427581d", + "version": "1.17.6", + "port-version": 1 + }, { "git-tree": "b5871a26f6e90560089b413fc136e7f0062885b8", "version": "1.17.6",