From 4ed9152f57ebdb35e0b2e83944b7a4b59320e7ea Mon Sep 17 00:00:00 2001 From: Nico Date: Sat, 10 May 2025 23:33:59 +0200 Subject: [PATCH] working flutter flake and nivm tabby --- Shells/flake.nix | 69 -------------------------- shells/flake.nix | 101 ++++++++++++++++++++++++++++++++++++++ shells/flutter/flake.lock | 61 ----------------------- shells/flutter/flake.nix | 48 ------------------ 4 files changed, 101 insertions(+), 178 deletions(-) delete mode 100644 Shells/flake.nix create mode 100644 shells/flake.nix delete mode 100644 shells/flutter/flake.lock delete mode 100644 shells/flutter/flake.nix diff --git a/Shells/flake.nix b/Shells/flake.nix deleted file mode 100644 index 0be1707..0000000 --- a/Shells/flake.nix +++ /dev/null @@ -1,69 +0,0 @@ -{ -description = "Flutter 3.13.x"; -inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - flake-utils.url = "github:numtide/flake-utils"; - - android-nixpkgs = { - url = "github:tadfisher/android-nixpkgs"; - }; -}; -outputs = { self, nixpkgs, flake-utils, android-nixpkgs }: - flake-utils.lib.eachDefaultSystem (system: - let - pkgs = import nixpkgs { - inherit system; - config = { - android_sdk.accept_license = true; - allowUnfree = true; - }; - }; - androidComposition = pkgs.androidenv.composeAndroidPackages { - buildToolsVersions = [ "30.0.3" "34.0.0" "33.0.1"]; - platformVersions = [ "35" "34" "33" "28" ]; - abiVersions = [ "armeabi-v7a" "arm64-v8a" ]; - }; - androidCustomPackage = android-nixpkgs.sdk.${system} ( - sdkPkgs: with sdkPkgs; [ - build-tools-30.0.3 - build-tools-34.0.0 - ] - ); - androidSdk = androidComposition.androidsdk; - in - { - devShell = - with pkgs; mkShell rec { - shellHook = '' - nu - exit - ''; - GRADLE_OPTS = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${androidSdk}/libexec/android-sdk/build-tools/34.0.0/aapt2"; - - ANDROID_SDK_ROOT = "${androidSdk}/libexec/android-sdk"; - buildInputs = [ - flutter - androidSdk # The customized SDK that we've made above -# jdk17 - jdk21 - - (vscode-with-extensions.override { - vscode = vscodium; - vscodeExtensions = with vscode-extensions; [ - vscodevim.vim - dart-code.dart-code - dart-code.flutter - ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace[ - { - name = "awesome-flutter-snippets"; - publisher = "nash"; - version = "4.0.1"; - sha256 = "lXdos/xB18h3Z0YfkgEk55G2JvRMYudUUIltugQjylU="; - } - ]; - }) - ]; - - }; - }); -} diff --git a/shells/flake.nix b/shells/flake.nix new file mode 100644 index 0000000..9df203b --- /dev/null +++ b/shells/flake.nix @@ -0,0 +1,101 @@ +{ + 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"; + }; + + + outputs = { + self, + nixpkgs, + flake-parts, + ... + } @ 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 + ]; + }; + # formatter = pkgs.alejandra; + }; + }; +} diff --git a/shells/flutter/flake.lock b/shells/flutter/flake.lock deleted file mode 100644 index 052af3f..0000000 --- a/shells/flutter/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1721138476, - "narHash": "sha256-+W5eZOhhemLQxelojLxETfbFbc19NWawsXBlapYpqIA=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "ad0b5eed1b6031efaed382844806550c3dcb4206", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/shells/flutter/flake.nix b/shells/flutter/flake.nix deleted file mode 100644 index 9cc38ba..0000000 --- a/shells/flutter/flake.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ -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; - }; - }; - buildToolsVersion = "34.0.0"; - androidComposition = pkgs.androidenv.composeAndroidPackages { - buildToolsVersions = [ buildToolsVersion "28.0.3" ]; - platformVersions = [ "34" "28" ]; - abiVersions = [ "armeabi-v7a" "arm64-v8a" ]; - }; - androidSdk = androidComposition.androidsdk; - in - { - devShell = - with pkgs; mkShell rec { - ANDROID_SDK_ROOT = "${androidSdk}/libexec/android-sdk"; - buildInputs = [ - flutter - androidSdk # The customized SDK that we've made above - jdk17 - - - (vscode-with-extensions.override { - vscode = vscodium; - vscodeExtensions = with vscode-extensions; [ - vscodevim.vim - dart-code.flutter -jnoortheen.nix-ide - ]; - } - ) - - ]; - }; - }); -}