From 35adae86f992a74e02a230c8d08db82d5029ada4 Mon Sep 17 00:00:00 2001 From: hellodword <46193371+hellodword@users.noreply.github.com> Date: Wed, 15 May 2024 15:09:15 +0000 Subject: [PATCH] nix: keep lazy for use_android=false --- shell.nix | 53 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/shell.nix b/shell.nix index 129e1da..6dcbc22 100644 --- a/shell.nix +++ b/shell.nix @@ -1,5 +1,5 @@ { pkgs ? import { } -, android ? fetchTarball "https://github.com/tadfisher/android-nixpkgs/archive/refs/tags/2024-04-02.tar.gz" +, android ? "https://github.com/tadfisher/android-nixpkgs/archive/refs/tags/2024-04-02.tar.gz" , use_android ? true , android_emulator ? false }: @@ -7,25 +7,8 @@ with pkgs; let x11libs = lib.makeLibraryPath [ xorg.libX11 xorg.libXcursor xorg.libXrandr xorg.libXi libglvnd vulkan-loader vulkan-validation-layers libxkbcommon ]; - android-nixpkgs = callPackage android { }; - ndk-version = "24.0.8215888"; - - android-sdk = android-nixpkgs.sdk (sdkPkgs: with sdkPkgs; [ - cmdline-tools-latest - build-tools-34-0-0 - platform-tools - platforms-android-30 - ndk-24-0-8215888 - ] ++ lib.optional android_emulator [emulator]); - - android-sdk-path = "${android-sdk.out}/share/android-sdk"; - android-ndk-path = "${android-sdk-path}/ndk/${ndk-version}"; - in mkShell ({ - buildInputs = [] ++ pkgs.lib.optional use_android [ - android-sdk - ]; nativeBuildInputs = [ #cargo-udeps #cargo-edit @@ -41,7 +24,7 @@ mkShell ({ #wabt #gdb #heaptrack - ] ++ lib.optional use_android [ + ] ++ lib.optionals use_android [ jre openssl libiconv @@ -53,7 +36,31 @@ mkShell ({ darwin.apple_sdk.frameworks.AppKit ]; - ANDROID_NDK_ROOT = android-ndk-path; -} // (if !stdenv.isDarwin then { - LD_LIBRARY_PATH="${x11libs}"; -} else {})) +} // ( + lib.optionalAttrs (!stdenv.isDarwin) { + LD_LIBRARY_PATH = "${x11libs}"; + } +) // ( + lib.optionalAttrs use_android ( + let + android-nixpkgs = callPackage (fetchTarball android) { }; + ndk-version = "24.0.8215888"; + + android-sdk = android-nixpkgs.sdk (sdkPkgs: with sdkPkgs; [ + cmdline-tools-latest + build-tools-34-0-0 + platform-tools + platforms-android-30 + ndk-24-0-8215888 + ] ++ lib.optional android_emulator [ emulator ]); + + android-sdk-path = "${android-sdk.out}/share/android-sdk"; + android-ndk-path = "${android-sdk-path}/ndk/${ndk-version}"; + + in + { + buildInputs = [ android-sdk ]; + ANDROID_NDK_ROOT = android-ndk-path; + } + ) +))