feature. See also
. The project being documented here (as the example) is the Zig library itself.
Compile.HeaderInstallation
pub const HeaderInstallation = union(enum)
File
Code
pub const HeaderInstallation = union(enum) {
file: File,
directory: Directory,
pub const File = struct {
source: LazyPath,
dest_rel_path: []const u8,
pub fn dupe(file: File, graph: *const std.Build.Graph) File {
return .{
.source = file.source.dupe(graph),
.dest_rel_path = graph.dupePath(file.dest_rel_path),
};
}
};
pub const Directory = struct {
source: LazyPath,
dest_rel_path: []const u8,
options: Directory.Options,
pub const Options = struct {
exclude_extensions: []const []const u8 = &.{},
include_extensions: ?[]const []const u8 = &.{".h"},
pub fn dupe(opts: Directory.Options, graph: *const std.Build.Graph) Directory.Options {
return .{
.exclude_extensions = graph.dupeStrings(opts.exclude_extensions),
.include_extensions = if (opts.include_extensions) |incs| graph.dupeStrings(incs) else null,
};
}
};
pub fn dupe(dir: Directory, graph: *const std.Build.Graph) Directory {
return .{
.source = dir.source.dupe(graph),
.dest_rel_path = graph.dupePath(dir.dest_rel_path),
.options = dir.options.dupe(graph),
};
}
};
pub fn getSource(installation: HeaderInstallation) LazyPath {
return switch (installation) {
inline .file, .directory => |x| x.source,
};
}
pub fn dupe(installation: HeaderInstallation, graph: *const std.Build.Graph) HeaderInstallation {
return switch (installation) {
.file => |f| .{ .file = f.dupe(graph) },
.directory => |d| .{ .directory = d.dupe(graph) },
};
}
}