fix: strip trailing slashes for android keystore and jarsigner paths

The `system()` call on linux was failing to execute the `jarsigner` command because its path had a trailing slash
This commit is contained in:
IllusionMan1212
2025-04-04 05:22:04 +02:00
parent 7d041cb2b8
commit 7c26024920
2 changed files with 5 additions and 2 deletions

View File

@@ -1574,6 +1574,8 @@ gb_internal void init_android_values(bool with_sdk) {
bc->ODIN_ANDROID_JAR_SIGNER = normalize_path(permanent_allocator(), make_string_c(gb_get_env("ODIN_ANDROID_JAR_SIGNER", permanent_allocator())), NIX_SEPARATOR_STRING);
// Strip trailing slash so system() call doesn't fail.
bc->ODIN_ANDROID_JAR_SIGNER = substring(bc->ODIN_ANDROID_JAR_SIGNER, 0, bc->ODIN_ANDROID_JAR_SIGNER.len - 1);
if (with_sdk) {
if (bc->ODIN_ANDROID_SDK.len == 0) {
gb_printf_err("Error: ODIN_ANDROID_SDK not set, which is required for -build-mode:executable for -subtarget:android");

View File

@@ -132,7 +132,7 @@ i32 bundle_android(String original_init_directory) {
if (current_directory.len != 0) {
bool ok = set_working_directory(init_directory);
if (!ok) {
gb_printf_err("Error: Unable to currectly set the current working directory to '%.*s'\n", LIT(init_directory));
gb_printf_err("Error: Unable to correctly set the current working directory to '%.*s'\n", LIT(init_directory));
}
}
@@ -174,7 +174,8 @@ i32 bundle_android(String original_init_directory) {
cmd = gb_string_append_length(cmd, build_context.ODIN_ANDROID_JAR_SIGNER.text, build_context.ODIN_ANDROID_JAR_SIGNER.len);
cmd = gb_string_append_fmt(cmd, " -storepass android");
if (build_context.android_keystore.len != 0) {
String keystore = concatenate_strings(temporary_allocator(), current_directory, build_context.android_keystore);
String keystore = normalize_path(temporary_allocator(), build_context.android_keystore, NIX_SEPARATOR_STRING);
keystore = substring(keystore, 0, keystore.len - 1);
cmd = gb_string_append_fmt(cmd, " -keystore \"%.*s\"", LIT(keystore));
}
cmd = gb_string_append_fmt(cmd, " \"%.*s.apk-build\"", LIT(output_apk));