31 lines
653 B
Zig
31 lines
653 B
Zig
const Compilation = @import("../Compilation.zig");
|
|
const Context = Compilation.Context;
|
|
const lld = @import("lld.zig");
|
|
pub const Options = struct{
|
|
backend: Backend = .lld,
|
|
output_file_path: []const u8,
|
|
objects: []const Object,
|
|
libraries: []const Library,
|
|
extra_arguments: []const []const u8,
|
|
link_libc: bool,
|
|
link_libcpp: bool,
|
|
};
|
|
|
|
const Backend = enum{
|
|
lld,
|
|
};
|
|
|
|
pub const Object = struct{
|
|
path: []const u8,
|
|
};
|
|
|
|
pub const Library = struct{
|
|
path: []const u8,
|
|
};
|
|
|
|
pub fn link(context: *const Context, options: Options) !void {
|
|
switch (options.backend) {
|
|
.lld => try lld.link(context, options),
|
|
}
|
|
}
|