blob: 341ae6cbc683241fe47b7bd4dfc7867db7a4e4d4 [file] [log] [blame]
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
# Contributor: Renato Silva <br.renatosilva@gmail.com>
_realname=harfbuzz
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2.8.1
pkgrel=1
pkgdesc="OpenType text shaping engine (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32')
url="https://www.freedesktop.org/wiki/Software/HarfBuzz"
license=("MIT")
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc"
"${MINGW_PACKAGE_PREFIX}-icu"
"${MINGW_PACKAGE_PREFIX}-gobject-introspection"
"${MINGW_PACKAGE_PREFIX}-pkg-config"
"${MINGW_PACKAGE_PREFIX}-cairo"
"${MINGW_PACKAGE_PREFIX}-python"
"${MINGW_PACKAGE_PREFIX}-meson"
"${MINGW_PACKAGE_PREFIX}-ninja"
"${MINGW_PACKAGE_PREFIX}-ragel")
depends=("${MINGW_PACKAGE_PREFIX}-freetype"
"${MINGW_PACKAGE_PREFIX}-gcc-libs"
"${MINGW_PACKAGE_PREFIX}-glib2"
"${MINGW_PACKAGE_PREFIX}-graphite2")
checkdepends=("${MINGW_PACKAGE_PREFIX}-python-fonttools"
"${MINGW_PACKAGE_PREFIX}-python-setuptools")
options=('strip' 'staticlibs')
optdepends=("${MINGW_PACKAGE_PREFIX}-icu: harfbuzz-icu support"
"${MINGW_PACKAGE_PREFIX}-cairo: hb-view program")
source=("https://github.com/harfbuzz/harfbuzz/archive/${pkgver}.tar.gz")
sha256sums=('b3f17394c5bccee456172b2b30ddec0bb87e9c5df38b4559a973d14ccd04509d')
noextract=("${pkgver}.tar.gz")
prepare() {
tar -xzf ${srcdir}/${pkgver}.tar.gz -C ${srcdir} || true
cd "${srcdir}/${_realname}-${pkgver}"
}
build() {
# Build static and shared libs separately due to necessity of defining DGRAPHITE2_STATIC
# manually when building static version
export _static_dir="${srcdir}/build-${MINGW_CHOST}-static"
export _shared_dir="${srcdir}/build-${MINGW_CHOST}-shared"
[[ -d "${_static_dir}" ]] && rm -rf "${_static_dir}"
mkdir -p "${_static_dir}" && pushd "${_static_dir}"
# static build
CFLAGS="${CFLAGS} -DGRAPHITE2_STATIC" \
CXXFLAGS="${CXXFLAGS} -DGRAPHITE2_STATIC" \
MSYS2_ARG_CONV_EXCL="--prefix=" \
${MINGW_PREFIX}/bin/meson \
--prefix="${MINGW_PREFIX}" \
--buildtype plain \
--wrap-mode=nofallback \
--default-library=static \
-Dauto_features=enabled \
-Dintrospection=disabled \
-Dgobject=enabled \
-Dicu=enabled \
-Dgdi=enabled \
-Dgraphite=enabled \
-Dchafa=disabled \
-Ddirectwrite=enabled \
../${_realname}-${pkgver}
ninja
popd
# shared build
[[ -d "${_shared_dir}" ]] && rm -rf "${_shared_dir}"
mkdir -p "${_shared_dir}" && pushd "${_shared_dir}"
MSYS2_ARG_CONV_EXCL="--prefix=" \
${MINGW_PREFIX}/bin/meson \
--prefix="${MINGW_PREFIX}" \
--buildtype plain \
--wrap-mode=nofallback \
--default-library=shared \
-Dauto_features=enabled \
-Dintrospection=enabled \
-Dgobject=enabled \
-Dicu=enabled \
-Dgdi=enabled \
-Dgraphite=enabled \
-Dchafa=disabled \
-Ddirectwrite=enabled \
../${_realname}-${pkgver}
ninja
popd
}
check(){
cd "${srcdir}/build-${MINGW_CHOST}-shared"
meson test
}
package() {
cd "${srcdir}/build-${MINGW_CHOST}-static"
DESTDIR="${pkgdir}" ninja install
cd "${srcdir}/build-${MINGW_CHOST}-shared"
DESTDIR="${pkgdir}" ninja install
install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING"
}