2025-08-27 20:00:26 +02:00

141 lines
4.9 KiB
Bash

# Maintainer: Naveen M K <naveen521kk at gmail.com>
# Contributor: Raed Rizqie <raed.rizqie@gmail.com>
_realname=skia
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=130.r73211.b988efa0
pkgrel=3
pkgdesc="Skia is a complete 2D graphic library for drawing Text, Geometries, and Images (mingw-w64)"
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64')
url="https://skia.org"
msys2_repository_url="https://skia.googlesource.com/skia"
msys2_documentation_url="https://skia.org/docs"
license=("spdx:BSD-3-Clause")
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
"${MINGW_PACKAGE_PREFIX}-gn"
"${MINGW_PACKAGE_PREFIX}-ninja"
"${MINGW_PACKAGE_PREFIX}-pkgconf"
"${MINGW_PACKAGE_PREFIX}-python"
"git")
depends=("${MINGW_PACKAGE_PREFIX}-cc-libs"
"${MINGW_PACKAGE_PREFIX}-expat"
"${MINGW_PACKAGE_PREFIX}-harfbuzz"
"${MINGW_PACKAGE_PREFIX}-icu"
"${MINGW_PACKAGE_PREFIX}-libpng"
"${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
"${MINGW_PACKAGE_PREFIX}-libwebp"
"${MINGW_PACKAGE_PREFIX}-zlib")
_commit="b988efa06f8aa3bfeaa18c5b8c716ff244ab43cf"
source=("${_realname}.tar.gz::https://github.com/google/skia/archive/${_commit}.tar.gz"
"bare-clones/zlib::git+https://chromium.googlesource.com/chromium/src/third_party/zlib.git#commit=646b7f569718921d7d4b5b8e22572ff6c76f2596"
"0001-add-pkgconfig-support.patch"
"0002-add-mingw-toolchain-skia.patch"
"0003-fix-dwrite-function-mingw.patch"
"0004-misc-mingw-fixes.patch"
"0005-external-packages-update.patch"
"0006-integrates-svg-into-skia-lib.patch"
"skia.pc")
sha256sums=('6ae175029bcf3e7e7368aa9dc0f744b59f4c0e0e096dc204a65c5560761f6f6e'
'967acb8025f9af3f1a5d4d4e9ab671a65fd9b1a52e93081683f84167077c979b'
'7440572487b8bc33ac7a8445de0cc4148e0d47b538ba46f4952ba8cc97e0fa52'
'252f49523d53a2b74d0efb60678de1ca491df28c71ee4d1504684a1414ec3503'
'107526f649a31ff87033608cb1f55c0922d6bd40fa3c8c769ed0320b9230cde6'
'5d934a3a9deeea37b4f67daa83f9c4716e6b90b7f8829ca6588d0a0829561b0c'
'9ad4b876437bc83df8baf72051c9e919529a754b681c434316f119e8440d8996'
'1ead6b6e2e706b20f070ea3f86ca05648fedcc6afa70d415c5e39bd3712a1e7e'
'f0b20d04cee41207a6f974d468e05be63dc3f7ed02992e118660b5bf279e757b')
apply_patch_with_msg() {
for _patch in "$@"; do
msg2 "Applying $_patch"
patch -Nbp1 -i "${srcdir}/$_patch"
done
}
pkgver() {
git clone --filter=blob:none --revision "${_commit}" https://skia.googlesource.com/skia.git skia_temp
cd skia_temp
local _milestone=$(grep -Eo "Milestone ([0-9]+)" RELEASE_NOTES.md | head -1 | cut -f 2 -d ' ')
printf "%s.r%s.%s" "${_milestone}" "$(git rev-list --count HEAD)" "$(git rev-parse --short=8 "${_commit}")"
cd ..
rm -Rf skia_temp
}
prepare() {
mv "${_realname}-${_commit}" "${_realname}"
cd ${_realname}
apply_patch_with_msg \
0001-add-pkgconfig-support.patch \
0002-add-mingw-toolchain-skia.patch \
0003-fix-dwrite-function-mingw.patch \
0004-misc-mingw-fixes.patch \
0005-external-packages-update.patch \
0006-integrates-svg-into-skia-lib.patch
mkdir -p third_party/externals/zlib
cp -r "${srcdir}"/zlib/google third_party/externals/zlib
# gn is expected to be in skia/bin
cp ${MINGW_PREFIX}/bin/gn.exe bin/gn.exe
sed -e "s|@PREFIX@|${MINGW_PREFIX}|g" \
-e "s|@VERSION@|${pkgver}|g" -i "${srcdir}"/skia.pc
}
build() {
local _buildtype=Release
local _debug=false
local _official=true
if check_option "debug" "y"; then
_buildtype=Debug
_debug=true
_official=false
fi
local _arch=x64
if [[ ${CARCH} == aarch64 ]]; then
_arch=arm64
fi
cd ${_realname}
gn gen out/${_buildtype}-${MSYSTEM} --args="
target_cpu=\"${_arch}\"
cc=\"${CC}\"
cxx=\"${CXX}\"
is_debug=${_debug}
is_official_build=${_official}
is_component_build=true
skia_use_dng_sdk=false
skia_use_wuffs=false
skia_use_xps=false"
ninja -C out/${_buildtype}-${MSYSTEM}
}
package() {
cd ${_realname}
local _buildtype=Release
if check_option "debug" "y"; then
_buildtype=Debug
fi
install -d "${pkgdir}"/${MINGW_PREFIX}/bin
install -Dm755 out/${_buildtype}-${MSYSTEM}/*.dll "${pkgdir}"/${MINGW_PREFIX}/bin/
install -d "${pkgdir}"/${MINGW_PREFIX}/lib
install -Dm755 out/${_buildtype}-${MSYSTEM}/*.dll.a "${pkgdir}"/${MINGW_PREFIX}/lib/
install -d "${pkgdir}"/${MINGW_PREFIX}/include/skia
cp --parents `find ./include -name \*.h` "$pkgdir"/${MINGW_PREFIX}/include/skia
cp --parents `find ./modules -name \*.h` "$pkgdir"/${MINGW_PREFIX}/include/skia
install -d "${pkgdir}"/${MINGW_PREFIX}/lib/pkgconfig
install -Dm644 "${srcdir}/skia.pc" "${pkgdir}"/${MINGW_PREFIX}/lib/pkgconfig/
install -d "${pkgdir}"/${MINGW_PREFIX}/share/licenses/skia
install -Dm644 LICENSE* "${pkgdir}"/${MINGW_PREFIX}/share/licenses/${_realname}/
}