1const std = @import("std");
2const deps = @import("./deps.zig");
3
4pub fn build(b: *std.Build) void {
5 const target = b.standardTargetOptions(.{});
6 const mode = b.option(std.builtin.OptimizeMode, "mode", "") orelse .Debug;
7 const disable_llvm = b.option(bool, "disable_llvm", "use the non-llvm zig codegen") orelse false;
8
9 const lib = b.addLibrary(.{
10 .linkage = .static,
11 .name = "icu",
12 .root_module = b.createModule(.{
13 .root_source_file = b.path("src/main.zig"),
14 .target = target,
15 .optimize = mode,
16 }),
17 });
18 deps.addAllTo(lib);
19 lib.use_llvm = !disable_llvm;
20 lib.use_lld = !disable_llvm;
21 b.installArtifact(lib);
22
23 // b.installDirectory(.{
24 // .source_dir = .{ .cwd_relative = deps.dirs._w3gat1zdicyt ++ "/icu4c/source/common/unicode" },
25 // .install_dir = .header,
26 // .install_subdir = "unicode",
27 // });
28
29 const tests = b.addTest(.{
30 .root_module = b.createModule(.{
31 .root_source_file = b.path("test.zig"),
32 .target = target,
33 .optimize = mode,
34 }),
35 });
36 deps.addAllTo(tests);
37 tests.use_llvm = !disable_llvm;
38 tests.use_lld = !disable_llvm;
39 b.getInstallStep().dependOn(&tests.step);
40
41 const test_step = b.step("test", "Run all library tests");
42 const tests_run = b.addRunArtifact(tests);
43 tests_run.setCwd(b.path("."));
44 tests_run.has_side_effects = true;
45 test_step.dependOn(&tests_run.step);
46}