mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-02 20:58:15 +00:00
Added support for odin build -target:?
This commit is contained in:
+20
-18
@@ -1060,27 +1060,29 @@ gb_internal bool parse_build_flags(Array<String> args) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!found) {
|
if (!found) {
|
||||||
struct DistanceAndTargetIndex {
|
if (str != "?") {
|
||||||
isize distance;
|
struct DistanceAndTargetIndex {
|
||||||
isize target_index;
|
isize distance;
|
||||||
};
|
isize target_index;
|
||||||
|
};
|
||||||
|
|
||||||
DistanceAndTargetIndex distances[gb_count_of(named_targets)] = {};
|
DistanceAndTargetIndex distances[gb_count_of(named_targets)] = {};
|
||||||
for (isize i = 0; i < gb_count_of(named_targets); i++) {
|
|
||||||
distances[i].target_index = i;
|
|
||||||
distances[i].distance = levenstein_distance_case_insensitive(str, named_targets[i].name);
|
|
||||||
}
|
|
||||||
gb_sort_array(distances, gb_count_of(distances), gb_isize_cmp(gb_offset_of(DistanceAndTargetIndex, distance)));
|
|
||||||
|
|
||||||
gb_printf_err("Unknown target '%.*s'\n", LIT(str));
|
|
||||||
|
|
||||||
if (distances[0].distance <= MAX_SMALLEST_DID_YOU_MEAN_DISTANCE) {
|
|
||||||
gb_printf_err("Did you mean:\n");
|
|
||||||
for (isize i = 0; i < gb_count_of(named_targets); i++) {
|
for (isize i = 0; i < gb_count_of(named_targets); i++) {
|
||||||
if (distances[i].distance > MAX_SMALLEST_DID_YOU_MEAN_DISTANCE) {
|
distances[i].target_index = i;
|
||||||
break;
|
distances[i].distance = levenstein_distance_case_insensitive(str, named_targets[i].name);
|
||||||
|
}
|
||||||
|
gb_sort_array(distances, gb_count_of(distances), gb_isize_cmp(gb_offset_of(DistanceAndTargetIndex, distance)));
|
||||||
|
|
||||||
|
gb_printf_err("Unknown target '%.*s'\n", LIT(str));
|
||||||
|
|
||||||
|
if (distances[0].distance <= MAX_SMALLEST_DID_YOU_MEAN_DISTANCE) {
|
||||||
|
gb_printf_err("Did you mean:\n");
|
||||||
|
for (isize i = 0; i < gb_count_of(named_targets); i++) {
|
||||||
|
if (distances[i].distance > MAX_SMALLEST_DID_YOU_MEAN_DISTANCE) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
gb_printf_err("\t%.*s\n", LIT(named_targets[distances[i].target_index].name));
|
||||||
}
|
}
|
||||||
gb_printf_err("\t%.*s\n", LIT(named_targets[distances[i].target_index].name));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gb_printf_err("All supported targets:\n");
|
gb_printf_err("All supported targets:\n");
|
||||||
|
|||||||
Reference in New Issue
Block a user