Files
haikuports/media-libs/harfbuzz/harfbuzz-13.1.1.recipe
2026-03-16 21:51:51 +01:00

186 lines
5.0 KiB
Bash

SUMMARY="An OpenType text shaping engine"
DESCRIPTION="HarfBuzz is an OpenType text shaping engine. It is used to \
layout complex text such as the Indic and Arabic alphabets."
HOMEPAGE="https://www.freedesktop.org/wiki/Software/HarfBuzz/"
COPYRIGHT="2010-2022 Google, Inc.
2015-2020 Ebrahim Byagowi
2019,2020 Facebook, Inc.
2012,2015 Mozilla Foundation
2011 Codethink Limited
2008,2010 Nokia Corporation and/or its subsidiary(-ies)
2009 Keith Stribley
2011 Martin Hosken and SIL International
2007 Chris Wilson
2005,2006,2020,2021,2022,2023 Behdad Esfahbod
2004,2007,2008,2009,2010,2013,2021,2022,2023 Red Hat, Inc.
1998-2005 David Turner and Werner Lemberg
2016 Igalia S.L.
2022 Matthias Clasen
2018,2021 Khaled Hosny
2018,2019,2020 Adobe, Inc
2013-2015 Alexei Podtelezhnikov"
LICENSE="MIT"
REVISION="1"
SOURCE_URI="https://github.com/harfbuzz/harfbuzz/releases/download/$portVersion/harfbuzz-$portVersion.tar.xz"
CHECKSUM_SHA256="e7f3b8bac3fdcc529985be8e84fbd65c675ac47ee58512b15a5dd620c79ffe2a"
PATCHES="harfbuzz-$portVersion.patchset"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
commandSuffix=$secondaryArchSuffix
commandBinDir=$binDir
if [ "$targetArchitecture" = x86_gcc2 ]; then
commandSuffix=
commandBinDir=$prefix/bin
fi
libVersion="0.61311.0"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
PROVIDES="
harfbuzz$secondaryArchSuffix = $portVersion compat >= 0.9
lib:libharfbuzz$secondaryArchSuffix = $libVersionCompat
lib:libharfbuzz_icu$secondaryArchSuffix = $libVersionCompat
lib:libharfbuzz_raster$secondaryArchSuffix = $libVersionCompat
lib:libharfbuzz_subset$secondaryArchSuffix = $libVersionCompat
lib:libharfbuzz_vector$secondaryArchSuffix = $libVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libfreetype$secondaryArchSuffix
lib:libgraphite2$secondaryArchSuffix
lib:libicuuc$secondaryArchSuffix
lib:libpng16$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
SUPPLEMENTS="
lib:libfreetype$secondaryArchSuffix
"
SUMMARY_glib="$SUMMARY (glib)"
DESCRIPTION_glib="$DESCRIPTION (glib)"
PROVIDES_glib="
harfbuzz${secondaryArchSuffix}_glib = $portVersion compat >= 0.9
lib:libharfbuzz_gobject$secondaryArchSuffix = $libVersionCompat
devel:libharfbuzz_gobject$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_glib="
haiku$secondaryArchSuffix
harfbuzz$secondaryArchSuffix == $portVersion
lib:libfreetype$secondaryArchSuffix
lib:libglib_2.0$secondaryArchSuffix
lib:libgobject_2.0$secondaryArchSuffix
lib:libgraphite2$secondaryArchSuffix
"
PROVIDES_devel="
harfbuzz${secondaryArchSuffix}_devel = $portVersion compat >= 0.9
devel:libharfbuzz$secondaryArchSuffix = $libVersionCompat
devel:libharfbuzz_icu$secondaryArchSuffix = $libVersionCompat
devel:libharfbuzz_raster$secondaryArchSuffix = $libVersionCompat
devel:libharfbuzz_subset$secondaryArchSuffix = $libVersionCompat
devel:libharfbuzz_vector$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_devel="
harfbuzz$secondaryArchSuffix == $portVersion base
devel:libfreetype$secondaryArchSuffix
devel:libglib_2.0$secondaryArchSuffix
devel:libgobject_2.0$secondaryArchSuffix
devel:libgraphite2$secondaryArchSuffix
devel:libicuuc$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libfreetype$secondaryArchSuffix
devel:libgirepository_1.0$secondaryArchSuffix
devel:libglib_2.0$secondaryArchSuffix
devel:libgraphite2$secondaryArchSuffix
devel:libgobject_2.0$secondaryArchSuffix
devel:libicuuc$secondaryArchSuffix >= 74
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:gcc$secondaryArchSuffix
cmd:gtkdoc_scan
cmd:ld$secondaryArchSuffix
cmd:meson >= 0.55.0
cmd:ninja
cmd:pkg_config$secondaryArchSuffix
cmd:python3
pygments_python310
"
defineDebugInfoPackage harfbuzz$secondaryArchSuffix \
"$libDir"/libharfbuzz.so.$libVersion \
"$libDir"/libharfbuzz-icu.so.$libVersion \
"$libDir"/libharfbuzz-subset.so.$libVersion
BUILD()
{
meson \
--buildtype=debugoptimized \
--prefix=$prefix \
--libdir=$libDir \
--includedir=$includeDir \
--mandir=$manDir \
--infodir=$infoDir \
--datadir=$dataDir \
--bindir="$commandBinDir" \
-Dcairo=disabled \
-Dglib=disabled \
-Dicu=enabled \
-Dintrospection=enabled \
-Dgraphite2=enabled \
-Dgobject=enabled \
-Ddocs=enabled \
-Dtests=disabled \
-Dcpp_std=c++17 \
haiku_build
ninja -C haiku_build $jobArgs
}
INSTALL()
{
ninja -C haiku_build install
# remove libtool library files
rm -f "$libDir"/libharfbuzz*.la
# cleanup
mkdir -p $docDir
cp -R $prefix/share/* $docDir
rm -rf $prefix/share
prepareInstalledDevelLibs \
libharfbuzz \
libharfbuzz-gobject \
libharfbuzz-icu \
libharfbuzz-raster \
libharfbuzz-subset \
libharfbuzz-vector \
fixPkgconfig
# glib package
packageEntries glib \
"$dataDir" \
"$libDir"/girepository-1.0 \
"$libDir"/libharfbuzz-gobject.so* \
"$developLibDir"/pkgconfig/harfbuzz-gobject.pc \
"$developLibDir"/libharfbuzz-gobject.so*
# devel package
packageEntries devel \
"$documentationDir" \
"$developDir" \
"$libDir"/cmake
}
TEST()
{
ninja -C haiku_build test
}