add a build option to disable LLVM

This commit is contained in:
Emil Lerch 2024-12-19 08:43:25 -08:00
parent debb4dab60
commit 88d7e99d6b
Signed by: lobo
GPG Key ID: A7B62D657EF764F8

View File

@ -29,6 +29,12 @@ pub fn build(b: *Builder) !void {
// between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall. // between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall.
const optimize = b.standardOptimizeOption(.{}); const optimize = b.standardOptimizeOption(.{});
const no_llvm = b.option(
bool,
"no-llvm",
"Disable LLVM",
) orelse false;
const broken_windows = b.option( const broken_windows = b.option(
bool, bool,
"broken-windows", "broken-windows",
@ -52,6 +58,7 @@ pub fn build(b: *Builder) !void {
.target = target, .target = target,
.optimize = optimize, .optimize = optimize,
}); });
exe.use_llvm = !no_llvm;
const smithy_dep = b.dependency("smithy", .{ const smithy_dep = b.dependency("smithy", .{
// These are the arguments to the dependency. It expects a target and optimization level. // These are the arguments to the dependency. It expects a target and optimization level.
.target = target, .target = target,
@ -103,6 +110,7 @@ pub fn build(b: *Builder) !void {
.target = b.host, .target = b.host,
.optimize = if (b.verbose) .Debug else .ReleaseSafe, .optimize = if (b.verbose) .Debug else .ReleaseSafe,
}); });
cg_exe.use_llvm = !no_llvm;
cg_exe.root_module.addImport("smithy", smithy_dep.module("smithy")); cg_exe.root_module.addImport("smithy", smithy_dep.module("smithy"));
var cg_cmd = b.addRunArtifact(cg_exe); var cg_cmd = b.addRunArtifact(cg_exe);
cg_cmd.addArg("--models"); cg_cmd.addArg("--models");
@ -179,6 +187,7 @@ pub fn build(b: *Builder) !void {
}); });
unit_tests.root_module.addImport("smithy", smithy_dep.module("smithy")); unit_tests.root_module.addImport("smithy", smithy_dep.module("smithy"));
unit_tests.step.dependOn(gen_step); unit_tests.step.dependOn(gen_step);
unit_tests.use_llvm = !no_llvm;
const run_unit_tests = b.addRunArtifact(unit_tests); const run_unit_tests = b.addRunArtifact(unit_tests);
run_unit_tests.skip_foreign_checks = true; run_unit_tests.skip_foreign_checks = true;
@ -200,6 +209,7 @@ pub fn build(b: *Builder) !void {
.target = target, .target = target,
.optimize = optimize, .optimize = optimize,
}); });
smoke_test.use_llvm = !no_llvm;
smoke_test.root_module.addImport("smithy", smithy_dep.module("smithy")); smoke_test.root_module.addImport("smithy", smithy_dep.module("smithy"));
smoke_test.step.dependOn(gen_step); smoke_test.step.dependOn(gen_step);