{ pkgs, ... }: { android = { enable = true; emulator.enable = false; flutter.enable = true; flutter.package = pkgs.flutter; buildTools.version = [ # Put the latest version to compile with first! "36.0.0" # Android 16/17 target "35.0.0" "34.0.0" ]; platforms.version = [ "37" # Android 17 "36" # Android 16 "35" # Android 15 ]; ndk.enable = true; ndk.version = [ "29.0.14206865" # NDK r29 (Latest Stable) "27.3.13750724" # NDK r27d (Latest LTS) "27.2.12479018" # Kept for backward compatibility ]; extraLicenses = [ "android-googlexr-license" "android-sdk-preview-license" "android-googletv-license" "android-sdk-arm-dbt-license" "google-gdk-license" "intel-android-extra-license" "intel-android-sysimage-license" "mips-android-sysimage-license" ]; }; packages = with pkgs; [ # Needed by flutter_secure_storage libsecret.dev # Needed by path_provider on linux xdg-user-dirs ]; processes.web-server = { exec = "python -m http.server 8080 -d build/web"; }; scripts = { build-docker.exec = '' dart run pdfrx:remove_wasm_modules --revert // Make sure WASM is put in output flutter build web --release --wasm docker build -t gitlab.julian-mutter.de/julian/sheetless-frontend:latest . ''; deploy-docker.exec = '' if [ -n "''${REGISTRY_USERNAME:-}" ] && [ -n "''${REGISTRY_PASSWORD:-}" ]; then docker login gitlab.julian-mutter.de --username "$REGISTRY_USERNAME" --password "$REGISTRY_PASSWORD" fi docker push gitlab.julian-mutter.de/julian/sheetless-frontend ''; build-android.exec = '' export GRADLE_USER_HOME="$(pwd)/.gradle" dart run pdfrx:remove_wasm_modules --revert // Make sure WASM is put in output dart run pdfrx:remove_wasm_modules // NOT idempotent! flutter build apk --release ''; }; }