summaryrefslogtreecommitdiff
path: root/build.zig
diff options
context:
space:
mode:
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);