std.build: addBuildOption special handling for SemanticVersion
parent
41387e1822
commit
d4c167f3cd
|
@ -1808,6 +1808,29 @@ pub const LibExeObjStep = struct {
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
},
|
},
|
||||||
|
std.SemanticVersion => {
|
||||||
|
out.print(
|
||||||
|
\\pub const {z}: @import("std").SemanticVersion = .{{
|
||||||
|
\\ .major = {d},
|
||||||
|
\\ .minor = {d},
|
||||||
|
\\ .patch = {d},
|
||||||
|
\\
|
||||||
|
, .{
|
||||||
|
name,
|
||||||
|
|
||||||
|
value.major,
|
||||||
|
value.minor,
|
||||||
|
value.patch,
|
||||||
|
}) catch unreachable;
|
||||||
|
if (value.pre) |some| {
|
||||||
|
out.print(" .pre = \"{Z}\",\n", .{some}) catch unreachable;
|
||||||
|
}
|
||||||
|
if (value.build) |some| {
|
||||||
|
out.print(" .build = \"{Z}\",\n", .{some}) catch unreachable;
|
||||||
|
}
|
||||||
|
out.writeAll("};\n") catch unreachable;
|
||||||
|
return;
|
||||||
|
},
|
||||||
else => {},
|
else => {},
|
||||||
}
|
}
|
||||||
switch (@typeInfo(T)) {
|
switch (@typeInfo(T)) {
|
||||||
|
@ -2774,12 +2797,20 @@ test "LibExeObjStep.addBuildOption" {
|
||||||
exe.addBuildOption(?usize, "option2", null);
|
exe.addBuildOption(?usize, "option2", null);
|
||||||
exe.addBuildOption([]const u8, "string", "zigisthebest");
|
exe.addBuildOption([]const u8, "string", "zigisthebest");
|
||||||
exe.addBuildOption(?[]const u8, "optional_string", null);
|
exe.addBuildOption(?[]const u8, "optional_string", null);
|
||||||
|
exe.addBuildOption(std.SemanticVersion, "semantic_version", try std.SemanticVersion.parse("0.1.2-foo+bar"));
|
||||||
|
|
||||||
std.testing.expectEqualStrings(
|
std.testing.expectEqualStrings(
|
||||||
\\pub const option1: usize = 1;
|
\\pub const option1: usize = 1;
|
||||||
\\pub const option2: ?usize = null;
|
\\pub const option2: ?usize = null;
|
||||||
\\pub const string: []const u8 = "zigisthebest";
|
\\pub const string: []const u8 = "zigisthebest";
|
||||||
\\pub const optional_string: ?[]const u8 = null;
|
\\pub const optional_string: ?[]const u8 = null;
|
||||||
|
\\pub const semantic_version: @import("std").SemanticVersion = .{
|
||||||
|
\\ .major = 0,
|
||||||
|
\\ .minor = 1,
|
||||||
|
\\ .patch = 2,
|
||||||
|
\\ .pre = "foo",
|
||||||
|
\\ .build = "bar",
|
||||||
|
\\};
|
||||||
\\
|
\\
|
||||||
, exe.build_options_contents.items);
|
, exe.build_options_contents.items);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue