git.lucas.co / cce-compositor
Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git

commit2810df621a94a3fb58611b705988a72eba25c06a
parentce5b553a4d
authorIsaac Freund <[email protected]>
date2026-04-19 10:29
build: switch to translate-c build step

 build.zig                     | 9 +++++++++
 river/InputDevice.zig         | 2 +-
 river/LibinputAccelConfig.zig | 2 +-
 river/LibinputConfig.zig      | 2 +-
 river/LibinputDevice.zig      | 2 +-
 river/PointerBinding.zig      | 2 +-
 river/Server.zig              | 1 -
 river/c.h                     | 6 ++++++
 river/c.zig                   | 8 --------
 river/main.zig                | 1 -
 10 files changed, 20 insertions(+), 15 deletions(-)

diff --git a/build.zig b/build.zig
index 17db013..6b06f31 100644
--- a/build.zig
+++ b/build.zig
@@ -149,6 +149,14 @@ pub fn build(b: *Build) !void {
     const flags = b.createModule(.{ .root_source_file = b.path("common/flags.zig") });
     const slotmap = b.createModule(.{ .root_source_file = b.path("common/slotmap.zig") });
 
+    const translate_c = b.addTranslateC(.{
+        .root_source_file = b.path("river/c.h"),
+        .target = target,
+        .optimize = optimize,
+    });
+    translate_c.linkSystemLibrary("libevdev", .{});
+    translate_c.linkSystemLibrary("libinput", .{});
+
     {
         const river = b.addExecutable(.{
             .name = "river",
@@ -176,6 +184,7 @@ pub fn build(b: *Build) !void {
         river.root_module.addImport("wlroots", wlroots);
         river.root_module.addImport("flags", flags);
         river.root_module.addImport("slotmap", slotmap);
+        river.root_module.addImport("c", translate_c.createModule());
 
         river.root_module.addCSourceFile(.{
             .file = b.path("river/wlroots_log_wrapper.c"),
diff --git a/river/InputDevice.zig b/river/InputDevice.zig
index 3b04875..060e595 100644
--- a/river/InputDevice.zig
+++ b/river/InputDevice.zig
@@ -10,7 +10,7 @@ const wlr = @import("wlroots");
 const wl = @import("wayland").server.wl;
 const river = @import("wayland").server.river;
 
-const c = @import("c.zig").c;
+const c = @import("c");
 const server = &@import("main.zig").server;
 const util = @import("util.zig");
 
diff --git a/river/LibinputAccelConfig.zig b/river/LibinputAccelConfig.zig
index ec1a182..2553572 100644
--- a/river/LibinputAccelConfig.zig
+++ b/river/LibinputAccelConfig.zig
@@ -9,7 +9,7 @@ const wayland = @import("wayland");
 const wl = wayland.server.wl;
 const river = wayland.server.river;
 
-const c = @import("c.zig").c;
+const c = @import("c");
 const server = &@import("main.zig").server;
 const util = @import("util.zig");
 
diff --git a/river/LibinputConfig.zig b/river/LibinputConfig.zig
index b194a3f..fb20a22 100644
--- a/river/LibinputConfig.zig
+++ b/river/LibinputConfig.zig
@@ -8,7 +8,7 @@ const assert = std.debug.assert;
 const wl = @import("wayland").server.wl;
 const river = @import("wayland").server.river;
 
-const c = @import("c.zig").c;
+const c = @import("c");
 const server = &@import("main.zig").server;
 
 const LibinputAccelConfig = @import("LibinputAccelConfig.zig");
diff --git a/river/LibinputDevice.zig b/river/LibinputDevice.zig
index c6d716d..183d7ee 100644
--- a/river/LibinputDevice.zig
+++ b/river/LibinputDevice.zig
@@ -10,7 +10,7 @@ const wlr = @import("wlroots");
 const wl = @import("wayland").server.wl;
 const river = @import("wayland").server.river;
 
-const c = @import("c.zig").c;
+const c = @import("c");
 const server = &@import("main.zig").server;
 const util = @import("util.zig");
 
diff --git a/river/PointerBinding.zig b/river/PointerBinding.zig
index d1d3d50..5a645ef 100644
--- a/river/PointerBinding.zig
+++ b/river/PointerBinding.zig
@@ -10,7 +10,7 @@ const wayland = @import("wayland");
 const wl = wayland.server.wl;
 const river = wayland.server.river;
 
-const c = @import("c.zig").c;
+const c = @import("c");
 const server = &@import("main.zig").server;
 const util = @import("util.zig");
 
diff --git a/river/Server.zig b/river/Server.zig
index 31f9a6d..9fb6846 100644
--- a/river/Server.zig
+++ b/river/Server.zig
@@ -13,7 +13,6 @@ const wayland = @import("wayland");
 const wl = wayland.server.wl;
 const wp = wayland.server.wp;
 
-const c = @import("c.zig").c;
 const util = @import("util.zig");
 
 const IdleInhibitManager = @import("IdleInhibitManager.zig");
diff --git a/river/c.h b/river/c.h
new file mode 100644
index 0000000..a13f2b0
--- /dev/null
+++ b/river/c.h
@@ -0,0 +1,6 @@
+// SPDX-FileCopyrightText: © 2020 The River Developers
+// SPDX-License-Identifier: GPL-3.0-only
+
+#include <linux/input-event-codes.h>
+#include <libevdev/libevdev.h>
+#include <libinput.h>
diff --git a/river/c.zig b/river/c.zig
deleted file mode 100644
index aead518..0000000
--- a/river/c.zig
+++ /dev/null
@@ -1,8 +0,0 @@
-// SPDX-FileCopyrightText: © 2020 The River Developers
-// SPDX-License-Identifier: GPL-3.0-only
-
-pub const c = @cImport({
-    @cInclude("linux/input-event-codes.h");
-    @cInclude("libevdev/libevdev.h");
-    @cInclude("libinput.h");
-});
diff --git a/river/main.zig b/river/main.zig
index 195fa06..9a55121 100644
--- a/river/main.zig
+++ b/river/main.zig
@@ -14,7 +14,6 @@ const builtin = @import("builtin");
 const wlr = @import("wlroots");
 const flags = @import("flags");
 
-const c = @import("c.zig").c;
 const util = @import("util.zig");
 const process = @import("process.zig");