summaryrefslogtreecommitdiff
path: root/build.zig
diff options
context:
space:
mode:
authorNic Gaffney <gaffney_nic@protonmail.com>2024-08-06 02:24:04 -0500
committerNic Gaffney <gaffney_nic@protonmail.com>2024-08-06 02:24:04 -0500
commit6a7467264b506e5812b2d9a8cd55fa307f2b5a10 (patch)
tree97c136f9f65a575d940f647b7c2130b3454fa88d /build.zig
parentf8542ab4c65d64e7713063460d750901e7b0362d (diff)
downloadcalico-6a7467264b506e5812b2d9a8cd55fa307f2b5a10.tar.gz
ok so i messed up
Diffstat (limited to 'build.zig')
-rw-r--r--build.zig23
1 files changed, 22 insertions, 1 deletions
diff --git a/build.zig b/build.zig
index 809f140..4aacbf2 100644
--- a/build.zig
+++ b/build.zig
@@ -1,6 +1,6 @@
const std = @import("std");
-pub fn build(b: *std.Build) void {
+pub fn build(b: *std.Build) !void {
const target = b.standardTargetOptions(.{});
const optimize = b.standardOptimizeOption(.{});
@@ -12,8 +12,27 @@ pub fn build(b: *std.Build) void {
.optimize = optimize,
});
+ const lib = b.addStaticLibrary(.{
+ .name = "llvm",
+ .root_source_file = b.path("lib/llvm-zig/src/llvm.zig"),
+ .target = target,
+ .optimize = optimize,
+ });
+ lib.defineCMacro("_FILE_OFFSET_BITS", "64");
+ lib.defineCMacro("__STDC_CONSTANT_MACROS", null);
+ lib.defineCMacro("__STDC_FORMAT_MACROS", null);
+ lib.defineCMacro("__STDC_LIMIT_MACROS", null);
+ lib.linkSystemLibrary("z");
+ lib.linkLibC();
+ lib.linkSystemLibrary("LLVM-17");
+
b.installArtifact(exe);
+ b.installArtifact(lib);
+
+ _ = try b.modules.put("llvm", &lib.root_module);
+ exe.root_module.addImport("llvm", b.modules.get("llvm").?);
+
const run_cmd = b.addRunArtifact(exe);
run_cmd.step.dependOn(b.getInstallStep());
@@ -49,6 +68,8 @@ pub fn build(b: *std.Build) void {
.optimize = optimize,
});
+ codegen_unit_tests.root_module.addImport("llvm", &lib.root_module);
+
const run_exe_unit_tests = b.addRunArtifact(exe_unit_tests);
const run_token_unit_tests = b.addRunArtifact(token_unit_tests);
const run_parse_unit_tests = b.addRunArtifact(parse_unit_tests);