From 5b303353f58347efcaf623a07fbcb790c8873024 Mon Sep 17 00:00:00 2001 From: Nico Date: Tue, 24 Jun 2025 20:37:19 +0200 Subject: [PATCH] update flutter flakes --- shells/flutter/flake.nix | 146 ++++++++++-------------------------- shells/flutter/flake.nix.bk | 109 +++++++++++++++++++++++++++ 2 files changed, 149 insertions(+), 106 deletions(-) create mode 100644 shells/flutter/flake.nix.bk diff --git a/shells/flutter/flake.nix b/shells/flutter/flake.nix index fe2e04e..b00d8c9 100644 --- a/shells/flutter/flake.nix +++ b/shells/flutter/flake.nix @@ -1,109 +1,43 @@ { - inputs = { - nixpkgs.url = "nixpkgs/nixpkgs-unstable"; - - flake-parts = { - url = "github:hercules-ci/flake-parts"; - inputs.nixpkgs-lib.follows = "nixpkgs"; - }; - - android-nixpkgs.url = "github:tadfisher/android-nixpkgs"; - - cursor.url = "github:omarcresp/cursor-flake/main"; - }; - - - outputs = { - self, - nixpkgs, - flake-parts, - cursor, - ... - } @ inputs: - flake-parts.lib.mkFlake {inherit inputs;} { - systems = ["x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin"]; - perSystem = { - pkgs, - system, - lib, - ... - }: { - devShells.default = let - pkgs = import nixpkgs { - inherit system; - config = { - allowUnfree = true; - android_sdk.accept_license = true; - }; - overlays = []; - }; - android-nixpkgs = pkgs.callPackage inputs.android-nixpkgs {}; - androidSdk = android-nixpkgs.sdk (sdkPkgs: - with sdkPkgs; [ - cmdline-tools-latest - build-tools-34-0-0 - build-tools-30-0-3 - platform-tools - platforms-android-35 - platforms-android-34 - platforms-android-33 - platforms-android-31 - platforms-android-30 - ndk-26-3-11579264 - cmake-3-22-1 - ]); - PWD = builtins.getEnv "PWD"; - patchedFlutter = pkgs.flutter.override (prev: rec { - flutter = prev.flutter.overrideAttrs (prevAttrs: { - patches = prevAttrs.patches ++ [ - # This patch is needed to avoid the Kotlin Gradle plugin writing to the store. - (pkgs.writeText "kotlin-fix.patch" '' - --- a/packages/flutter_tools/gradle/build.gradle.kts - +++ b/packages/flutter_tools/gradle/build.gradle.kts - @@ -4,6 +4,8 @@ - - import org.jetbrains.kotlin.gradle.dsl.JvmTarget - - +gradle.startParameter.projectCacheDir = layout.buildDirectory.dir("cache").get().asFile - + - plugins { - `java-gradle-plugin` - groovy - '') - ]; - passthru = prevAttrs.passthru // { - sdk = flutter; - }; - # postInstall = (prevAttrs.postInstall or "") + '' - # mkdir -p $out/bin/cache - # touch $out/bin/cache/engine.realm - # ''; - }); - }); - in - pkgs.mkShell { - ANDROID_SDK_ROOT = "${androidSdk}/libexec/android-sdk"; - ANDROID_NDK_ROOT = "${androidSdk}/libexec/android-sdk/ndk-bundle"; - ANDROID_AVD_HOME = "${PWD}/.android/avd"; - ANDROID_HOME = "${androidSdk}/libexec/android-sdk"; - FLUTTER_SDK = "${patchedFlutter}"; - GRADLE_OPTS = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${androidSdk}/share/android-sdk/build-tools/34.0.0/aapt2"; - buildInputs = with pkgs; [ - patchedFlutter - jdk17 - androidSdk - clang - dart - cmake - android-tools - cursor.packages.${pkgs.system}.default - ]; - shellHook = '' - zsh - exit - ''; - }; - # formatter = pkgs.alejandra; +description = "Flutter 3.13.x"; +inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + flake-utils.url = "github:numtide/flake-utils"; +}; +outputs = { self, nixpkgs, flake-utils }: + flake-utils.lib.eachDefaultSystem (system: + let + pkgs = import nixpkgs { + inherit system; + config = { + android_sdk.accept_license = true; + allowUnfree = true; + }; }; - }; + androidComposition = pkgs.androidenv.composeAndroidPackages { + buildToolsVersions = [ "28.0.3" "34.0.0" ]; + platformVersions = [ "34" "35" "33" ]; + includeNDK = true; + ndkVersions = ["26.3.11579264"]; + abiVersions = [ "armeabi-v7a" "arm64-v8a" ]; + cmakeVersions = [ "3.22.1" ]; + }; + androidSdk = androidComposition.androidsdk; + in + { + devShell = + with pkgs; mkShell rec { + ANDROID_SDK_ROOT = "${androidSdk}/libexec/android-sdk"; + GRADLE_OPTS = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${androidSdk}/libexec/android-sdk/build-tools/34.0.0/aapt2"; + buildInputs = [ + flutter + androidSdk # The customized SDK that we've made above + jdk17 + ]; + shellHook = '' + zsh + exit + ''; + }; + }); } diff --git a/shells/flutter/flake.nix.bk b/shells/flutter/flake.nix.bk new file mode 100644 index 0000000..fe2e04e --- /dev/null +++ b/shells/flutter/flake.nix.bk @@ -0,0 +1,109 @@ +{ + inputs = { + nixpkgs.url = "nixpkgs/nixpkgs-unstable"; + + flake-parts = { + url = "github:hercules-ci/flake-parts"; + inputs.nixpkgs-lib.follows = "nixpkgs"; + }; + + android-nixpkgs.url = "github:tadfisher/android-nixpkgs"; + + cursor.url = "github:omarcresp/cursor-flake/main"; + }; + + + outputs = { + self, + nixpkgs, + flake-parts, + cursor, + ... + } @ inputs: + flake-parts.lib.mkFlake {inherit inputs;} { + systems = ["x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin"]; + perSystem = { + pkgs, + system, + lib, + ... + }: { + devShells.default = let + pkgs = import nixpkgs { + inherit system; + config = { + allowUnfree = true; + android_sdk.accept_license = true; + }; + overlays = []; + }; + android-nixpkgs = pkgs.callPackage inputs.android-nixpkgs {}; + androidSdk = android-nixpkgs.sdk (sdkPkgs: + with sdkPkgs; [ + cmdline-tools-latest + build-tools-34-0-0 + build-tools-30-0-3 + platform-tools + platforms-android-35 + platforms-android-34 + platforms-android-33 + platforms-android-31 + platforms-android-30 + ndk-26-3-11579264 + cmake-3-22-1 + ]); + PWD = builtins.getEnv "PWD"; + patchedFlutter = pkgs.flutter.override (prev: rec { + flutter = prev.flutter.overrideAttrs (prevAttrs: { + patches = prevAttrs.patches ++ [ + # This patch is needed to avoid the Kotlin Gradle plugin writing to the store. + (pkgs.writeText "kotlin-fix.patch" '' + --- a/packages/flutter_tools/gradle/build.gradle.kts + +++ b/packages/flutter_tools/gradle/build.gradle.kts + @@ -4,6 +4,8 @@ + + import org.jetbrains.kotlin.gradle.dsl.JvmTarget + + +gradle.startParameter.projectCacheDir = layout.buildDirectory.dir("cache").get().asFile + + + plugins { + `java-gradle-plugin` + groovy + '') + ]; + passthru = prevAttrs.passthru // { + sdk = flutter; + }; + # postInstall = (prevAttrs.postInstall or "") + '' + # mkdir -p $out/bin/cache + # touch $out/bin/cache/engine.realm + # ''; + }); + }); + in + pkgs.mkShell { + ANDROID_SDK_ROOT = "${androidSdk}/libexec/android-sdk"; + ANDROID_NDK_ROOT = "${androidSdk}/libexec/android-sdk/ndk-bundle"; + ANDROID_AVD_HOME = "${PWD}/.android/avd"; + ANDROID_HOME = "${androidSdk}/libexec/android-sdk"; + FLUTTER_SDK = "${patchedFlutter}"; + GRADLE_OPTS = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${androidSdk}/share/android-sdk/build-tools/34.0.0/aapt2"; + buildInputs = with pkgs; [ + patchedFlutter + jdk17 + androidSdk + clang + dart + cmake + android-tools + cursor.packages.${pkgs.system}.default + ]; + shellHook = '' + zsh + exit + ''; + }; + # formatter = pkgs.alejandra; + }; + }; +}