| ... | ... | @@ -171,6 +171,69 @@ pub fn execute(self_name: []const u8, args: [][:0]u8) !void { |
| 171 | 171 | try w.writeAll("zigmod.* text eol=lf\n"); |
| 172 | 172 | } |
| 173 | 173 | } |
| 174 | |
| 175 | // ask about build.zig |
| 176 | if (!try extras.doesFileExist(null, "build.zig")) { |
| 177 | const do = try inquirer.forConfirm(stdout, stdin, "It looks like there's no build.zig. Do you want Zigmod to generate one for you?", gpa); |
| 178 | if (do) { |
| 179 | const file = try cwd.createFile("build.zig", .{}); |
| 180 | defer file.close(); |
| 181 | const w = file.writer(); |
| 182 | switch (ptype) { |
| 183 | .exe => { |
| 184 | try w.writeAll( |
| 185 | \\const std = @import("std"); |
| 186 | \\const deps = @import("./deps.zig"); |
| 187 | \\ |
| 188 | \\pub fn build(b: *std.Build) void { |
| 189 | \\ const target = b.standardTargetOptions(.{}); |
| 190 | \\ const mode = b.option(std.builtin.Mode, "mode", "") orelse .Debug; |
| 191 | \\ |
| 192 | \\ const exe = b.addExecutable(.{ |
| 193 | \\ .root_source_file = b.path("main.zig"), |
| 194 | \\ .target = target, |
| 195 | \\ .optimize = mode, |
| 196 | \\ }); |
| 197 | \\ deps.addAllTo(tests); |
| 198 | \\ b.installArtifact(exe); |
| 199 | \\ |
| 200 | \\ const run_step = b.step("run", "Run the app"); |
| 201 | \\ const run_cmd = b.addRunArtifact(exe); |
| 202 | \\ run_cmd.step.dependOn(b.getInstallStep()); |
| 203 | \\ if (b.args) |args| run_cmd.addArgs(args); |
| 204 | \\ run_step.dependOn(&run_cmd.step); |
| 205 | \\} |
| 206 | \\ |
| 207 | ); |
| 208 | }, |
| 209 | .lib => { |
| 210 | try w.writeAll( |
| 211 | \\const std = @import("std"); |
| 212 | \\const deps = @import("./deps.zig"); |
| 213 | \\ |
| 214 | \\pub fn build(b: *std.Build) void { |
| 215 | \\ const target = b.standardTargetOptions(.{}); |
| 216 | \\ const mode = b.option(std.builtin.Mode, "mode", "") orelse .Debug; |
| 217 | \\ |
| 218 | \\ const tests = b.addTest(.{ |
| 219 | \\ .root_source_file = b.path("test.zig"), |
| 220 | \\ .target = target, |
| 221 | \\ .optimize = mode, |
| 222 | \\ }); |
| 223 | \\ deps.addAllTo(tests); |
| 224 | \\ |
| 225 | \\ const test_step = b.step("test", "Run all library tests"); |
| 226 | \\ const tests_run = b.addRunArtifact(tests); |
| 227 | \\ tests_run.setCwd(b.path(".")); |
| 228 | \\ tests_run.has_side_effects = true; |
| 229 | \\ test_step.dependOn(&tests_run.step); |
| 230 | \\} |
| 231 | \\ |
| 232 | ); |
| 233 | }, |
| 234 | } |
| 235 | } |
| 236 | } |
| 174 | 237 | } |
| 175 | 238 | |
| 176 | 239 | pub fn writeExeManifest(w: std.fs.File.Writer, id: string, name: string, license: ?string, description: ?string) !void { |