diff options
| author | Mark Naughton <mark@marknaughton.com> | 2023-05-18 13:23:17 +0100 |
|---|---|---|
| committer | Mark Naughton <mark@marknaughton.com> | 2023-05-18 13:23:17 +0100 |
| commit | 413077a5d9ce55850bbb64747e1e7a813e356e5b (patch) | |
| tree | 3894b569732c6fc49c57a90706430ff885124f20 /src/build_settings.cpp | |
| parent | 4b4481ea274283489f39fe3ac3ae871d26a2b46d (diff) | |
Fix single-file package case
Diffstat (limited to 'src/build_settings.cpp')
| -rw-r--r-- | src/build_settings.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/build_settings.cpp b/src/build_settings.cpp index b74207b85..e690b9ea2 100644 --- a/src/build_settings.cpp +++ b/src/build_settings.cpp @@ -1499,13 +1499,20 @@ gb_internal bool init_build_paths(String init_filename) { } else if (build_context.build_mode == BuildMode_Executable) { // By default use no executable extension. output_extension = make_string(nullptr, 0); + String const single_file_extension = str_lit(".odin"); if (build_context.metrics.os == TargetOs_windows) { output_extension = STR_LIT("exe"); + } else if (build_context.cross_compiling && selected_target_metrics->metrics == &target_essence_amd64) { + output_extension = make_string(nullptr, 0); } else if (path_is_directory(last_path_element(bc->build_paths[BuildPath_Main_Package].basename))) { // Add .bin extension to avoid collision // with package directory name output_extension = STR_LIT("bin"); + } else if (string_ends_with(init_filename, single_file_extension) && path_is_directory(remove_extension_from_path(init_filename))) { + // Add bin extension if compiling single-file package + // with same output name as a directory + output_extension = STR_LIT("bin"); } } else if (build_context.build_mode == BuildMode_DynamicLibrary) { // By default use a .so shared library extension. |