const std = @import("std"); pub fn build(b: *std.Build) !void { const target = b.standardTargetOptions(.{}); const optimize = b.standardOptimizeOption(.{}); _ = b.addModule("flecs-zig-ble", .{ .root_source_file = .{ .path = "src/main.zig" }, }); const lib = b.addStaticLibrary(.{ .name = "flecs-zig-ble", .root_source_file = .{ .path = "src/main.zig" }, .target = target, .optimize = optimize, }); setupFlecs(lib); lib.installHeader("libs/flecs/flecs.h", "flecs.h"); b.installArtifact(lib); const main_tests = b.addTest(.{ .root_source_file = .{ .path = "src/main.zig" }, .target = target, .optimize = optimize, }); setupFlecs(main_tests); const run_main_tests = b.addRunArtifact(main_tests); const test_step = b.step("test", "Run library tests"); test_step.dependOn(&run_main_tests.step); } fn setupFlecs(step: *std.Build.Step.Compile) void { step.linkLibC(); step.addIncludePath(.{ .path = "libs/flecs" }); step.addCSourceFile(.{ .file = .{ .path = "libs/flecs/flecs.c" }, .flags = &.{"-fno-sanitize=undefined"}, }); if (step.rootModuleTarget().os.tag == .windows) { step.linkSystemLibrary("ws2_32"); } }