this repo has no description
1const std = @import("std");
2const zine = @import("zine");
3
4pub fn build(b: *std.Build) !void {
5 // Workaround for Zine's early return bug on macOS due to lazy dependencies
6 const zine_dep = b.dependencyFromBuildZig(zine, .{});
7 if (zine_dep.builder.install_tls.step.dependencies.items.len == 0) {
8 return;
9 }
10
11 const compile_stylesheet = b.step("stylesheet", "Compile stylesheet from scss files");
12 compile_stylesheet.result_cached = false;
13 std.debug.assert(try compile_stylesheet.addDirectoryWatchInput(b.path("style")));
14
15 const compile_stylesheet_cmd_out = b.run(&.{
16 "sass",
17 "--no-source-map",
18 "--no-color",
19 "--load-path=./style",
20 "./style/index.scss",
21 });
22 const compile_stylesheet_cmd = b.addWriteFile("altagos.css", compile_stylesheet_cmd_out);
23 const install_stylesheet = b.addInstallDirectory(.{
24 .source_dir = compile_stylesheet_cmd.getDirectory(),
25 .install_dir = .prefix,
26 .install_subdir = "style",
27 });
28 install_stylesheet.step.dependOn(&compile_stylesheet_cmd.step);
29
30 const stylesheet = zine.BuildAsset{
31 .name = "altagos.css",
32 .lp = b.path("zig-out/style/altagos.css"),
33 .install_path = "altagos.css",
34 .install_always = true,
35 };
36 compile_stylesheet.dependOn(&install_stylesheet.step);
37
38 const website = zine.website(b, .{
39 .output_path = "website",
40 .build_assets = &.{stylesheet},
41 .force = true,
42 });
43 website.step.dependOn(compile_stylesheet);
44 b.getInstallStep().dependOn(&website.step);
45
46 const serve = b.step("serve", "Start the Zine dev server");
47 const run_zine = zine.serve(b, .{
48 .build_assets = &.{stylesheet},
49 });
50 run_zine.step.dependOn(&install_stylesheet.step);
51
52 if (b.args) |args| {
53 run_zine.addArgs(args);
54 }
55
56 serve.dependOn(&run_zine.step);
57}