|
| 1 | +{ |
| 2 | + description = "native_toolchain_rs"; |
| 3 | + |
| 4 | + inputs = { |
| 5 | + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; |
| 6 | + utils.url = "github:numtide/flake-utils"; |
| 7 | + }; |
| 8 | + |
| 9 | + outputs = |
| 10 | + { |
| 11 | + self, |
| 12 | + nixpkgs, |
| 13 | + utils, |
| 14 | + }: |
| 15 | + utils.lib.eachDefaultSystem ( |
| 16 | + system: |
| 17 | + let |
| 18 | + pkgs = import nixpkgs { |
| 19 | + inherit system; |
| 20 | + config.allowUnfree = true; |
| 21 | + }; |
| 22 | + in |
| 23 | + { |
| 24 | + formatter = pkgs.nixfmt-tree; |
| 25 | + |
| 26 | + devShells = { |
| 27 | + default = pkgs.mkShell { |
| 28 | + packages = with pkgs; [ |
| 29 | + # TODO flutter335 but at version where native assets works |
| 30 | + rustup |
| 31 | + llvmPackages_20.clangUseLLVM |
| 32 | + ]; |
| 33 | + |
| 34 | + env = { |
| 35 | + RUST_BACKTRACE = "1"; |
| 36 | + }; |
| 37 | + |
| 38 | + shellHook = '' |
| 39 | + export PATH=$HOME/.pub-cache/bin:$PATH |
| 40 | + dart pub global activate melos |
| 41 | + ''; |
| 42 | + }; |
| 43 | + |
| 44 | + android = |
| 45 | + let |
| 46 | + arch = builtins.head (builtins.split "-" system); |
| 47 | + androidEnv = pkgs.androidenv.override { licenseAccepted = true; }; |
| 48 | + androidComposition = androidEnv.composeAndroidPackages { |
| 49 | + platformVersions = [ |
| 50 | + "35" |
| 51 | + "36" |
| 52 | + ]; |
| 53 | + buildToolsVersions = [ "35.0.0" ]; |
| 54 | + cmakeVersions = [ "3.22.1" ]; |
| 55 | + includeNDK = true; |
| 56 | + ndkVersions = [ "27.0.12077973" ]; |
| 57 | + |
| 58 | + # For the emulator: |
| 59 | + includeEmulator = true; |
| 60 | + includeSystemImages = true; |
| 61 | + systemImageTypes = [ "default" ]; |
| 62 | + abiVersions = [ |
| 63 | + { |
| 64 | + "x86_64" = "x86_64"; |
| 65 | + "aarch64" = "arm64-v8a"; |
| 66 | + } |
| 67 | + .${arch} or (throw "Unsupported architecture: ${arch}") |
| 68 | + ]; |
| 69 | + }; |
| 70 | + in |
| 71 | + pkgs.mkShell { |
| 72 | + packages = with pkgs; [ |
| 73 | + androidComposition.androidsdk |
| 74 | + jdk17 |
| 75 | + ]; |
| 76 | + |
| 77 | + env = rec { |
| 78 | + ANDROID_HOME = "${androidComposition.androidsdk}/libexec/android-sdk"; |
| 79 | + ANDROID_NDK_ROOT = "${ANDROID_HOME}/ndk-bundle"; |
| 80 | + }; |
| 81 | + }; |
| 82 | + }; |
| 83 | + } |
| 84 | + ); |
| 85 | +} |
0 commit comments