From 7ad377c12c7b46921fcb9551ef879df8dd300bc5 Mon Sep 17 00:00:00 2001 From: Dark_Avery Date: Mon, 30 Mar 2026 16:22:38 +0300 Subject: [PATCH] fix(android-build): move WSL build outputs off Windows mounts --- android/build-local-debug.sh | 40 +++++++++++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 5 deletions(-) diff --git a/android/build-local-debug.sh b/android/build-local-debug.sh index 51e2881..d6b07b6 100644 --- a/android/build-local-debug.sh +++ b/android/build-local-debug.sh @@ -3,6 +3,7 @@ set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +APP_BUILD_DIR="$ROOT_DIR/app/build" if [[ -z "${GRADLE_USER_HOME:-}" ]]; then if [[ -d "$HOME/.gradle" && -w "$HOME/.gradle" ]]; then @@ -47,6 +48,34 @@ TASK="${1:-assembleStandardDebug}" LOCAL_CHAQUOPY_REPO="${LOCAL_CHAQUOPY_REPO:-$ROOT_DIR/.m2-chaquopy}" CHAQUOPY_MAVEN_BASE="${CHAQUOPY_MAVEN_BASE:-https://repo.maven.apache.org/maven2}" +running_on_wsl_windows_mount() { + [[ -n "${WSL_DISTRO_NAME:-}" && "$ROOT_DIR" == /mnt/* ]] +} + +prepare_wsl_build_dir() { + if ! running_on_wsl_windows_mount; then + return 0 + fi + + local cache_root="${XDG_CACHE_HOME:-$HOME/.cache}/tg-ws-proxy-android-build" + local project_key + project_key="$(printf '%s' "$ROOT_DIR" | sha256sum | cut -d' ' -f1)" + local linux_build_dir="$cache_root/$project_key/app-build" + + mkdir -p "$cache_root" + mkdir -p "$linux_build_dir" + + if [[ -L "$APP_BUILD_DIR" ]]; then + return 0 + fi + + if [[ -e "$APP_BUILD_DIR" ]]; then + rm -rf "$APP_BUILD_DIR" + fi + + ln -s "$linux_build_dir" "$APP_BUILD_DIR" +} + task_uses_legacy32() { [[ "$TASK" =~ [Ll]egacy32 ]] } @@ -123,11 +152,11 @@ prefetch_chaquopy_runtime() { cleanup_stale_build_state() { local stale_dirs=( - "$ROOT_DIR/app/build/python/env" - "$ROOT_DIR/app/build/intermediates/project_dex_archive" - "$ROOT_DIR/app/build/intermediates/desugar_graph" - "$ROOT_DIR/app/build/tmp/kotlin-classes" - "$ROOT_DIR/app/build/snapshot/kotlin" + "$APP_BUILD_DIR/python/env" + "$APP_BUILD_DIR/intermediates/project_dex_archive" + "$APP_BUILD_DIR/intermediates/desugar_graph" + "$APP_BUILD_DIR/tmp/kotlin-classes" + "$APP_BUILD_DIR/snapshot/kotlin" ) for stale_dir in "${stale_dirs[@]}"; do @@ -138,6 +167,7 @@ cleanup_stale_build_state() { } prefetch_chaquopy_runtime +prepare_wsl_build_dir for attempt in $(seq 1 "$ATTEMPTS"); do echo "==> Android build attempt $attempt/$ATTEMPTS ($TASK)"