diff options
| author | Albin <albin@mullvad.net> | 2025-07-16 22:01:53 +0200 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2025-07-16 22:19:35 +0200 |
| commit | db4404c1f4103b22ae62fd922e96fafd7394c709 (patch) | |
| tree | 3315371a8c102ddb492532941daab626486a22d8 /android | |
| parent | 4558fafa22a0d9705dcb981bdebb789d543d045a (diff) | |
| download | mullvadvpn-db4404c1f4103b22ae62fd922e96fafd7394c709.tar.xz mullvadvpn-db4404c1f4103b22ae62fd922e96fafd7394c709.zip | |
Adapt devshell env vars for macOS
Diffstat (limited to 'android')
| -rw-r--r-- | android/nix/env-vars.nix | 180 |
1 files changed, 102 insertions, 78 deletions
diff --git a/android/nix/env-vars.nix b/android/nix/env-vars.nix index e9f5d6aa62..173db93af3 100644 --- a/android/nix/env-vars.nix +++ b/android/nix/env-vars.nix @@ -4,81 +4,105 @@ buildToolsVersion, ndkVersion, minSdkVersion, -}: [ - { - name = "JAVA_HOME"; - value = "${pkgs.jdk17}"; - } - { - 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/linux-x86_64/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"; - } -] +}: 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 = "${pkgs.jdk17}"; + } + { + 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"; + } + ] |
