authorgravatar for marc@tiehu.isMarc Tiehuis <marc@tiehu.is> 2018-03-14 22:19:51+13:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-03-17 18:15:35-04:00
logbea9e9c7f8abc1e270dd2ea0065934b32627288c
tree629df4e8022ce510f9f6eced0ebc460fe7b60e86
parentbbad0fa411ba9e0fcabaae87892d3655dc450513

Add addIncludeDir to TestStep + fix build template

Closes #794.

2 files changed, 12 insertions(+), 1 deletions(-)

std/build.zig+11
...@@ -1627,6 +1627,7 @@ pub const TestStep = struct {...@@ -1627,6 +1627,7 @@ pub const TestStep = struct {
1627 filter: ?[]const u8,1627 filter: ?[]const u8,
1628 target: Target,1628 target: Target,
1629 exec_cmd_args: ?[]const ?[]const u8,1629 exec_cmd_args: ?[]const ?[]const u8,
1630 include_dirs: ArrayList([]const u8),
16301631
1631 pub fn init(builder: &Builder, root_src: []const u8) TestStep {1632 pub fn init(builder: &Builder, root_src: []const u8) TestStep {
1632 const step_name = builder.fmt("test {}", root_src);1633 const step_name = builder.fmt("test {}", root_src);
...@@ -1641,6 +1642,7 @@ pub const TestStep = struct {...@@ -1641,6 +1642,7 @@ pub const TestStep = struct {
1641 .link_libs = BufSet.init(builder.allocator),1642 .link_libs = BufSet.init(builder.allocator),
1642 .target = Target { .Native = {} },1643 .target = Target { .Native = {} },
1643 .exec_cmd_args = null,1644 .exec_cmd_args = null,
1645 .include_dirs = ArrayList([]const u8).init(builder.allocator),
1644 };1646 };
1645 }1647 }
16461648
...@@ -1648,6 +1650,10 @@ pub const TestStep = struct {...@@ -1648,6 +1650,10 @@ pub const TestStep = struct {
1648 self.verbose = value;1650 self.verbose = value;
1649 }1651 }
16501652
1653 pub fn addIncludeDir(self: &TestStep, path: []const u8) void {
1654 self.include_dirs.append(path) catch unreachable;
1655 }
1656
1651 pub fn setBuildMode(self: &TestStep, mode: builtin.Mode) void {1657 pub fn setBuildMode(self: &TestStep, mode: builtin.Mode) void {
1652 self.build_mode = mode;1658 self.build_mode = mode;
1653 }1659 }
...@@ -1746,6 +1752,11 @@ pub const TestStep = struct {...@@ -1746,6 +1752,11 @@ pub const TestStep = struct {
1746 }1752 }
1747 }1753 }
17481754
1755 for (self.include_dirs.toSliceConst()) |include_path| {
1756 try zig_args.append("-isystem");
1757 try zig_args.append(builder.pathFromRoot(include_path));
1758 }
1759
1749 for (builder.include_paths.toSliceConst()) |include_path| {1760 for (builder.include_paths.toSliceConst()) |include_path| {
1750 try zig_args.append("-isystem");1761 try zig_args.append("-isystem");
1751 try zig_args.append(builder.pathFromRoot(include_path));1762 try zig_args.append(builder.pathFromRoot(include_path));
std/special/build_file_template.zig+1-1
...@@ -1,6 +1,6 @@...@@ -1,6 +1,6 @@
1const Builder = @import("std").build.Builder;1const Builder = @import("std").build.Builder;
22
3pub fn build(b: &Builder) !void {3pub fn build(b: &Builder) void {
4 const mode = b.standardReleaseOptions();4 const mode = b.standardReleaseOptions();
5 const exe = b.addExecutable("YOUR_NAME_HERE", "src/main.zig");5 const exe = b.addExecutable("YOUR_NAME_HERE", "src/main.zig");
6 exe.setBuildMode(mode);6 exe.setBuildMode(mode);