abinfo "Mapping Dart SDK architecture ..."
if ab_match_arch amd64; then
    export DART_ARCH="x64" DART_OUT="$SRCDIR/out/ReleaseX64"
elif ab_match_arch armv7hf; then
    export DART_ARCH="arm" DART_OUT="$SRCDIR/out/ReleaseARM"
elif ab_match_arch arm64; then
    export DART_ARCH="arm64" DART_OUT="$SRCDIR/out/ReleaseARM64"
elif ab_match_arch riscv64; then
    export DART_ARCH="riscv64" DART_OUT="$SRCDIR/out/ReleaseRISCV64"
fi

abinfo "Fetching Dart SDK source ..."
export PATH="$PATH:$SRCDIR/depot_tools"
export DEPOT_TOOLS_UPDATE=0
cat > "$SRCDIR"/../.gclient << EOF
solutions = [
    {
        "name": "sdk",
        "url": "file://$SRCDIR",
        "deps_file": "DEPS",
        "managed": False,
        "custom_deps": {},
        "custom_vars": {},
    },
]
target_cpu = ["$DART_ARCH"]
target_cpu_only = True
EOF
gclient sync -D --no-history --nohooks --shallow --verbose -r "$SRCDIR@$PKGVER"
rm -rv "$SRCDIR"/depot_tools
rm -v "$SRCDIR"/../.gclient

abinfo "Binding bootstrapped interpreter ..."
ln -sv /usr/lib/dart-sdk "$SRCDIR"/tools/sdks/dart-sdk

mkdir -pv "$SRCDIR"/buildtools/ninja
ln -sv /usr/bin/gn "$SRCDIR"/buildtools/gn
ln -sv /usr/bin/ninja "$SRCDIR"/buildtools/ninja/ninja

abinfo "Generating package config and SDK version files ..."
python3 "$SRCDIR"/tools/generate_package_config.py
python3 "$SRCDIR"/tools/generate_sdk_version_file.py

abinfo "Disabling Google analytics ..."
echo '' > "$SRCDIR"/tools/bots/dartdoc_footer.html
rm -v "$SRCDIR"/third_party/devtools/web/devtools_analytics.js
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'

use_system=(
    "icu"
    "zlib"
)
for _lib in "${use_system[@]}"; do
    abinfo "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
    abinfo "Replacing GN build files to use system $_lib ..."
    python3 "$SRCDIR"/build/linux/unbundle/replace_gn_files.py \
        --system-libraries "$_lib"
done
