add env helper to build hook

This commit is contained in:
Henry Hiles 2026-11-13 11:24:37 -05:00
commit 262fb16e11
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs

View file

@ -64,10 +64,14 @@ Future<void> main(List<String> args) => build(args, (input, output) async {
final targetNdkApi = codeConfig.android.targetNdkApi; final targetNdkApi = codeConfig.android.targetNdkApi;
// Treats empty variables as unset, since e.g. F-Droid sets ANDROID_NDK_HOME to "" without an NDK
String? env(String name) => switch (Platform.environment[name]) {
"" => null,
final value => value,
};
Future<String?> findNdkFromSdk() async { Future<String?> findNdkFromSdk() async {
final androidHome = final androidHome = env("ANDROID_HOME") ?? env("ANDROID_SDK_ROOT");
Platform.environment["ANDROID_HOME"] ??
Platform.environment["ANDROID_SDK_ROOT"];
if (androidHome == null) return null; if (androidHome == null) return null;
final ndkDir = Directory(join(androidHome, "ndk")); final ndkDir = Directory(join(androidHome, "ndk"));
@ -78,9 +82,9 @@ Future<void> main(List<String> args) => build(args, (input, output) async {
} }
final ndkHome = final ndkHome =
Platform.environment["ANDROID_NDK_HOME"] ?? env("ANDROID_NDK_HOME") ??
Platform.environment["ANDROID_NDK_ROOT"] ?? env("ANDROID_NDK_ROOT") ??
Platform.environment["NDK_HOME"] ?? env("NDK_HOME") ??
await findNdkFromSdk(); await findNdkFromSdk();
if (ndkHome == null) { if (ndkHome == null) {
@ -91,8 +95,7 @@ Future<void> main(List<String> args) => build(args, (input, output) async {
// TODO: Someone please give me a way to detect host architecture so I can change this // TODO: Someone please give me a way to detect host architecture so I can change this
final hostTag = final hostTag =
Platform.environment["ANDROID_HOST_TAG"] ?? env("ANDROID_HOST_TAG") ?? "${Platform.operatingSystem}-x86_64";
"${Platform.operatingSystem}-x86_64";
final ccTriple = switch (targetArch) { final ccTriple = switch (targetArch) {
Architecture.arm64 => "aarch64-linux-android", Architecture.arm64 => "aarch64-linux-android",
Architecture.arm => "armv7a-linux-androideabi", Architecture.arm => "armv7a-linux-androideabi",