مهدي شينون (Mehdi Chinoune) 282db1890a clean some PKGBUILDs
2024-12-09 08:13:06 +01:00

168 lines
5.8 KiB
Bash

# Maintainer: Naveen M K <naveen521kk at gmail.com>
_realname=skia
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=108.0.5359.95
# blindly follow chromium version number
# see https://omahaproxy.appspot.com/all.json?os=win&channel=stable
# for the commit
_commit="7c55be996a81ff9c5c66984c9d4ef85d12a44c8c"
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"
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}-expat"
"${MINGW_PACKAGE_PREFIX}-libpng"
"${MINGW_PACKAGE_PREFIX}-zlib"
"${MINGW_PACKAGE_PREFIX}-libwebp"
"${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
"${MINGW_PACKAGE_PREFIX}-harfbuzz"
"${MINGW_PACKAGE_PREFIX}-icu"
)
source=("${_realname}-${pkgver}.tar.gz::https://github.com/google/skia/archive/${_commit}.tar.gz"
"bare-clones/build::git+https://chromium.googlesource.com/chromium/src/build.git#commit=fd86d60f33cbc794537c4da2ef7e298d7f81138e"
"0001-Don-t-download-prebuild-gn-and-emsdk.patch"
"0002-add-mingw-toolchain-skia.patch"
"0003-fix-dwrite-function-mingw.patch"
"0004-add-mingw-toolchain-build.patch"
"0005-dont-undef-CLSID_WICImagingFactory-on-mingw.patch"
"0006-fix-std-max.patch"
"harfbuzz.gn"
"icu.gn"
"zlib.gn"
"skia.pc"
)
noextract=("${_realname}-${pkgver}.tar.gz")
sha256sums=('48ff8b020d2e54b97ddf7cfc54bb483492aef3dc7b3e61629c8a86bc89995643'
'SKIP'
'5df0992b78f7f6bedba8cef110c73c723513d032015e9b756decb0a06a99a2f6'
'518166cb8c4848deee114c0f38c0c80289f6d170a31dbaacd0455a573599cd5b'
'76592221a23555a29debc77df7e2429d52e2b7db1c103e0785bb7a4c669b9e03'
'63f35c12168fcb5f025db2cb3a4bc693cb4546ce561dc95e45d10c1579daf786'
'7883ff95984f5eac3002d8205257666f38538e0907046ef17e4850a36103a12c'
'96b98caea6c426ff0b4f85ced7b45d4b40777396ac7b12bb6490b9d387c1b3c8'
'7bd0b8cff2f1ec6822c74b731664007f598c3b442718060c499df7ba19141563'
'36d32b737f87a676f5c4da9b7ae14193e6c1913ddb6508b979effdba2b80ea83'
'b99874ea904724911528a5530c14f3051c358805bd36df9d205df31458ebf8b9'
'a5dd30a1b53609aad427945fd119709a899d23a2e9606fbb676c146fdd04e3cd')
apply_patch_with_msg() {
for _patch in "$@"; do
msg2 "Applying $_patch"
patch -Nbp1 -i "${srcdir}/$_patch"
done
}
prepare() {
tar -xf "${_realname}-${pkgver}.tar.gz" || true
mv "${srcdir}/skia-${_commit}" "${srcdir}/skia"
echo "Syncing all dependencies"
cd "${srcdir}/skia"
apply_patch_with_msg 0001-Don-t-download-prebuild-gn-and-emsdk.patch
sed "s|linebender/piet-gpu|linebender/vello|g" -i DEPS
python ${srcdir}/skia/tools/git-sync-deps
echo "Patching build directory"
cd "${srcdir}"/build
apply_patch_with_msg 0004-add-mingw-toolchain-build.patch
#python "${srcdir}"/build/util/lastchange.py -o "${srcdir}"/build/util/LASTCHANGE
rm -rf "${srcdir}"/skia/build
ln -sf "${srcdir}"/build "${srcdir}"/skia
echo "checkout_google_benchmark = false" >"${srcdir}"/skia/build/config/gclient_args.gni
echo "Preparing Skia Source"
cd "${srcdir}"/skia
apply_patch_with_msg 0002-add-mingw-toolchain-skia.patch
apply_patch_with_msg 0003-fix-dwrite-function-mingw.patch
apply_patch_with_msg 0005-dont-undef-CLSID_WICImagingFactory-on-mingw.patch
apply_patch_with_msg 0006-fix-std-max.patch
cp "${srcdir}/harfbuzz.gn" "${srcdir}/skia/third_party/harfbuzz/BUILD.gn"
cp "${srcdir}/icu.gn" "${srcdir}/skia/third_party/icu/BUILD.gn"
cp "${srcdir}/zlib.gn" "${srcdir}/skia/third_party/zlib/BUILD.gn"
sed "s/@VERSION@/$pkgver/g" -i "$srcdir/skia.pc"
sed "s/@CFLAGS@//g" -i "$srcdir/skia.pc"
sed "s|^prefix=.*|prefix=${MINGW_PREFIX}|g" -i "$srcdir/skia.pc"
}
build() {
local BUILDTYPE=Release
if check_option "debug" "y"; then
BUILDTYPE="Debug"
fi
if [[ ${CARCH} == aarch64 ]]; then
_arch=arm64
else
_arch=x64
fi
case ${BUILDTYPE} in
Release)
_is_official=true
;;
Debug)
_is_official=false
;;
esac
if [[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]]; then
export LD=clang++
export AR=llvm-ar
else
export LD=g++
export AR=ar
fi
cd "${srcdir}"/skia
${MINGW_PREFIX}/bin/gn gen "${PWD}/out/${BUILDTYPE}-${MSYSTEM}" --args="
target_cpu=\"${_arch}\"
is_official_build=${_is_official}
cc=\"${CC}\"
cxx=\"${CXX}\"
is_component_build=false
skia_enable_tools=false
skia_use_system_libjpeg_turbo=true
skia_use_system_libwebp=true
skia_use_system_libpng=true
use_sysroot=false
skia_use_xps=false"
ninja -C "${PWD}/out/${BUILDTYPE}-${MSYSTEM}"
}
package() {
cd "skia"
local BUILDTYPE=Release
if check_option "debug" "y"; then
BUILDTYPE="Debug"
fi
ls "${PWD}/out/${BUILDTYPE}-${MSYSTEM}"
install -d "$pkgdir"/${MINGW_PREFIX}/lib
install -Dm755 out/${BUILDTYPE}-${MSYSTEM}/*.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 -m644 "$srcdir/skia.pc" "$pkgdir"/${MINGW_PREFIX}/lib/pkgconfig/
install -d "$pkgdir"/${MINGW_PREFIX}/share/licenses/skia
install -m644 LICENSE* "$pkgdir"/${MINGW_PREFIX}/share/licenses/${_realname}
}