mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-15 12:21:48 +08:00
37c3e63a13
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>
49 lines
1.8 KiB
CMake
49 lines
1.8 KiB
CMake
vcpkg_from_github(
|
|
OUT_SOURCE_PATH SOURCE_PATH
|
|
REPO strukturag/libheif
|
|
REF "v${VERSION}"
|
|
SHA512 e8f7a9d8d7af1947e9ca43e8387fc082551c884bb66fef7484c82748f3b81524efa7a2988f31d059a85a10539ff42bd3125b0f066f7b8b652bd9450737b2bc89
|
|
HEAD_REF master
|
|
PATCHES
|
|
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()
|
|
|
|
vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libheif/)
|
|
# libheif's pc file assumes libstdc++, which isn't always true.
|
|
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libheif.pc" " -lstdc++" "")
|
|
if(NOT VCPKG_BUILD_TYPE)
|
|
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libheif.pc" " -lstdc++" "")
|
|
endif()
|
|
vcpkg_fixup_pkgconfig()
|
|
|
|
if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
|
|
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libheif/heif.h" "defined(_MSC_VER) && !defined(LIBHEIF_STATIC_BUILD)" "defined(_WIN32)")
|
|
else()
|
|
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libheif/heif.h" "defined(_MSC_VER) && !defined(LIBHEIF_STATIC_BUILD)" "0")
|
|
endif()
|
|
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libheif/heif.h" "#ifdef LIBHEIF_EXPORTS" "#if 0")
|
|
|
|
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
|
|
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
|
|
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/libheif" "${CURRENT_PACKAGES_DIR}/debug/lib/libheif")
|
|
|
|
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libheif/heif_version.h" "#define LIBHEIF_PLUGIN_DIRECTORY \"${CURRENT_PACKAGES_DIR}/lib/libheif\"" "")
|
|
|
|
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")
|