aboutsummaryrefslogtreecommitdiff
path: root/build.zig
diff options
context:
space:
mode:
authorIsaac Freund <ifreund@ifreund.xyz>2021-03-22 13:16:24 +0100
committerIsaac Freund <ifreund@ifreund.xyz>2021-03-27 14:57:43 +0100
commite1048e6add215641c31a27a35f0a6439dfc4ff2a (patch)
tree8868ee52d0d00bc23f05c5e51026272222d8b941 /build.zig
parente6f11fc5d2e6c876839be0b684fcb82f2692503d (diff)
downloadriver-e1048e6add215641c31a27a35f0a6439dfc4ff2a.tar.gz
river-e1048e6add215641c31a27a35f0a6439dfc4ff2a.tar.xz
build: clean up install prefix/config path derivation
This could be cleaned up even further with https://github.com/ziglang/zig/pull/8329
Diffstat (limited to 'build.zig')
-rw-r--r--build.zig23
1 files changed, 10 insertions, 13 deletions
diff --git a/build.zig b/build.zig
index 785c647..33a7f8a 100644
--- a/build.zig
+++ b/build.zig
@@ -1,5 +1,7 @@
const std = @import("std");
+const assert = std.debug.assert;
const fs = std.fs;
+const mem = std.mem;
const zbs = std.build;
const ScanProtocolsStep = @import("deps/zig-wayland/build.zig").ScanProtocolsStep;
@@ -46,20 +48,15 @@ pub fn build(b: *zbs.Builder) !void {
const examples = b.option(bool, "examples", "Set to true to build examples") orelse false;
- const rel_config_path = blk: {
- if (b.install_prefix) |prefix| {
- if (std.mem.eql(u8, try fs.path.resolve(b.allocator, &[_][]const u8{prefix}), "/usr")) {
- break :blk "../etc/river/init";
- }
- }
- break :blk "etc/river/init";
- };
+ // This logic must match std.build.resolveInstallPrefix()
+ const prefix = b.install_prefix orelse if (b.dest_dir) |_| "/usr" else b.cache_root;
+ const rel_config_path = if (mem.eql(u8, try fs.path.resolve(b.allocator, &[_][]const u8{prefix}), "/usr"))
+ "../etc/river/init"
+ else
+ "etc/river/init";
b.installFile("example/init", rel_config_path);
- const abs_config_path = try fs.path.resolve(b.allocator, &[_][]const u8{
- // This logic must match std.build.resolveInstallPrefix()
- b.install_prefix orelse if (b.dest_dir) |_| "/usr" else b.cache_root,
- rel_config_path,
- });
+ const abs_config_path = try fs.path.resolve(b.allocator, &[_][]const u8{ prefix, rel_config_path });
+ assert(fs.path.isAbsolute(abs_config_path));
const scanner = ScanProtocolsStep.create(b);
scanner.addSystemProtocol("stable/xdg-shell/xdg-shell.xml");