Add nix-shell for macos android development

Co-authored-by: William Casarin <jb55@jb55.com>
Link: 20240404185039.3738-1-kernelkind@gmail.com
Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
kernelkind
2024-04-04 14:50:39 -04:00
committed by William Casarin
parent 116ba27f3f
commit 272da6cced
3 changed files with 80 additions and 35 deletions

View File

@@ -1,34 +1,57 @@
{ pkgs ? import <nixpkgs> {}, use_android ? true }:
{ pkgs ? import <nixpkgs> { }
, android ? fetchTarball "https://github.com/tadfisher/android-nixpkgs/archive/refs/tags/2024-04-02.tar.gz"
, use_android ? true }:
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";
androidComposition = androidenv.composeAndroidPackages {
includeNDK = true;
ndkVersions = [ ndk-version ];
platformVersions = [ "28" "29" "30" ];
useGoogleAPIs = false;
#useGoogleTVAddOns = false;
#includeExtras = [
# "extras;google;gcm"
#];
};
androidsdk = androidComposition.androidsdk;
android-home = "${androidsdk}/libexec/android-sdk";
ndk-home = "${android-home}/ndk/${ndk-version}";
android-sdk = android-nixpkgs.sdk (sdkPkgs: with sdkPkgs; [
cmdline-tools-latest
build-tools-34-0-0
platform-tools
platforms-android-30
emulator
ndk-24-0-8215888
]);
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 cargo-watch rustup rustfmt libiconv pkg-config cmake fontconfig
brotli wabt gdb heaptrack
heaptrack
] ++ pkgs.lib.optional use_android [ jre openssl libiconv androidsdk cargo-apk ] ;
#cargo-udeps
#cargo-edit
#cargo-watch
#rustup
#rustfmt
libiconv
pkg-config
#cmake
fontconfig
#brotli
#wabt
#gdb
#heaptrack
] ++ lib.optional use_android [
jre
openssl
libiconv
cargo-apk
] ++ lib.optional stdenv.isDarwin [
darwin.apple_sdk.frameworks.Security
darwin.apple_sdk.frameworks.OpenGL
darwin.apple_sdk.frameworks.CoreServices
darwin.apple_sdk.frameworks.AppKit
];
ANDROID_NDK_ROOT = android-ndk-path;
} // (if !stdenv.isDarwin then {
LD_LIBRARY_PATH="${x11libs}";
} // (if !use_android then {} else {
ANDROID_HOME = android-home;
NDK_HOME = ndk-home;
}))
} else {}))