tricu

An interpreted language for exploring Tree Calculus
Log | Files | Refs | README | LICENSE

build.zig (2209B)


      1 const std = @import("std");
      2 
      3 pub fn build(b: *std.Build) void {
      4     const target = b.standardTargetOptions(.{});
      5     const optimize = b.standardOptimizeOption(.{});
      6 
      7     // -- kernel generator tool (runs on build host) --
      8     const gen_kernel_mod = b.createModule(.{
      9         .root_source_file = b.path("tools/gen_kernel.zig"),
     10         .target = b.graph.host,
     11         .optimize = .ReleaseSafe,
     12     });
     13     const gen_kernel = b.addExecutable(.{
     14         .name = "gen_kernel",
     15         .root_module = gen_kernel_mod,
     16     });
     17 
     18     const run_gen_kernel = b.addRunArtifact(gen_kernel);
     19     run_gen_kernel.addFileArg(b.path("kernel_run_arboricx_typed.dag"));
     20     const kernel_embed = run_gen_kernel.addOutputFileArg("kernel_embed.zig");
     21 
     22     // -- kernel module shared by exe and lib --
     23     const kernel_mod = b.createModule(.{
     24         .root_source_file = kernel_embed,
     25     });
     26 
     27     // -- main CLI executable --
     28     const exe_mod = b.createModule(.{
     29         .root_source_file = b.path("src/main.zig"),
     30         .target = target,
     31         .optimize = optimize,
     32     });
     33     exe_mod.addImport("kernel_embed", kernel_mod);
     34     exe_mod.link_libc = true;
     35     exe_mod.linkSystemLibrary("uv", .{});
     36     const exe = b.addExecutable(.{
     37         .name = "tricu-zig",
     38         .root_module = exe_mod,
     39     });
     40     b.installArtifact(exe);
     41 
     42     const run_cmd = b.addRunArtifact(exe);
     43     run_cmd.step.dependOn(b.getInstallStep());
     44     const run_step = b.step("run", "Run tricu-zig");
     45     run_step.dependOn(&run_cmd.step);
     46 
     47     // -- C ABI static library --
     48     const lib_mod = b.createModule(.{
     49         .root_source_file = b.path("src/c_abi.zig"),
     50         .target = target,
     51         .optimize = optimize,
     52     });
     53     lib_mod.pic = true;
     54     lib_mod.addImport("kernel_embed", kernel_mod);
     55     lib_mod.link_libc = true;
     56     lib_mod.linkSystemLibrary("uv", .{});
     57     const static_lib = b.addLibrary(.{
     58         .name = "arboricx",
     59         .root_module = lib_mod,
     60     });
     61     b.installArtifact(static_lib);
     62 
     63     // -- C ABI shared library (for dynamic language FFI) --
     64     const shared_lib = b.addLibrary(.{
     65         .name = "arboricx",
     66         .root_module = lib_mod,
     67         .linkage = .dynamic,
     68     });
     69     b.installArtifact(shared_lib);
     70 
     71 }