stevee

My wayland statusbar
git clone git://gtms.dev/stevee
Log | Files | Refs | README | LICENSE

build.zig (2306B)


      1 const std = @import("std");
      2 
      3 const Scanner = @import("wayland").Scanner;
      4 
      5 pub fn build(b: *std.Build) void {
      6     const target = b.standardTargetOptions(.{});
      7     const optimize = b.standardOptimizeOption(.{});
      8 
      9     const exe = b.addExecutable(.{
     10         .name = "stevee",
     11         .root_source_file = b.path("src/main.zig"),
     12         .target = target,
     13         .optimize = optimize,
     14     });
     15 
     16     const scanner = Scanner.create(b, .{});
     17     const wayland = b.createModule(.{ .root_source_file = scanner.result });
     18 
     19     scanner.addSystemProtocol("stable/xdg-shell/xdg-shell.xml");
     20     scanner.addSystemProtocol("stable/viewporter/viewporter.xml");
     21     scanner.addSystemProtocol("staging/single-pixel-buffer/single-pixel-buffer-v1.xml");
     22     scanner.addCustomProtocol(b.path("protocol/wlr-layer-shell-unstable-v1.xml"));
     23     scanner.addCustomProtocol(b.path("protocol/river-status-unstable-v1.xml"));
     24     scanner.addCustomProtocol(b.path("protocol/river-control-unstable-v1.xml"));
     25 
     26     scanner.generate("wl_compositor", 4);
     27     scanner.generate("wl_subcompositor", 1);
     28     scanner.generate("wl_shm", 1);
     29     scanner.generate("wl_output", 3);
     30     scanner.generate("wl_seat", 5);
     31     scanner.generate("wp_single_pixel_buffer_manager_v1", 1);
     32     scanner.generate("wp_viewporter", 1);
     33     scanner.generate("zwlr_layer_shell_v1", 1);
     34     scanner.generate("zriver_status_manager_v1", 1);
     35     scanner.generate("zriver_control_v1", 1);
     36 
     37     const pixman = b.dependency("pixman", .{});
     38     const fcft = b.dependency("fcft", .{});
     39     const udev = b.dependency("udev", .{});
     40 
     41     exe.root_module.addImport("pixman", pixman.module("pixman"));
     42     exe.root_module.addImport("fcft", fcft.module("fcft"));
     43     exe.root_module.addImport("udev", udev.module("udev"));
     44     exe.root_module.addImport("wayland", wayland);
     45 
     46     exe.linkLibC();
     47     exe.linkSystemLibrary("fcft");
     48     exe.linkSystemLibrary("libudev");
     49     exe.linkSystemLibrary("pixman-1");
     50     exe.linkSystemLibrary("libpulse");
     51     exe.linkSystemLibrary("wayland-client");
     52 
     53     // exe.addCSourceFile(exe);
     54 
     55     b.installArtifact(exe);
     56 
     57     const run = b.addRunArtifact(exe);
     58     run.step.dependOn(b.getInstallStep());
     59     if (b.args) |args| {
     60         run.addArgs(args);
     61     }
     62 
     63     const run_step = b.step("run", "Run stevee");
     64     run_step.dependOn(&run.step);
     65 }