Something went wrong. Try again.
This repository has no description
Something went wrong. Try again.
libudev-zero-rs build.zig
3.3 kB · 108 lines
Zig
at zig
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109const std = @import("std");
pub fn build(b: *std.Build) void { const target = b.standardTargetOptions(.{}); const optimize = b.standardOptimizeOption(.{}); const usb_ids_path = b.option( []const u8, "usb-ids-path", "Path to the usb.ids hardware database", ) orelse "/usr/local/share/hwdata/usb.ids";
if (target.result.os.tag != .linux) { @panic("libudev is only supported on Linux"); }
const ffi_mod = b.createModule(.{ .root_source_file = b.path("src/ffi.zig"), .target = target, .optimize = optimize, .link_libc = true, }); ffi_mod.addIncludePath(b.path("include"));
const mod = b.addModule("libudev_zero_zig", .{ .root_source_file = b.path("src/root.zig"), .target = target, .optimize = optimize, .link_libc = true, }); const build_options = b.addOptions(); build_options.addOption([]const u8, "USB_IDS_PATH", usb_ids_path); mod.addOptions("build_options", build_options); mod.addIncludePath(b.path("include")); mod.addImport("ffi", ffi_mod);
const list_mod = b.createModule(.{ .root_source_file = b.path("src/list.zig"), .target = target, .optimize = optimize, .link_libc = true, }); list_mod.addIncludePath(b.path("include")); list_mod.addImport("ffi", ffi_mod); mod.addImport("list", list_mod);
const device_mod = b.createModule(.{ .root_source_file = b.path("src/device.zig"), .target = target, .optimize = optimize, .link_libc = true, }); device_mod.addIncludePath(b.path("include")); device_mod.addImport("ffi", ffi_mod); device_mod.addImport("list", list_mod); mod.addImport("device", device_mod);
const enumerate_mod = b.createModule(.{ .root_source_file = b.path("src/enumerate.zig"), .target = target, .optimize = optimize, .link_libc = true, }); enumerate_mod.addIncludePath(b.path("include")); enumerate_mod.addImport("ffi", ffi_mod); enumerate_mod.addImport("list", list_mod); mod.addImport("enumerate", enumerate_mod);
const monitor_mod = b.createModule(.{ .root_source_file = b.path("src/monitor.zig"), .target = target, .optimize = optimize, .link_libc = true, }); monitor_mod.addIncludePath(b.path("include")); monitor_mod.addImport("ffi", ffi_mod); monitor_mod.addImport("list", list_mod); mod.addImport("monitor", monitor_mod);
const lib = b.addLibrary(.{ .name = "udev", .linkage = .dynamic, .version = .{ .major = 1, .minor = 0, .patch = 0, }, .root_module = mod, }); lib.setVersionScript(b.path("libudev.sym")); lib.installHeader(b.path("include/udev.h"), "libudev.h"); b.installArtifact(lib);
const install_pkg_config = b.addInstallFileWithDir( b.path("libudev.pc"), .lib, "pkgconfig/libudev.pc", ); b.getInstallStep().dependOn(&install_pkg_config.step);
const mod_tests = b.addTest(.{ .root_module = mod, });
const run_mod_tests = b.addRunArtifact(mod_tests);
const test_step = b.step("test", "Run tests"); test_step.dependOn(&run_mod_tests.step);}