aboutsummaryrefslogtreecommitdiff
path: root/src/build_settings.cpp
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2018-06-21 08:39:07 +0100
committerGitHub <noreply@github.com>2018-06-21 08:39:07 +0100
commit4742690dec0bef8a720131397ad44c919878d3b5 (patch)
treec1dfc0d2e41153a5f14286e8ee66068b487e8188 /src/build_settings.cpp
parent3a16f1e854d60059ab93efbf946c582138e95a66 (diff)
Fix `is_excluded_target_filename`
Diffstat (limited to 'src/build_settings.cpp')
-rw-r--r--src/build_settings.cpp14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/build_settings.cpp b/src/build_settings.cpp
index 5b3d846cb..ee4466698 100644
--- a/src/build_settings.cpp
+++ b/src/build_settings.cpp
@@ -150,8 +150,10 @@ TargetArchKind get_target_arch_from_string(String str) {
return TargetArch_Invalid;
}
+
bool is_excluded_target_filename(String name) {
String const ext = str_lit(".odin");
+ String original_name = name;
GB_ASSERT(string_ends_with(name, ext));
name = substring(name, 0, name.len-ext.len);
@@ -166,7 +168,7 @@ bool is_excluded_target_filename(String name) {
}
str1 = substring(str1, n, str1.len);
- str2 = str1;
+ str2 = substring(name, 0, gb_max(n-1, 0));
n = str2.len;
for (isize i = str2.len-1; i >= 0 && str2[i] != '_'; i--) {
n -= 1;
@@ -177,29 +179,25 @@ bool is_excluded_target_filename(String name) {
return false;
}
-
-
TargetOsKind os1 = get_target_os_from_string(str1);
TargetArchKind arch1 = get_target_arch_from_string(str1);
TargetOsKind os2 = get_target_os_from_string(str2);
TargetArchKind arch2 = get_target_arch_from_string(str2);
- if (arch1 != TargetArch_Invalid && os2 != TargetOs_Invalid) {
+ if (os1 != TargetOs_Invalid && arch2 != TargetArch_Invalid) {
+ return os1 != build_context.metrics.os || arch2 != build_context.metrics.arch;
+ } else if (arch1 != TargetArch_Invalid && os2 != TargetOs_Invalid) {
return arch1 != build_context.metrics.arch || os2 != build_context.metrics.os;
- } else if (arch1 != TargetArch_Invalid && os1 != TargetOs_Invalid) {
- return arch2 != build_context.metrics.arch || os1 != build_context.metrics.os;
} else if (os1 != TargetOs_Invalid) {
return os1 != build_context.metrics.os;
} else if (arch1 != TargetArch_Invalid) {
return arch1 != build_context.metrics.arch;
}
-
return false;
}
-
struct LibraryCollections {
String name;
String path;