working flutter flake and nivm tabby
This commit is contained in:
@@ -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=";
|
||||
}
|
||||
];
|
||||
})
|
||||
];
|
||||
|
||||
};
|
||||
});
|
||||
}
|
||||
101
shells/flake.nix
Normal file
101
shells/flake.nix
Normal file
@@ -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;
|
||||
};
|
||||
};
|
||||
}
|
||||
61
shells/flutter/flake.lock
generated
61
shells/flutter/flake.lock
generated
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
];
|
||||
}
|
||||
)
|
||||
|
||||
];
|
||||
};
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user