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.
63 lines
1.9 KiB
63 lines
1.9 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, |
|
}); |
|
|
|
lib.linkLibC(); |
|
lib.addIncludePath(.{ .path = thisDir() ++ "/flecs" }); |
|
lib.addCSourceFile(.{ |
|
.file = .{ .path = thisDir() ++ "/flecs/flecs.c" }, |
|
.flags = &.{"-fno-sanitize=undefined"}, |
|
}); |
|
lib.defineCMacro("FLECS_NO_CPP", null); |
|
lib.defineCMacro("FLECS_USE_OS_ALLOC", null); |
|
if (@import("builtin").mode == .Debug) |
|
lib.defineCMacro("FLECS_SANITIZE", null); |
|
|
|
if (lib.target.isWindows()) |
|
lib.linkSystemLibraryName("ws2_32"); |
|
|
|
b.installArtifact(lib); |
|
|
|
const main_tests = b.addTest(.{ |
|
.root_source_file = .{ .path = "src/main.zig" }, |
|
.target = target, |
|
.optimize = optimize, |
|
}); |
|
|
|
main_tests.linkLibC(); |
|
main_tests.addIncludePath(.{ .path = thisDir() ++ "/flecs" }); |
|
main_tests.addCSourceFile(.{ |
|
.file = .{ .path = thisDir() ++ "/flecs/flecs.c" }, |
|
.flags = &.{"-fno-sanitize=undefined"}, |
|
}); |
|
main_tests.defineCMacro("FLECS_NO_CPP", null); |
|
main_tests.defineCMacro("FLECS_USE_OS_ALLOC", null); |
|
main_tests.defineCMacro("FLECS_SANITIZE", null); |
|
|
|
if (main_tests.target.isWindows()) |
|
main_tests.linkSystemLibraryName("ws2_32"); |
|
|
|
const run_main_tests = b.addRunArtifact(main_tests); |
|
|
|
const test_step = b.step("test", "Run library tests"); |
|
test_step.dependOn(&run_main_tests.step); |
|
} |
|
|
|
inline fn thisDir() []const u8 { |
|
return comptime std.fs.path.dirname(@src().file) orelse "."; |
|
}
|
|
|