You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.5 KiB
47 lines
1.5 KiB
const std = @import("std"); |
|
|
|
pub fn build(b: *std.Build) !void { |
|
const target = b.standardTargetOptions(.{}); |
|
const optimize = b.standardOptimizeOption(.{}); |
|
|
|
const module = b.createModule(.{ |
|
.source_file = .{ .path = "src/main.zig" }, |
|
}); |
|
try b.modules.put(b.dupe("flecs-zig-ble"), module); |
|
|
|
const lib = b.addStaticLibrary(.{ |
|
.name = "flecs-zig-ble", |
|
.root_source_file = .{ .path = "src/main.zig" }, |
|
.target = target, |
|
.optimize = optimize, |
|
}); |
|
setupFlecs(lib); |
|
b.installArtifact(lib); |
|
|
|
const main_tests = b.addTest(.{ |
|
.root_source_file = .{ .path = "tests/main.zig" }, |
|
// Has to be specified so tests can run autodoc tests from src/. |
|
.main_pkg_path = .{ .path = "." }, |
|
.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.CompileStep) void { |
|
step.linkLibC(); |
|
step.addIncludePath(.{ .path = "libs/flecs" }); |
|
step.addCSourceFile(.{ |
|
.file = .{ .path = "libs/flecs/flecs.c" }, |
|
.flags = &.{"-fno-sanitize=undefined"}, |
|
}); |
|
step.defineCMacro("FLECS_NO_CPP", null); |
|
step.defineCMacro("FLECS_USE_OS_ALLOC", null); |
|
if (@import("builtin").mode == .Debug) |
|
step.defineCMacro("FLECS_SANITIZE", null); |
|
if (step.target.isWindows()) |
|
step.linkSystemLibraryName("ws2_32"); |
|
}
|
|
|