-
Notifications
You must be signed in to change notification settings - Fork 55
Expand file tree
/
Copy pathshell.nix
More file actions
80 lines (75 loc) · 2.32 KB
/
shell.nix
File metadata and controls
80 lines (75 loc) · 2.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
{ pkgs ? import <nixpkgs> { }
, android ? "https://github.com/tadfisher/android-nixpkgs/archive/refs/tags/2026-04-20-stable.tar.gz"
, use_android ? false
, android_emulator ? false
}:
with pkgs;
let
x11libs = lib.makeLibraryPath [ xorg.libX11 xorg.libXcursor xorg.libXrandr xorg.libXi libglvnd vulkan-loader vulkan-validation-layers libxkbcommon wayland ];
in
mkShell ({
nativeBuildInputs = [
#cargo-udeps
#cargo-edit
#cargo-watch
rustup
gdb
libiconv
(python3.withPackages (ps: [ ps.pyyaml ps.mako ps.requests ]))
pkg-config
cmake
fontconfig
#gtk3
#gsettings-desktop-schemas
#brotli
#wabt
#gdb
#heaptrack
] ++ lib.optionals (!stdenv.isDarwin) [
alsa-lib
zenity
] ++ lib.optionals use_android [
gradle
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
];
} // (
lib.optionalAttrs (!stdenv.isDarwin) {
LD_LIBRARY_PATH = "${x11libs}";
# Lavapipe ICD path for deterministic snapshot tests (software Vulkan)
LAVAPIPE_ICD = "${mesa.drivers}/share/vulkan/icd.d/lvp_icd.x86_64.json";
#XDG_DATA_DIRS = "${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}:${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}";
}
) // (
lib.optionalAttrs use_android (
let
android-nixpkgs = callPackage (fetchTarball android) { };
#ndk-version = "24.0.8215888";
ndk-version = "29.0.14206865";
android-version = "34";
android-sdk = android-nixpkgs.sdk (sdkPkgs: with sdkPkgs; [
cmdline-tools-latest
build-tools-34-0-0
platform-tools
platforms-android-34
ndk-29-0-14206865
#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;
ANDROID_JAR = "${android-sdk-path}/platforms/android-${android-version}/android.jar";
GRADLE_OPTS = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${aapt}/bin/aapt2";
}
)
))