From d7affc502878af1e64268c02c8f16d9458e850bd Mon Sep 17 00:00:00 2001 From: Christoffer Lerno Date: Fri, 1 Aug 2025 10:13:22 +0200 Subject: [PATCH] Fix regression in file output placement. --- src/compiler/codegen_general.c | 2 +- src/compiler/compiler.c | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/compiler/codegen_general.c b/src/compiler/codegen_general.c index 7fc6978ef..93df674a5 100644 --- a/src/compiler/codegen_general.c +++ b/src/compiler/codegen_general.c @@ -310,7 +310,7 @@ void codegen_setup_object_names(Module *module, const char **base_name, const ch { res = str_printf("%s%s", result, ext); } - compiler.obj_output = *object_filename = file_append_path(compiler.build.output_dir ? compiler.build.output_dir : ".", res); + compiler.obj_output = *object_filename = (file_path_is_relative(res) ? file_append_path(compiler.build.output_dir, res) : res); char *dir_path = NULL; char *filename = NULL; file_get_dir_and_filename_from_full(compiler.obj_output, &filename, &dir_path); diff --git a/src/compiler/compiler.c b/src/compiler/compiler.c index 19a42c20f..8d7d9625b 100644 --- a/src/compiler/compiler.c +++ b/src/compiler/compiler.c @@ -695,11 +695,11 @@ void compiler_compile(void) if (vec_size(compiler.build.emit_only)) goto SKIP; if (output_exe) { - if (compiler.build.output_dir) + if (file_path_is_relative(output_exe)) { - create_output_dir(compiler.build.output_dir); output_exe = file_append_path(compiler.build.output_dir, output_exe); } + ; file_create_folders(output_exe); bool system_linker_available = link_libc() && compiler.platform.os != OS_TYPE_WIN32; bool use_system_linker = system_linker_available && compiler.build.arch_os_target == default_target; @@ -795,9 +795,8 @@ void compiler_compile(void) } else if (output_static) { - if (compiler.build.output_dir) + if (file_path_is_relative(output_static)) { - create_output_dir(compiler.build.output_dir); output_static = file_append_path(compiler.build.output_dir, output_static); } file_create_folders(output_static); @@ -812,9 +811,8 @@ void compiler_compile(void) } else if (output_dynamic) { - if (compiler.build.output_dir) + if (file_path_is_relative(output_dynamic)) { - create_output_dir(compiler.build.output_dir); output_dynamic = file_append_path(compiler.build.output_dir, output_dynamic); } file_create_folders(output_dynamic);