diff options
| author | Feoramund <161657516+Feoramund@users.noreply.github.com> | 2025-05-30 07:55:40 -0400 |
|---|---|---|
| committer | Feoramund <161657516+Feoramund@users.noreply.github.com> | 2025-05-30 08:01:23 -0400 |
| commit | 598c1a1f1987ebaea4833b23d3c48f842c71f589 (patch) | |
| tree | 7f9cca43a3d5d3f7d71edefd57a2d2a3a93210e4 /src/llvm_backend.cpp | |
| parent | 73866b6b3d1c1e8d7f4f57ee966efbafbc0e5185 (diff) | |
Allow overriding object extension in `-build-mode:obj`
Diffstat (limited to 'src/llvm_backend.cpp')
| -rw-r--r-- | src/llvm_backend.cpp | 35 |
1 files changed, 6 insertions, 29 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index 801da52a3..3cf77256b 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -2527,38 +2527,15 @@ gb_internal String lb_filepath_obj_for_module(lbModule *m) { String ext = {}; if (build_context.build_mode == BuildMode_Assembly) { - ext = STR_LIT(".S"); + ext = STR_LIT("S"); + } else if (build_context.build_mode == BuildMode_Object) { + // Allow a user override for the object extension. + ext = build_context.build_paths[BuildPath_Output].ext; } else { - if (is_arch_wasm()) { - ext = STR_LIT(".wasm.o"); - } else { - switch (build_context.metrics.os) { - case TargetOs_windows: - ext = STR_LIT(".obj"); - break; - default: - case TargetOs_darwin: - case TargetOs_linux: - case TargetOs_essence: - ext = STR_LIT(".o"); - break; - - case TargetOs_freestanding: - switch (build_context.metrics.abi) { - default: - case TargetABI_Default: - case TargetABI_SysV: - ext = STR_LIT(".o"); - break; - case TargetABI_Win64: - ext = STR_LIT(".obj"); - break; - } - break; - } - } + ext = infer_object_extension_from_build_context(); } + path = gb_string_append_length(path, ".", 1); path = gb_string_append_length(path, ext.text, ext.len); return make_string(cast(u8 *)path, gb_string_length(path)); |