diff options
| author | Vincent Rischmann <vincent@rischmann.fr> | 2020-12-19 16:26:23 +0100 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2020-12-20 01:24:59 +0200 |
| commit | dd7b816d98840f26988c993eda9be21fa9b0ab50 (patch) | |
| tree | b3432bbd0510d5aebce728ca46c581ad05dbd772 /lib | |
| parent | b090451646904006ac41b2b99e532489d89ea837 (diff) | |
| download | zig-dd7b816d98840f26988c993eda9be21fa9b0ab50.tar.gz zig-dd7b816d98840f26988c993eda9be21fa9b0ab50.zip | |
builder: implement float options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/std/build.zig | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/lib/std/build.zig b/lib/std/build.zig index dacfaf5f75..8d6db459ea 100644 --- a/lib/std/build.zig +++ b/lib/std/build.zig @@ -509,7 +509,26 @@ pub const Builder = struct { return null; }, }, - .Float => panic("TODO float options to build script", .{}), + .Float => switch (entry.value.value) { + .Flag => { + warn("Expected -D{} to be a float, but received a boolean.\n", .{name}); + self.markInvalidUserInput(); + return null; + }, + .Scalar => |s| { + const n = std.fmt.parseFloat(T, s) catch |err| { + warn("Expected -D{} to be a float of type {}.\n", .{ name, @typeName(T) }); + self.markInvalidUserInput(); + return null; + }; + return n; + }, + .List => { + warn("Expected -D{} to be a float, but received a list.\n", .{name}); + self.markInvalidUserInput(); + return null; + }, + }, .Enum => switch (entry.value.value) { .Flag => { warn("Expected -D{} to be a string, but received a boolean.\n", .{name}); |
