From aa853255b34d910a731ef3f702b2b43abcccfa9a Mon Sep 17 00:00:00 2001 From: infirms Date: Fri, 13 Mar 2026 05:09:56 +0300 Subject: [PATCH] feat: update Zig to 0.15.2, fix termios in compiletime, since it's POSIX specific --- README.md | 2 +- build.zig.zon | 2 +- examples/echo.zig | 3 ++- src/serial.zig | 8 +++++++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 957b76d..1a177a1 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Library for configuring and listing serial ports. ## What version of Zig to use -Zig 0.15.1 +Zig 0.15.2 ## Example diff --git a/build.zig.zon b/build.zig.zon index a94b97e..1740cb9 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -1,7 +1,7 @@ .{ .name = .serial, .version = "0.0.1", - .minimum_zig_version = "0.15.1", + .minimum_zig_version = "0.15.2", .fingerprint = 0xd374c9dccc91873e, .paths = .{ "src", // all files in src directory diff --git a/examples/echo.zig b/examples/echo.zig index 40419a2..8d6f300 100644 --- a/examples/echo.zig +++ b/examples/echo.zig @@ -1,8 +1,9 @@ const std = @import("std"); +const builtin = @import("builtin"); const zig_serial = @import("serial"); pub fn main() !u8 { - const port_name = if (@import("builtin").os.tag == .windows) "\\\\.\\COM1" else "/dev/ttyUSB0"; + const port_name = if (builtin.os.tag == .windows) "\\\\.\\COM1" else "/dev/ttyUSB0"; var serial = std.fs.cwd().openFile(port_name, .{ .mode = .read_write }) catch |err| switch (err) { error.FileNotFound => { diff --git a/src/serial.zig b/src/serial.zig index e020d78..675b34e 100644 --- a/src/serial.zig +++ b/src/serial.zig @@ -1,6 +1,12 @@ const std = @import("std"); const builtin = @import("builtin"); -const c = @cImport(@cInclude("termios.h")); +// note: inf: POSIX specific +const c = switch (builtin.target.os.tag) { + .linux, .macos => @cImport({ + @cInclude("termios.h"); + }), + else => struct {}, +}; const Io = std.Io; pub fn list() !PortIterator {