authorgravatar for vincent@rischmann.frVincent Rischmann <vincent@rischmann.fr> 2020-12-19 16:26:23+01:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2020-12-20 01:24:59+02:00
logdd7b816d98840f26988c993eda9be21fa9b0ab50
treeb3432bbd0510d5aebce728ca46c581ad05dbd772
parentb090451646904006ac41b2b99e532489d89ea837

builder: implement float options


1 files changed, 20 insertions(+), 1 deletions(-)

lib/std/build.zig+20-1
......@@ -509,7 +509,26 @@ pub const Builder = struct {
509509 return null;
510510 },
511511 },
512 .Float => panic("TODO float options to build script", .{}),
512 .Float => switch (entry.value.value) {
513 .Flag => {
514 warn("Expected -D{} to be a float, but received a boolean.\n", .{name});
515 self.markInvalidUserInput();
516 return null;
517 },
518 .Scalar => |s| {
519 const n = std.fmt.parseFloat(T, s) catch |err| {
520 warn("Expected -D{} to be a float of type {}.\n", .{ name, @typeName(T) });
521 self.markInvalidUserInput();
522 return null;
523 };
524 return n;
525 },
526 .List => {
527 warn("Expected -D{} to be a float, but received a list.\n", .{name});
528 self.markInvalidUserInput();
529 return null;
530 },
531 },
513532 .Enum => switch (entry.value.value) {
514533 .Flag => {
515534 warn("Expected -D{} to be a string, but received a boolean.\n", .{name});