This repository has no description
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445//! A zig builder step that runs "libtool" against a list of libraries//! in order to create a single combined static library.const LibtoolStep = @This();
const std = @import("std");const Step = std.Build.Step;const RunStep = std.Build.Step.Run;const LazyPath = std.Build.LazyPath;
pub const Options = struct { /// The name of this step. name: []const u8,
/// The filename (not the path) of the file to create. This will /// be placed in a unique hashed directory. Use out_path to access. out_name: []const u8,
/// Library files (.a) to combine. sources: []LazyPath,};
/// The step to depend on.step: *Step,
/// The output file from the libtool run.output: LazyPath,
/// Run libtool against a list of library files to combine into a single/// static library.pub fn create(b: *std.Build, opts: Options) *LibtoolStep { const self = b.allocator.create(LibtoolStep) catch @panic("OOM");
const run_step = RunStep.create(b, b.fmt("libtool {s}", .{opts.name})); run_step.addArgs(&.{ "libtool", "-static", "-o" }); const output = run_step.addOutputFileArg(opts.out_name); for (opts.sources) |source| run_step.addFileArg(source);
self.* = .{ .step = &run_step.step, .output = output, };
return self;}