mirror of
https://github.com/roc-lang/roc.git
synced 2025-12-23 08:48:03 +00:00
92 lines
4.3 KiB
Zig
92 lines
4.3 KiB
Zig
const std = @import("std");
|
|
const Build = std.Build;
|
|
const Module = Build.Module;
|
|
const Step = Build.Step;
|
|
|
|
pub const RocModules = struct {
|
|
serialization: *Module,
|
|
collections: *Module,
|
|
base: *Module,
|
|
types: *Module,
|
|
builtins: *Module,
|
|
compile: *Module,
|
|
reporting: *Module,
|
|
parse: *Module,
|
|
tracy: *Module,
|
|
build_options: *Module,
|
|
|
|
pub fn create(b: *Build, build_options_step: *Step.Options) RocModules {
|
|
const self = RocModules{
|
|
.serialization = b.addModule("serialization", .{ .root_source_file = b.path("src/serialization/mod.zig") }),
|
|
.collections = b.addModule("collections", .{ .root_source_file = b.path("src/collections/mod.zig") }),
|
|
.base = b.addModule("base", .{ .root_source_file = b.path("src/base/mod.zig") }),
|
|
.types = b.addModule("types", .{ .root_source_file = b.path("src/types/mod.zig") }),
|
|
.builtins = b.addModule("builtins", .{ .root_source_file = b.path("src/builtins/mod.zig") }),
|
|
.compile = b.addModule("compile", .{ .root_source_file = b.path("src/compile/mod.zig") }),
|
|
.reporting = b.addModule("reporting", .{ .root_source_file = b.path("src/reporting/mod.zig") }),
|
|
.parse = b.addModule("parse", .{ .root_source_file = b.path("src/parse/mod.zig") }),
|
|
.tracy = b.addModule("tracy", .{ .root_source_file = b.path("src/tracy.zig") }),
|
|
.build_options = b.addModule("build_options", .{ .root_source_file = build_options_step.getOutput() }),
|
|
};
|
|
|
|
self.tracy.addImport("build_options", self.build_options);
|
|
|
|
self.collections.addImport("serialization", self.serialization);
|
|
|
|
self.base.addImport("serialization", self.serialization);
|
|
self.base.addImport("collections", self.collections);
|
|
self.base.addImport("types", self.types);
|
|
|
|
self.types.addImport("serialization", self.serialization);
|
|
self.types.addImport("base", self.base);
|
|
self.types.addImport("collections", self.collections);
|
|
self.types.addImport("compile", self.compile);
|
|
|
|
self.compile.addImport("base", self.base);
|
|
self.compile.addImport("compile", self.compile);
|
|
self.compile.addImport("collections", self.collections);
|
|
self.compile.addImport("types", self.types);
|
|
self.compile.addImport("builtins", self.builtins);
|
|
self.compile.addImport("reporting", self.reporting);
|
|
|
|
self.reporting.addImport("reporting", self.reporting);
|
|
self.reporting.addImport("base", self.base);
|
|
|
|
self.parse.addImport("parse", self.parse);
|
|
self.parse.addImport("base", self.base);
|
|
self.parse.addImport("compile", self.compile);
|
|
self.parse.addImport("collections", self.collections);
|
|
self.parse.addImport("tracy", self.tracy);
|
|
self.parse.addImport("reporting", self.reporting);
|
|
|
|
self.tracy.addImport("builtins", self.builtins);
|
|
|
|
return self;
|
|
}
|
|
|
|
pub fn addAll(self: RocModules, step: *Step.Compile) void {
|
|
step.root_module.addImport("base", self.base);
|
|
step.root_module.addImport("collections", self.collections);
|
|
step.root_module.addImport("types", self.types);
|
|
step.root_module.addImport("serialization", self.serialization);
|
|
step.root_module.addImport("compile", self.compile);
|
|
step.root_module.addImport("reporting", self.reporting);
|
|
step.root_module.addImport("parse", self.parse);
|
|
step.root_module.addImport("tracy", self.tracy);
|
|
step.root_module.addImport("builtins", self.builtins);
|
|
step.root_module.addImport("build_options", self.build_options);
|
|
}
|
|
|
|
pub fn addAllToTest(self: RocModules, step: *Step.Compile) void {
|
|
step.root_module.addImport("base", self.base);
|
|
step.root_module.addImport("collections", self.collections);
|
|
step.root_module.addImport("types", self.types);
|
|
step.root_module.addImport("serialization", self.serialization);
|
|
step.root_module.addImport("compile", self.compile);
|
|
step.root_module.addImport("reporting", self.reporting);
|
|
step.root_module.addImport("parse", self.parse);
|
|
step.root_module.addImport("tracy", self.tracy);
|
|
step.root_module.addImport("builtins", self.builtins);
|
|
step.root_module.addImport("build_options", self.build_options);
|
|
}
|
|
};
|