Makko, the people-oriented static site generator made for blogging.
forge.starlightnet.work/Team/Makko
ssg
static-site-generator
makko
starlight-network
1const std = @import("std");
2
3pub fn build(b: *std.Build) void {
4 const target = b.standardTargetOptions(.{});
5 const optimize = b.standardOptimizeOption(.{});
6
7 const exe_mod = b.createModule(.{
8 .root_source_file = b.path("src/main.zig"),
9 .target = target,
10 .optimize = optimize,
11 });
12
13 const exe = b.addExecutable(.{
14 .name = "makko",
15 .root_module = exe_mod,
16 });
17
18 const koino_pkg = b.dependency("koino", .{ .optimize = .ReleaseFast, .target = target });
19 exe.root_module.addImport("koino", koino_pkg.module("koino"));
20
21 const args_pkg = b.dependency("args", .{ .optimize = optimize, .target = target });
22 exe.root_module.addImport("args", args_pkg.module("args"));
23
24 const mustache_pkg = b.dependency("mustache", .{ .optimize = .ReleaseSmall, .target = target });
25 exe.root_module.addImport("mustache", mustache_pkg.module("mustache"));
26
27 const datetime_pkg = b.dependency("datetime", .{ .optimize = optimize, .target = target });
28 exe.root_module.addImport("datetime", datetime_pkg.module("datetime"));
29
30 const httpz_pkg = b.dependency("httpz", .{ .target = target, .optimize = optimize });
31 exe.root_module.addImport("httpz", httpz_pkg.module("httpz"));
32
33 const qrcode_pkg = b.dependency("qrcode", .{});
34 exe.root_module.addImport("qrcode", qrcode_pkg.module("qrcode"));
35
36 // todo: replace with something zig-based
37 const zigmon_pkg = b.dependency("zigmon", .{ .optimize = optimize, .target = target });
38 const zigmon_mod = zigmon_pkg.module("zigmon");
39 if (target.result.isDarwinLibC()) {
40 if (b.lazyDependency("xcode_frameworks", .{})) |dep| {
41 zigmon_mod.addSystemFrameworkPath(dep.path("Frameworks"));
42 zigmon_mod.addSystemIncludePath(dep.path("include"));
43 zigmon_mod.addLibraryPath(dep.path("lib"));
44 }
45 // TODO: push this to zigmon upstream
46 zigmon_mod.linkFramework("CoreFoundation", .{ .weak = true });
47 zigmon_mod.linkFramework("CoreServices", .{ .weak = true });
48 }
49 exe.root_module.addImport("zigmon", zigmon_mod);
50
51 const setup_mod = b.createModule(.{
52 .root_source_file = b.path("build.zig.zon"),
53 });
54 exe.root_module.addImport("build.zig.zon", setup_mod);
55
56 b.installArtifact(exe);
57
58 const run_cmd = b.addRunArtifact(exe);
59 run_cmd.step.dependOn(b.getInstallStep());
60
61 if (b.args) |args| {
62 run_cmd.addArgs(args);
63 }
64
65 const run_step = b.step("run", "Run the app");
66 run_step.dependOn(&run_cmd.step);
67}