From 4cf3bd63a22bd2f88c1f04cddac31aa19bc78a9d Mon Sep 17 00:00:00 2001 From: Chris Boesch Date: Wed, 15 Feb 2023 22:55:44 +0100 Subject: added the first C exercise --- build.zig | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'build.zig') diff --git a/build.zig b/build.zig index 930fc56..32ee69c 100644 --- a/build.zig +++ b/build.zig @@ -31,6 +31,10 @@ const Exercise = struct { /// We need to keep track of this, so we compile without the self hosted compiler @"async": bool = false, + /// This exercise makes use of C functions + /// We need to keep track of this, so we compile with libc + C: bool = false, + /// Returns the name of the main file with .zig stripped. pub fn baseName(self: Exercise) []const u8 { assert(std.mem.endsWith(u8, self.main_file, ".zig")); @@ -461,6 +465,11 @@ const exercises = [_]Exercise{ // .output = "ABCDEF", // .@"async" = true, // }, + .{ + .main_file = "093_hello_c.zig", + .output = "Hello C from Zig! - C result ist 17 chars", + .C = true, + }, .{ .main_file = "999_the_end.zig", .output = "\nThis is the end for now!\nWe hope you had fun and were able to learn a lot, so visit us again when the next exercises are available.", @@ -725,6 +734,11 @@ const ZiglingStep = struct { // zig_args.append("-fstage1") catch unreachable; // } + // Enable C support for exercises that use C functions + if (self.exercise.C) { + zig_args.append("-lc") catch unreachable; + } + if (builder.color != .auto) { zig_args.append("--color") catch unreachable; zig_args.append(@tagName(builder.color)) catch unreachable; -- cgit v1.2.3