vcpkg/ports/harfbuzz/portfile.cmake
Robert Adam 4634989574
[harfbuzz] work around upstream SameFileError (#16621)
During the configuration of harfbuzz several Python scripts are invoked
that are supposed to copy some files. For some reason however the
scripts end up being instructed to copy files to themselves at which
point a SameFileError is risen, causing the build to fail.

This is a workaround for the underlaying issue that is deemed to be
usptream. The upstream issues are
- https://github.com/mesonbuild/meson/issues/8375
- https://github.com/harfbuzz/harfbuzz/issues/2870

The workaround is to add a patch that makes sure these scripts check
whether source and target file are the same and only invoking the copy
action if they are not.

Fixes #16262
2021-03-11 12:16:08 -08:00

49 lines
1.6 KiB
CMake

vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO harfbuzz/harfbuzz
REF 7236c7e29cef1c2d76c7a284c5081ff4d3aa1127 # 2.7.4
SHA512 d231a788ea4e52231d4c363c1eca76424cb82ed0952b5c24d0b082e88b3dddbda967e7fffe67fffdcb22c7ebfbf0ec923365eb4532be772f2e61fa7d29b51998
HEAD_REF master
PATCHES
# This patch is a workaround that is needed until the following issues are resolved upstream:
# - https://github.com/mesonbuild/meson/issues/8375
# - https://github.com/harfbuzz/harfbuzz/issues/2870
# Details: https://github.com/microsoft/vcpkg/issues/16262
0001-circumvent-samefile-error.patch
0002-fix-uwp-build.patch
)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
icu icu
graphite2 graphite
glib glib
)
string(REPLACE "=ON" "=enabled" FEATURE_OPTIONS "${FEATURE_OPTIONS}")
string(REPLACE "=OFF" "=disabled" FEATURE_OPTIONS "${FEATURE_OPTIONS}")
vcpkg_configure_meson(
SOURCE_PATH ${SOURCE_PATH}
OPTIONS ${FEATURE_OPTIONS}
-Dfreetype=enabled
-Dgobject=disabled
-Dcairo=disabled
-Dfontconfig=disabled
-Dintrospection=disabled
-Ddocs=disabled
-Dtests=disabled
-Dbenchmark=disabled
)
vcpkg_install_meson()
vcpkg_copy_pdbs()
vcpkg_fixup_pkgconfig()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/cmake")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/cmake")
configure_file("${CMAKE_CURRENT_LIST_DIR}/harfbuzzConfig.cmake.in"
"${CURRENT_PACKAGES_DIR}/share/${PORT}/harfbuzzConfig.cmake" @ONLY)
# Handle copyright
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)