Makko, the people-oriented static site generator made for blogging. forge.starlightnet.work/Team/Makko
ssg static-site-generator makko starlight-network
at main 2.5 kB view raw
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}