The only pthread functionality this seems to use is mutexes, which are (fortunately) theoretically trivial to wrap for windows. This compiles, though it is not clear if it actually works correctly.
35 lines
986 B
Zig
35 lines
986 B
Zig
const std = @import("std");
|
|
|
|
pub fn build(b: *std.Build) !void {
|
|
const target = b.standardTargetOptions(.{});
|
|
const optimize = b.standardOptimizeOption(.{});
|
|
|
|
const use_udev = b.option(
|
|
bool,
|
|
"use_udev",
|
|
"link and use udev (Linux only. Default: false)",
|
|
) orelse false;
|
|
|
|
const libljacklm = b.addStaticLibrary(.{
|
|
.name = "ljacklm",
|
|
.target = target,
|
|
.optimize = optimize,
|
|
.link_libc = true,
|
|
});
|
|
|
|
if (target.result.os.tag == .windows) {
|
|
libljacklm.defineCMacro("LJACKLM_USE_WINDOWS_MUTEX_SHIM", "1");
|
|
}
|
|
|
|
libljacklm.addCSourceFile(.{ .file = b.path("libljacklm/ljacklm.c") });
|
|
libljacklm.installHeader(b.path("libljacklm/ljacklm.h"), "ljacklm.h");
|
|
|
|
const usb_dep = b.dependency(
|
|
"labjackusb",
|
|
.{ .target = target, .optimize = optimize, .use_udev = use_udev },
|
|
);
|
|
libljacklm.linkLibrary(usb_dep.artifact("labjackusb"));
|
|
|
|
b.installArtifact(libljacklm);
|
|
}
|