diff options
| author | Isaac Freund <ifreund@ifreund.xyz> | 2021-03-22 13:16:24 +0100 |
|---|---|---|
| committer | Isaac Freund <ifreund@ifreund.xyz> | 2021-03-27 14:57:43 +0100 |
| commit | e1048e6add215641c31a27a35f0a6439dfc4ff2a (patch) | |
| tree | 8868ee52d0d00bc23f05c5e51026272222d8b941 /build.zig | |
| parent | e6f11fc5d2e6c876839be0b684fcb82f2692503d (diff) | |
| download | river-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.zig | 23 |
1 files changed, 10 insertions, 13 deletions
@@ -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"); |
