aboutsummaryrefslogtreecommitdiff
path: root/std
diff options
context:
space:
mode:
Diffstat (limited to 'std')
-rw-r--r--std/build.zig26
1 files changed, 26 insertions, 0 deletions
diff --git a/std/build.zig b/std/build.zig
index 5b4cad9ba5..09297c05ca 100644
--- a/std/build.zig
+++ b/std/build.zig
@@ -1130,6 +1130,32 @@ pub const LinkStep = struct {
%%self.object_files.append(file);
}
+ pub fn addObject(self: &LinkStep, obj: &ObjectStep) {
+ self.step.dependOn(&obj.step);
+
+ const path_to_obj = test (obj.output_path) |explicit_out_path| {
+ explicit_out_path
+ } else {
+ // TODO make it so we always know where this will be
+ %%os.path.join(self.builder.allocator, self.builder.out_dir,
+ self.builder.fmt("{}{}", obj.name, obj.target.oFileExt()))
+ };
+ %%self.object_files.append(path_to_obj);
+ }
+
+ pub fn addAssembly(self: &LinkStep, assembly: &AsmStep) {
+ self.step.dependOn(&assembly.step);
+
+ const path_to_obj = test (assembly.output_path) |explicit_out_path| {
+ explicit_out_path
+ } else {
+ // TODO make it so we always know where this will be
+ %%os.path.join(self.builder.allocator, self.builder.out_dir,
+ self.builder.fmt("{}{}", assembly.name, assembly.target.oFileExt()))
+ };
+ %%self.object_files.append(path_to_obj);
+ }
+
pub fn setTarget(self: &LinkStep, target_arch: Arch, target_os: Os, target_environ: Environ) {
self.target = Target.Cross {
CrossTarget {