57 lines
1.6 KiB
Zig
57 lines
1.6 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 libljacklm = b.addStaticLibrary(.{
|
|
.name = "ljacklm",
|
|
.target = target,
|
|
.optimize = optimize,
|
|
.link_libc = true,
|
|
});
|
|
|
|
if (optimize == .Debug) {
|
|
libljacklm.defineCMacro("LJ_DEBUG", "1");
|
|
}
|
|
|
|
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,
|
|
.libusb_use_udev = libusb_use_udev,
|
|
.libusb_enable_logging = libusb_enable_logging,
|
|
.libusb_enable_debug_logging = libusb_enable_debug_logging,
|
|
},
|
|
);
|
|
libljacklm.linkLibrary(usb_dep.artifact("labjackusb"));
|
|
|
|
b.installArtifact(libljacklm);
|
|
}
|