feat(task): add new environment variables for Android build paths and update task commands to use them

This commit is contained in:
2026-01-01 22:46:01 -06:00
parent e59220e5f9
commit eafa345ce7

View File

@@ -25,6 +25,24 @@ vars:
sh: echo "${DOCKER_CONTEXT:-.}" sh: echo "${DOCKER_CONTEXT:-.}"
DOCKERFILE: DOCKERFILE:
sh: echo "${DOCKERFILE:-Dockerfile}" sh: echo "${DOCKERFILE:-Dockerfile}"
ANDROID_DIR:
sh: echo "${ANDROID_DIR:-android}"
PYTHON_SRC_DIR:
sh: echo "${PYTHON_SRC_DIR:-${ANDROID_DIR}/app/src/main/python}"
JNI_LIBS_DIR:
sh: echo "${JNI_LIBS_DIR:-${ANDROID_DIR}/app/src/main/jniLibs}"
RETICULUM_RNS_SRC:
sh: echo "${RETICULUM_RNS_SRC:-./misc/RNS}"
RETICULUM_LXMF_SRC:
sh: echo "${RETICULUM_LXMF_SRC:-./misc/LXMF}"
RETICULUM_LXST_SRC:
sh: echo "${RETICULUM_LXST_SRC:-./misc/LXST}"
SIDEBAND_CODEC2_WHL:
sh: echo "${SIDEBAND_CODEC2_WHL:-./misc/pycodec2-3.0.1-cp311-cp311-linux_aarch64.whl}"
SIDEBAND_LIB_ARM64:
sh: echo "${SIDEBAND_LIB_ARM64:-./misc/libcodec2-arm64-v8a.so}"
SIDEBAND_LIB_ARMEABI:
sh: echo "${SIDEBAND_LIB_ARMEABI:-./misc/libcodec2-armeabi-v7a.so}"
tasks: tasks:
default: default:
@@ -170,12 +188,12 @@ tasks:
desc: Initialize Gradle wrapper for Android project desc: Initialize Gradle wrapper for Android project
cmds: cmds:
- | - |
if [ ! -f android/gradle/wrapper/gradle-wrapper.jar ]; then if [ ! -f "{{.ANDROID_DIR}}/gradle/wrapper/gradle-wrapper.jar" ]; then
echo "Downloading Gradle wrapper jar..." echo "Downloading Gradle wrapper jar..."
mkdir -p android/gradle/wrapper mkdir -p "{{.ANDROID_DIR}}/gradle/wrapper"
curl -L -o android/gradle/wrapper/gradle-wrapper.jar \ curl -L -o "{{.ANDROID_DIR}}/gradle/wrapper/gradle-wrapper.jar" \
https://raw.githubusercontent.com/gradle/gradle/v8.12.1/gradle/wrapper/gradle-wrapper.jar || \ https://raw.githubusercontent.com/gradle/gradle/v8.12.1/gradle/wrapper/gradle-wrapper.jar || \
echo "Failed to download. Please run: cd android && gradle wrapper --gradle-version 8.12.1" echo "Failed to download. Please run: cd {{.ANDROID_DIR}} && gradle wrapper --gradle-version 8.12.1"
else else
echo "Gradle wrapper already initialized." echo "Gradle wrapper already initialized."
fi fi
@@ -186,44 +204,56 @@ tasks:
cmds: cmds:
- | - |
echo "Copying meshchatx package and dependencies to Android project..." echo "Copying meshchatx package and dependencies to Android project..."
mkdir -p android/app/src/main/python mkdir -p "{{.PYTHON_SRC_DIR}}"
# Remove old copies to ensure fresh build # Remove old copies to ensure fresh build
rm -rf android/app/src/main/python/meshchatx rm -rf "{{.PYTHON_SRC_DIR}}/meshchatx"
rm -rf android/app/src/main/python/RNS rm -rf "{{.PYTHON_SRC_DIR}}/RNS"
rm -rf android/app/src/main/python/LXMF rm -rf "{{.PYTHON_SRC_DIR}}/LXMF"
rm -rf android/app/src/main/python/LXST rm -rf "{{.PYTHON_SRC_DIR}}/LXST"
# Copy MeshChatX # Copy MeshChatX
cp -r meshchatx android/app/src/main/python/ cp -r meshchatx "{{.PYTHON_SRC_DIR}}/"
# Vendor RNS, LXMF, and LXST from local source (like Sideband does) # Vendor RNS, LXMF, and LXST from ./misc/ and ./src/
cp -r /mnt/projects/Reticulum/Reticulum/RNS android/app/src/main/python/ cp -r ./misc/RNS "{{.PYTHON_SRC_DIR}}/"
cp -r /mnt/projects/Reticulum/LXMF/LXMF android/app/src/main/python/ cp -r ./misc/LXMF "{{.PYTHON_SRC_DIR}}/"
cp -r /mnt/projects/Reticulum/LXST/LXST android/app/src/main/python/ cp -r ./misc/LXST "{{.PYTHON_SRC_DIR}}/"
cp -r ./src/RNS "{{.PYTHON_SRC_DIR}}/" || true
cp -r ./src/LXMF "{{.PYTHON_SRC_DIR}}/" || true
cp -r ./src/LXST "{{.PYTHON_SRC_DIR}}/" || true
# Copy pycodec2 wheel from ./misc
cp "./misc/pycodec2-3.0.1-cp311-cp311-linux_aarch64.whl" "{{.PYTHON_SRC_DIR}}/" || true
# Copy native libraries from ./misc
mkdir -p "{{.JNI_LIBS_DIR}}/arm64-v8a"
mkdir -p "{{.JNI_LIBS_DIR}}/armeabi-v7a"
cp "./misc/libcodec2-arm64-v8a.so" "{{.JNI_LIBS_DIR}}/arm64-v8a/" || true
cp "./misc/libcodec2-armeabi-v7a.so" "{{.JNI_LIBS_DIR}}/armeabi-v7a/" || true
# Cleanup vendored packages (remove utilities/tests etc if needed, similar to Sideband) # Cleanup vendored packages (remove utilities/tests etc if needed, similar to Sideband)
rm -rf android/app/src/main/python/RNS/Utilities/RNS rm -rf "{{.PYTHON_SRC_DIR}}/RNS/Utilities/RNS"
rm -rf android/app/src/main/python/LXMF/Utilities/LXMF rm -rf "{{.PYTHON_SRC_DIR}}/LXMF/Utilities/LXMF"
rm -rf android/app/src/main/python/LXST/Utilities/LXST rm -rf "{{.PYTHON_SRC_DIR}}/LXST/Utilities/LXST"
- | - |
echo "Android build prepared. Don't forget to:" echo "Android build prepared. Don't forget to:"
echo "1. Add Chaquopy license to android/local.properties" echo "1. Add Chaquopy license to {{.ANDROID_DIR}}/local.properties"
echo "2. Open android/ in Android Studio or run: task android-build" echo "2. Open {{.ANDROID_DIR}}/ in Android Studio or run: task android-build"
android-build: android-build:
desc: Build Android APK (requires Android SDK and Chaquopy license) desc: Build Android APK (requires Android SDK and Chaquopy license)
deps: [android-prepare] deps: [android-prepare]
cmds: cmds:
- cd android && ./gradlew assembleDebug - cd "{{.ANDROID_DIR}}" && ./gradlew assembleDebug
android-build-release: android-build-release:
desc: Build Android APK (release, requires signing config) desc: Build Android APK (release, requires signing config)
deps: [android-prepare] deps: [android-prepare]
cmds: cmds:
- cd android && ./gradlew assembleRelease - cd "{{.ANDROID_DIR}}" && ./gradlew assembleRelease
android-clean: android-clean:
desc: Clean Android build artifacts desc: Clean Android build artifacts
cmds: cmds:
- cd android && ./gradlew clean - cd "{{.ANDROID_DIR}}" && ./gradlew clean
- rm -rf android/app/src/main/python/meshchatx - rm -rf "{{.PYTHON_SRC_DIR}}/meshchatx"