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 {...@@ -509,7 +509,26 @@ pub const Builder = struct {
509 return null;509 return null;
510 },510 },
511 },511 },
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 },
513 .Enum => switch (entry.value.value) {532 .Enum => switch (entry.value.value) {
514 .Flag => {533 .Flag => {
515 warn("Expected -D{} to be a string, but received a boolean.\n", .{name});534 warn("Expected -D{} to be a string, but received a boolean.\n", .{name});