torque 4777d04594
build: disable libusb logging by default
It is quite verbose and not very useful.
2024-07-15 17:55:31 -07:00

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);
}