blob: 5ba718f59499aa4c38fd789528e3784e55be4210 (
plain)
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
{
pkgs,
android-sdk,
jdk,
buildToolsVersion,
ndkVersion,
minSdkVersion,
}:
let
hostPlatform =
# For linux the NDK support is limited to x86_64.
if pkgs.stdenv.isLinux && pkgs.stdenv.isx86_64 then
"linux-x86_64"
# For macOS the x86_64 NDK is used for both intel and arm (via rosetta).
else if pkgs.stdenv.isDarwin then
"darwin-x86_64"
else
throw "Unsupported OS/architecture combination: ${pkgs.stdenv.hostPlatform.system}";
in
[
{
name = "JAVA_HOME";
value = "${jdk}";
}
{
name = "PROTOC_GEN_GRPC_JAVA_PLUGIN";
prefix = "${pkgs.protoc-gen-grpc-java}/bin/protoc-gen-grpc-java";
}
{
name = "GRADLE_OPTS";
value = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${android-sdk}/share/android-sdk/build-tools/${buildToolsVersion}/aapt2";
}
{
name = "ANDROID_HOME";
value = "${android-sdk}/share/android-sdk";
}
{
name = "ANDROID_SDK_ROOT";
value = "${android-sdk}/share/android-sdk";
}
{
name = "ANDROID_NDK_ROOT";
value = "${android-sdk}/share/android-sdk/ndk/${ndkVersion}";
}
{
name = "NDK_TOOLCHAIN_DIR";
value = "${android-sdk}/share/android-sdk/ndk/${ndkVersion}/toolchains/llvm/prebuilt/${hostPlatform}/bin";
}
{
name = "AR_aarch64_linux_android";
value = "$NDK_TOOLCHAIN_DIR/llvm-ar";
}
{
name = "CC_aarch64_linux_android";
value = "$NDK_TOOLCHAIN_DIR/aarch64-linux-android${minSdkVersion}-clang";
}
{
name = "CARGO_TARGET_aarch64_LINUX_ANDROID_LINKER";
value = "$NDK_TOOLCHAIN_DIR/aarch64-linux-android${minSdkVersion}-clang";
}
{
name = "AR_armv7_linux_androideabi";
value = "$NDK_TOOLCHAIN_DIR/llvm-ar";
}
{
name = "CC_armv7_linux_androideabi";
value = "$NDK_TOOLCHAIN_DIR/armv7-linux-androideabi${minSdkVersion}-clang";
}
{
name = "CARGO_TARGET_armv7_LINUX_ANDROID_LINKER";
value = "$NDK_TOOLCHAIN_DIR/armv7-linux-androideabi${minSdkVersion}-clang";
}
{
name = "AR_x86_64_linux_android";
value = "$NDK_TOOLCHAIN_DIR/llvm-ar";
}
{
name = "CC_x86_64_linux_android";
value = "$NDK_TOOLCHAIN_DIR/x86_64-linux-android${minSdkVersion}-clang";
}
{
name = "CARGO_TARGET_x86_64_LINUX_ANDROID_LINKER";
value = "$NDK_TOOLCHAIN_DIR/x86_64-linux-android${minSdkVersion}-clang";
}
{
name = "AR_i686_linux_android";
value = "$NDK_TOOLCHAIN_DIR/llvm-ar";
}
{
name = "CC_i686_linux_android";
value = "$NDK_TOOLCHAIN_DIR/i686-linux-android${minSdkVersion}-clang";
}
{
name = "CARGO_TARGET_i686_LINUX_ANDROID_LINKER";
value = "$NDK_TOOLCHAIN_DIR/i686-linux-android${minSdkVersion}-clang";
}
]
++ pkgs.lib.optionals pkgs.stdenv.isDarwin [
{
name = "LIBRARY_PATH";
value = "${pkgs.libiconv}/lib";
}
{
name = "CPATH";
value = "${pkgs.libiconv}/include";
}
{
name = "RUSTFLAGS";
value = "-L${pkgs.libiconv}/lib";
}
]
|