58 lines
1.7 KiB
Zig
58 lines
1.7 KiB
Zig
const std = @import("std");
|
|
|
|
pub fn build(b: *std.Build) !void {
|
|
const target = b.standardTargetOptions(.{});
|
|
const optimize = b.standardOptimizeOption(.{});
|
|
|
|
const libusb_use_udev = b.option(
|
|
bool,
|
|
"libusb_use_udev",
|
|
"libusb: link and use udev (Linux only. Default: false)",
|
|
) orelse false;
|
|
|
|
const libusb_enable_logging = b.option(
|
|
bool,
|
|
"libusb_enable_logging",
|
|
"enable libusb's built-in logging (Default: false)",
|
|
) orelse false;
|
|
|
|
const libusb_enable_debug_logging = b.option(
|
|
bool,
|
|
"libusb_enable_debug_logging",
|
|
"enable libusb's debug logging (Default: false)",
|
|
) orelse false;
|
|
|
|
const liblabjackusb = b.addStaticLibrary(.{
|
|
.name = "labjackusb",
|
|
.target = target,
|
|
.optimize = optimize,
|
|
.link_libc = true,
|
|
});
|
|
|
|
if (optimize == .Debug) {
|
|
liblabjackusb.defineCMacro("LJ_DEBUG", "1");
|
|
}
|
|
|
|
liblabjackusb.addCSourceFile(.{ .file = b.path("liblabjackusb/labjackusb.c") });
|
|
liblabjackusb.installHeader(b.path("liblabjackusb/labjackusb.h"), "labjackusb.h");
|
|
|
|
// udev rules should be installed to /lib/udev/rules.d or /etc/udev/rules.d
|
|
// udevadm control --reload-rules
|
|
// /etc/init.d/udev-post reload
|
|
// udevstart
|
|
|
|
const usb_dep = b.dependency(
|
|
"usb",
|
|
.{
|
|
.target = target,
|
|
.optimize = optimize,
|
|
.use_udev = libusb_use_udev,
|
|
.enable_logging = libusb_enable_logging,
|
|
.enable_debug_logging = libusb_enable_debug_logging,
|
|
},
|
|
);
|
|
liblabjackusb.linkLibrary(usb_dep.artifact("usb"));
|
|
|
|
b.installArtifact(liblabjackusb);
|
|
}
|