diff options
| author | IllusionMan1212 <hisham.abourgheba@gmail.com> | 2025-04-05 02:18:06 +0200 |
|---|---|---|
| committer | IllusionMan1212 <hisham.abourgheba@gmail.com> | 2025-04-05 02:20:06 +0200 |
| commit | 44950d5f37f1a288182179b9b106f3510f51704e (patch) | |
| tree | 3ced254b0089b2ff6d019ef6cc93e1865df4fe43 /src/build_settings.cpp | |
| parent | 19e056a80619f91fad04ce73950ed122c2a11881 (diff) | |
fix: cross-compilation for android on linux
add `-nodefaultlibs` when cross-linking for android to prevent clang from linking with libgcc
check build mode first before calling `init_android_values` to prevent printing a message
that tells the user to set `-android-keystore` if its not set and build mode is exe
Diffstat (limited to 'src/build_settings.cpp')
| -rw-r--r-- | src/build_settings.cpp | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/src/build_settings.cpp b/src/build_settings.cpp index 1e44a8bc5..2152f7566 100644 --- a/src/build_settings.cpp +++ b/src/build_settings.cpp @@ -1781,6 +1781,30 @@ gb_internal void init_build_context(TargetMetrics *cross_target, Subtarget subta bc->ODIN_WINDOWS_SUBSYSTEM = windows_subsystem_names[Windows_Subsystem_CONSOLE]; } + if (subtarget == Subtarget_Android) { + switch (build_context.build_mode) { + case BuildMode_DynamicLibrary: + case BuildMode_Object: + case BuildMode_Assembly: + case BuildMode_LLVM_IR: + break; + default: + case BuildMode_Executable: + case BuildMode_StaticLibrary: + if ((build_context.command_kind & Command__does_build) != 0) { + gb_printf_err("Unsupported -build-mode for -subtarget:android\n"); + gb_printf_err("\tCurrently only supporting: \n"); + // gb_printf_err("\t\texe\n"); + gb_printf_err("\t\tshared\n"); + gb_printf_err("\t\tobject\n"); + gb_printf_err("\t\tassembly\n"); + gb_printf_err("\t\tllvm-ir\n"); + gb_exit(1); + } + break; + } + } + if (metrics->os == TargetOs_darwin && subtarget == Subtarget_iOS) { switch (metrics->arch) { case TargetArch_arm64: @@ -1900,30 +1924,6 @@ gb_internal void init_build_context(TargetMetrics *cross_target, Subtarget subta if (bc->metrics.os == TargetOs_freestanding) { bc->ODIN_DEFAULT_TO_NIL_ALLOCATOR = !bc->ODIN_DEFAULT_TO_PANIC_ALLOCATOR; } - - if (subtarget == Subtarget_Android) { - switch (build_context.build_mode) { - case BuildMode_DynamicLibrary: - case BuildMode_Object: - case BuildMode_Assembly: - case BuildMode_LLVM_IR: - break; - default: - case BuildMode_Executable: - case BuildMode_StaticLibrary: - if ((build_context.command_kind & Command__does_build) != 0) { - gb_printf_err("Unsupported -build-mode for -subtarget:android\n"); - gb_printf_err("\tCurrently only supporting: \n"); - // gb_printf_err("\t\texe\n"); - gb_printf_err("\t\tshared\n"); - gb_printf_err("\t\tobject\n"); - gb_printf_err("\t\tassembly\n"); - gb_printf_err("\t\tllvm-ir\n"); - gb_exit(1); - } - break; - } - } } #if defined(GB_SYSTEM_WINDOWS) |