1
0
Fork 0
mirror of https://gitlab.alpinelinux.org/alpine/aports.git synced 2025-07-23 03:05:48 +03:00
aports/testing/dart/APKBUILD
2023-03-04 22:06:39 +00:00

218 lines
6.5 KiB
Text

# Contributor: Lauren N. Liberda <lauren@selfisekai.rocks>
# Maintainer: Lauren N. Liberda <lauren@selfisekai.rocks>
pkgname=dart
pkgver=2.19.3
_bootstrap=2.18.0
pkgrel=1
pkgdesc="Dart is a client-optimized language for fast apps on any platform"
url="https://dart.dev/"
arch="x86_64"
license="BSD-3-Clause"
makedepends="
clang
curl
dart-bootstrap
gn
icu-dev
lld
llvm
python3
ripgrep
samurai
sed
"
subpackages="
$pkgname-dev
$pkgname-devtools
$pkgname-sdk
"
source="
https://s3.sakamoto.pl/lnl-aports-snapshots/dart-sdk-$pkgver.tar.xz
host-compiler.patch
musl-sigsetjmp.patch
no-analytics.patch
no-werror.patch
musl-reinterpret.patch
shim-headers.patch
fix-pkg-config.patch
unbundle-icu.patch
dart2js
"
builddir="$srcdir/dart-sdk-$pkgver"
provides="dart-bootstrap"
provider_priority=100
# gclient comes from teapot-tools
snapshot() {
mkdir -p "$srcdir"
cd "$srcdir"
echo "
solutions = [{
'name': 'sdk',
'url': 'https://dart.googlesource.com/sdk.git@$pkgver',
}]
target_cpu = ['x64', 'x86', 'arm64', 'arm', 'ppc64', 'riscv64', 's390x']
target_cpu_only = True
" > .gclient
gclient sync --no-history --nohooks --tpot-cipd-ignore-platformed
for elf in $(scanelf -RA -F "%F" sdk); do
rm -f "$elf"
done
mv sdk dart-sdk-$pkgver
msg "generating tarball.."
tar -cf dart-sdk-$pkgver.tar \
--exclude="ChangeLog*" \
--exclude="sdk/buildtools/*/clang" \
--exclude="third_party/fuchsia/sdk/linux/arch" \
--exclude=".build-id" \
--exclude-backups \
--exclude-caches-all \
--exclude-vcs \
dart-sdk-$pkgver
xz -T0 -e -9 -vv -k dart-sdk-$pkgver.tar
}
case "$CARCH" in
aarch64) _arch="arm64" ;;
armv7) _arch="armv7" ;;
x86) _arch="ia32" ;;
x86_64) _arch="x64" ;;
esac
prepare() {
default_prepare
# xD https://github.com/dart-lang/sdk/blob/2.18.0/build/toolchain/linux/BUILD.gn#L24-L30
case "$CARCH" in
aarch64) clang_arch="arm64" ;;
*) clang_arch="x64" ;;
esac
mkdir -p .git/logs
echo '' > .git/logs/HEAD
# shut up on clang
mkdir -p buildtools/linux-$clang_arch/clang/.versions
echo '{"instance_id":"system"}' > buildtools/linux-$clang_arch/clang/.versions/clang.cipd_version
# bind bootstrapped interpreter
mkdir -p tools/sdks/dart-sdk/bin/
ln -s /usr/bin/dart tools/sdks/dart-sdk/bin/dart
ln -s /usr/bin/dart2js tools/sdks/dart-sdk/bin/dart2js
# gclient hooks
python3 tools/generate_package_config.py
python3 tools/generate_sdk_version_file.py
# google analytics, doubleclick
echo '' > tools/bots/dartdoc_footer.html
rm third_party/devtools/web/devtools_analytics.js
# disarm analytics for sure
rg --no-ignore -l '(?:\.|/)google-analytics\.com' . \
| while read line; do [[ "$line" == *".js.map" ]] || echo "$line"; done \
| xargs sed -i -E 's|([^/]+\.)?google-analytics\.com|0\.0\.0\.0|g'
rg --no-ignore -l 'UA-[0-9]+-[0-9]+' . \
| xargs sed -i -E 's|UA-[0-9]+-[0-9]+|UA-2137-0|g'
sed -i 's/Unknown timestamp/'"$(date -uIm)"'/' tools/make_version.py
# reusable system library settings
local use_system="
icu
"
for _lib in $use_system; do
msg "Removing buildscripts for system provided $_lib"
find . -type f -path "*third_party/$_lib/*" \
\! -path "*third_party/$_lib/chromium/*" \
\! -path "*third_party/$_lib/google/*" \
\! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
-delete
done
# no workflow replacement - handled by `use_system_*` gn args
}
build() {
local gn_args="
dart_debug=false
dart_platform_sdk=false
dart_runtime_mode=\"release\"
dart_target_arch=\"$_arch\"
dart_use_tcmalloc=false
dart_version_git_info=false
is_clang=true
is_debug=false
is_product=true
is_release=true
target_cpu=\"$_arch\"
use_system_icu=true
verify_sdk_hash=false
"
msg "Generating ninja files"
gn gen out --args="$(echo $gn_args)"
msg "Building"
ninja -C out create_sdk runtime_precompiled gen_kernel
}
check() {
# check sanity
./out/dart --version
}
package() {
install -Dm755 out/dart "$pkgdir"/usr/lib/dart/bin/dart
install -Dm755 out/dart-sdk/bin/dartaotruntime "$pkgdir"/usr/lib/dart/bin/dartaotruntime
cp -r out/dart-sdk/lib "$pkgdir"/usr/lib/dart/lib
mkdir -p "$pkgdir"/usr/lib/dart/bin/resources/
cp -r out/devtools "$pkgdir"/usr/lib/dart/bin/resources/devtools
cp -r out/dart-sdk/bin/snapshots "$pkgdir"/usr/lib/dart/bin/snapshots
install -Dm755 out/gen_snapshot "$pkgdir"/usr/lib/dart/bin/utils/gen_snapshot
mkdir -p "$pkgdir"/usr/include
cp -r out/dart-sdk/include "$pkgdir"/usr/include/dart
mkdir -p "$pkgdir"/usr/bin
ln -s /usr/lib/dart/bin/dart "$pkgdir"/usr/bin/dart
ln -s /usr/lib/dart/bin/dartaotruntime "$pkgdir"/usr/bin/dartaotruntime
find "$pkgdir"/usr/lib/dart/bin/resources/devtools -type f -exec chmod 644 {} \;
echo "$pkgver" > "$pkgdir"/usr/lib/dart/version
}
sdk() {
depends="$pkgname=$pkgver-r$pkgrel"
for snap in analysis_server dart2js dartdevc dds frontend_server gen_kernel kernel-service kernel_worker; do
amove usr/lib/dart/bin/snapshots/$snap.dart.snapshot
done
amove usr/lib/dart/bin/utils
amove usr/lib/dart/lib
install -Dm755 "$srcdir"/dart2js "$pkgdir"/usr/bin/dart2js
}
devtools() {
amove usr/lib/dart/bin/resources/devtools
}
sha512sums="
908cad2f833843ef3a9860741fca673be103efdd190163bcb73e45192e2c9ba5892924922530e0ab7df2a251f45355d0337bd8e1435dcd6a15ae78bcf28eff25 dart-sdk-2.19.3.tar.xz
d8d3c9a1d37a13043952d662a6477eb2427f87f4456b47fe6602426a636c598979e8b12bfe32e8e668c97ef551fa22febfe15e81d232ba31187e7e8ce741d9dc host-compiler.patch
28f1c2fc2cfdaac4c0ee55e7cfe13c7802d34b6dd0f1f9c6bf35eff6088eb551d860b1a9cfc14ee8323ae3a8342c471b7cc7a3582a4897c52a6a2a044436750a musl-sigsetjmp.patch
960d3c971d7b66e25c5e52c3189edd5356bc66a1aebc51b927b25abad238ec91b367f6c3ddb43ae6ab0d82180cba69ef9529903d5a7dce18dd75ef2bff2ae1d4 no-analytics.patch
b3aeb574042fe515a3f1cf7fc240f5976d9a86d599b33700caf23fd78f0b937b2ac7e0bdc590281ca18751b02a8e46899e6cdff2d498d23718588eadb1d84366 no-werror.patch
7ca0cd9e370679ee7d34225342db2dbc394f7355f4c06e7e81afb066be9cbb1c2c48fd56d9dfc15bbf8e9ddf6458d2c33ed3db1dace370cdb8dcbfbb240f75b3 musl-reinterpret.patch
f15e70279d383ebd2b202a123d7dd452ae0212022b372795cdfac530476d017c59352db136e673a06b9cacdbda0c152ce6c19735da637ebd366616f23a752ce4 shim-headers.patch
a55e52d5b8266d18c743cbd95eb6e2531623ca95a3c91a6a5193ffeabebce5979578b50c00bbbe93c0e5cb88fddd00184fded54ef845fefef4d76d972f4e78a9 fix-pkg-config.patch
6bd02f8a597c823021f8c5ec4e1f739dd8bceaf9817dd292245c01c5d25b5cc7ac6b9dac3c13e553e1b6fc81cf436b3f161973ff3a76188143b223dfbb48a9f8 unbundle-icu.patch
68487e1c9bf2caf6791e0ec996e107c23ac2bae7352e9772a7d96f6e467bfbb2c0094e18266081c04e2be67d40d8a9ae8a4bc9a0de93005cd82589839576b5f2 dart2js
"