aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMark Naughton <mark@marknaughton.com>2023-05-18 13:23:17 +0100
committerMark Naughton <mark@marknaughton.com>2023-05-18 13:23:17 +0100
commit413077a5d9ce55850bbb64747e1e7a813e356e5b (patch)
tree3894b569732c6fc49c57a90706430ff885124f20 /src
parent4b4481ea274283489f39fe3ac3ae871d26a2b46d (diff)
Fix single-file package case
Diffstat (limited to 'src')
-rw-r--r--src/build_settings.cpp7
-rw-r--r--src/path.cpp2
2 files changed, 8 insertions, 1 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.
diff --git a/src/path.cpp b/src/path.cpp
index 7664380a4..3054e3b57 100644
--- a/src/path.cpp
+++ b/src/path.cpp
@@ -2,7 +2,7 @@
Path handling utilities.
*/
#if !defined(GB_SYSTEM_WINDOWS)
-#include<unistd.h>
+#include <unistd.h>
#endif
gb_internal String remove_extension_from_path(String const &s) {