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:
committed by
William Casarin
parent
116ba27f3f
commit
272da6cced
73
shell.nix
73
shell.nix
@@ -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 {}))
|
||||
|
||||
Reference in New Issue
Block a user