aboutsummaryrefslogtreecommitdiffstats
path: root/testing/dart/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'testing/dart/APKBUILD')
-rw-r--r--testing/dart/APKBUILD237
1 files changed, 237 insertions, 0 deletions
diff --git a/testing/dart/APKBUILD b/testing/dart/APKBUILD
new file mode 100644
index 00000000000..66ad847e37a
--- /dev/null
+++ b/testing/dart/APKBUILD
@@ -0,0 +1,237 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=dart
+# upgrade checklist: https://md.sdomi.pl/Q-ECZTJ2Qqyp3ahfJuYSBw
+pkgver=3.3.2
+pkgrel=0
+_bootstrap=3.2.0_alpha150_p0
+pkgdesc="Dart is a client-optimized language for fast apps on any platform"
+url="https://dart.dev/"
+arch="aarch64 armv7 x86_64"
+license="BSD-3-Clause"
+makedepends="
+ curl
+ dart-bootstrap=>$_bootstrap
+ gn
+ icu-dev
+ lld
+ llvm
+ python3
+ ripgrep
+ samurai
+ zlib-dev
+ zstd
+ "
+subpackages="$pkgname-sdk dartaotruntime"
+
+case "$pkgver" in
+ *.*.*_pre*)
+ _canonver="${pkgver/_pre/-}"
+ _canonver="${_canonver/-r/.}.dev"
+ ;;
+ *.*.*_beta*)
+ _canonver="${pkgver/_beta/-}"
+ _canonver="${_canonver/-r/.}.beta"
+ ;;
+ *.*.*)
+ _canonver="$pkgver"
+ ;;
+esac
+
+source="
+ https://ab-sn.lnl.gay/dart-sdk-$_canonver.tar.zst
+
+ build-config.patch
+ gcc13.patch
+ no-werror.patch
+ unbundle.patch
+ where-we-are-heading-prefixes-are-not-needed.patch
+ "
+builddir="$srcdir/dart-sdk-$_canonver"
+
+# gclient comes from teapot-tools
+_distbucket="sakamoto/lnl-aports-snapshots/"
+snapshot() {
+ mkdir -p "$srcdir"
+ cd "$srcdir"
+
+ echo "
+solutions = [{
+ 'name': 'sdk',
+ 'url': 'https://dart.googlesource.com/sdk.git@$_canonver',
+}]
+target_cpu = ['x64', 'arm64', 'arm', 'riscv64']
+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-$_canonver
+
+ msg "generating tarball.."
+ tar -cf dart-sdk-$_canonver.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-$_canonver
+
+ zstd --auto-threads=logical --ultra --long -22 -T0 -vv dart-sdk-$_canonver.tar -o "$SRCDEST"/dart-sdk-$_canonver.tar.zst
+ mcli cp "$SRCDEST"/dart-sdk-$_canonver.tar.zst "$_distbucket"
+}
+
+case "$CARCH" in
+ aarch64)
+ _arch="arm64"
+ _out="$builddir/out/ReleaseARM64"
+ ;;
+ armv7)
+ _arch="arm"
+ _out="$builddir/out/ReleaseARM"
+ ;;
+ riscv64)
+ _arch="riscv64"
+ _out="$builddir/out/ReleaseRISCV64"
+ ;;
+ x86_64)
+ _arch="x64"
+ _out="$builddir/out/ReleaseX64"
+ ;;
+esac
+
+prepare() {
+ default_prepare
+
+ mkdir -p .git/logs
+ echo '' > .git/logs/HEAD
+
+ # bind bootstrapped interpreter
+ rm -rf tools/sdks/dart-sdk
+ ln -s /usr/lib/dart tools/sdks/dart-sdk
+
+ ln -s /usr/bin/gn buildtools/gn
+ mkdir -p buildtools/ninja
+ ln -s /usr/bin/samu buildtools/ninja/ninja
+
+ # 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' . \
+ | rg -v "\.map\$" \
+ | xargs -t -n 1 -P ${JOBS:-2} sed -i -E 's|([^/]+\.)?google-analytics\.com|0\.0\.0\.0|g'
+ rg --no-ignore -l 'UA-[0-9]+-[0-9]+' . \
+ | xargs -t -n 1 -P ${JOBS:-2} 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
+ zlib
+ "
+ 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
+ msg "Replacing gn files"
+ python3 build/linux/unbundle/replace_gn_files.py --system-libraries \
+ $use_system
+}
+
+build() {
+ # shellcheck disable=2089
+ local gn_args="
+ create_kernel_service_snapshot=true
+ dart_snapshot_kind=\"app-jit\"
+ dart_sysroot=\"\"
+ dart_use_tcmalloc=false
+ "
+
+ msg "Building"
+ # shellcheck disable=2116,2090
+ python3 ./tools/build.py \
+ --no-clang \
+ --arch="$_arch" \
+ --mode=release \
+ --no-goma \
+ --no-verify-sdk-hash \
+ --gn-args="$(echo $gn_args)" \
+ create_sdk runtime
+}
+
+check() {
+ # check sanity
+ "$_out"/dart-sdk/bin/dart --version
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr/bin "$pkgdir"/usr/lib "$pkgdir"/usr/include
+
+ cp -r "$_out"/dart-sdk "$pkgdir"/usr/lib/dart
+
+ ln -s ../lib/dart/include "$pkgdir"/usr/include/dart
+ ln -s ../lib/dart/bin/dart "$pkgdir"/usr/bin/dart
+ ln -s ../lib/dart/bin/dartaotruntime "$pkgdir"/usr/bin/dartaotruntime
+
+ find "$pkgdir"/usr/lib/dart/bin/resources/devtools -type f -exec chmod 644 {} \;
+}
+
+dartaotruntime() {
+ amove usr/bin/dartaotruntime
+ amove usr/lib/dart/bin/dartaotruntime
+}
+
+sdk() {
+ # do the stuff -dev does by default here
+ default_dev
+
+ # must be set after default_dev or gets cleared
+ depends="dart=$pkgver-r$pkgrel dartaotruntime=$pkgver-r$pkgrel"
+ provides="dart-bootstrap=$pkgver-r$pkgrel dart-devtools=$pkgver-r$pkgrel"
+ provider_priority=100
+
+ _snapshots="
+ analysis_server
+ dart2js
+ dartdevc
+ dds_aot
+ frontend_server
+ gen_kernel_aot
+ kernel-service
+ kernel_worker
+ "
+ for snap in $_snapshots; do
+ amove usr/lib/dart/bin/snapshots/$snap.dart.snapshot
+ done
+ amove usr/lib/dart/bin/resources/dartdoc
+ amove usr/lib/dart/bin/resources/devtools
+ amove usr/lib/dart/bin/snapshots/dart2wasm_product.snapshot
+ amove usr/lib/dart/bin/utils
+ amove usr/lib/dart/lib
+}
+
+sha512sums="
+f5521b4f779b9e657e351734af0a845cfa83fada99a65896d812643ed80467892c6bb4127d687f5ac6e684e7efd1c7eaf41dfed696dd69486897b29a6c9a9b42 dart-sdk-3.3.2.tar.zst
+3ae8364a172b029cf0b45cd4fd1ac192a20772c84924bb59a1775339ed6314cf81c398b078823fd9f07abc1b0de4b5704c76ce84c64f8924e645f00cfcda4ff3 build-config.patch
+03562a3fa935b6819458acdfcadf24f71accf73e2000d158c1fe41aca068b21fb158350a32911c322672b592beefea1e9c7e4675a98418804e60000049a656c8 gcc13.patch
+e7f5c715d9ed01c36e8b60892332b1bc763a3f98ca87905e2102491c469db60ab21dba9b3e116e1a7ec3faef7d65b8fdd60d7148cfb848ef5a2b411a06f425cf no-werror.patch
+14b6b024688110631dfce6d51b895e84d4306a00e66c0e5306126f6d27cbd13894bf2c50faffab99e57107901ec3977a4b0038bee9e165f733ef9e4ccc14af1a unbundle.patch
+641909211afa784d06c864777f04afc619fa669bbd4be30343feb67ed3c7c797f48eac22821a70f18c098d1c04206bd44c3b88aaf2e9bf0c3938ba58578f1f15 where-we-are-heading-prefixes-are-not-needed.patch
+"