2025-10-04 15:26:27 +01:00

115 lines
3.7 KiB
Bash

# Maintainer: Alexey Pavlov <alexpux@gmail.com>
# Contributor: Renato Silva <br.renatosilva@gmail.com>
_realname=cairo
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
_commit='b43e7c6f3cf7855e16170a06d3a9c7234c60ca94'
pkgver=1.18.4
pkgrel=4
pkgdesc="Cairo vector graphics library (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clangarm64')
url="https://cairographics.org/"
msys2_references=(
"cpe: cpe:2.3:a:cairographics:cairo"
)
license=('spdx:LGPL-2.1-or-later OR MPL-1.1')
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
"${MINGW_PACKAGE_PREFIX}-meson"
"${MINGW_PACKAGE_PREFIX}-ninja"
"${MINGW_PACKAGE_PREFIX}-pkgconf"
"${MINGW_PACKAGE_PREFIX}-python"
"${MINGW_PACKAGE_PREFIX}-python-fonttools"
"${MINGW_PACKAGE_PREFIX}-gettext-tools"
)
depends=("${MINGW_PACKAGE_PREFIX}-cc-libs"
"${MINGW_PACKAGE_PREFIX}-freetype"
"${MINGW_PACKAGE_PREFIX}-fontconfig"
"${MINGW_PACKAGE_PREFIX}-gettext-runtime"
"${MINGW_PACKAGE_PREFIX}-glib2"
"${MINGW_PACKAGE_PREFIX}-libpng"
"${MINGW_PACKAGE_PREFIX}-lzo2"
"${MINGW_PACKAGE_PREFIX}-pixman"
"${MINGW_PACKAGE_PREFIX}-zlib")
source=("https://cairographics.org/releases/cairo-${pkgver}.tar.xz"
0030-ucrt-clang-fixes.patch
0001-DWrite-Get-glyph-bitmap-with-D2D-in-selected-cases.patch)
sha256sums=('445ed8208a6e4823de1226a74ca319d3600e83f6369f99b14265006599c32ccb'
'86c1af2878a20bd3608fc476e4ba1f2451458a5f6f12e457e37b61082c38db82'
'b54b016d088078ee78e9617524653fd0f0a1e8cff346cbe7ef795dce7c6a5e4f')
prepare() {
cd "${srcdir}/${_realname}-${pkgver}"
patch -p1 -i "${srcdir}"/0030-ucrt-clang-fixes.patch
patch -p1 -i "${srcdir}"/0001-DWrite-Get-glyph-bitmap-with-D2D-in-selected-cases.patch
}
build() {
local -a _static_flags=(
-DGIO_STATIC_COMPILATION
-DGLIB_STATIC_COMPILATION
-DGMODULE_STATIC_COMPILATION
-DGOBJECT_STATIC_COMPILATION
)
local -a _meson_options
_meson_options=(
--prefix=${MINGW_PREFIX}
--buildtype=plain
--wrap-mode=nofallback
-Dauto_features=enabled
-Dtests=disabled
-Ddwrite=enabled
-Dfontconfig=enabled
-Dfreetype=enabled
-Dpng=enabled
-Dtee=enabled
-Dzlib=enabled
-Dxlib=disabled
-Dxcb=disabled
-Dspectre=disabled
-Dsymbol-lookup=disabled
)
# work around gcc errors
if [[ "${CC}" == "gcc" ]]; then
CFLAGS+=" -Wno-error=incompatible-pointer-types"
CXXFLAGS+=" -Wno-error=incompatible-pointer-types"
fi
# Enables CAIRO_WIN32_STATIC_BUILD, keeps DllMain far away (#17643)
CFLAGS+=" ${_static_flags[@]}" \
CXXFLAGS+=" ${_static_flags[@]}" \
MSYS2_ARG_CONV_EXCL="--prefix=" \
${MINGW_PREFIX}/bin/meson setup \
"${_meson_options[@]}" \
--default-library=static \
"${_realname}-${pkgver}" \
"build-${MSYSTEM}-static"
meson compile -C "build-${MSYSTEM}-static"
MSYS2_ARG_CONV_EXCL="--prefix=" \
${MINGW_PREFIX}/bin/meson setup \
"${_meson_options[@]}" \
--default-library=shared \
"${_realname}-${pkgver}" \
"build-${MSYSTEM}-shared"
meson compile -C "build-${MSYSTEM}-shared"
}
package() {
meson install -C "build-${MSYSTEM}-static" --destdir "${pkgdir}"
meson install -C "build-${MSYSTEM}-shared" --destdir "${pkgdir}"
install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" \
"${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING"
install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING-LGPL-2.1" \
"${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING-LGPL-2.1"
install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING-MPL-1.1" \
"${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING-MPL-1.1"
}