structstd.Build.Step.Compile.HeaderInstallation.Directory[src]

Fields

source: LazyPath
dest_rel_path: []const u8
options: Directory.Options

Functions

Functiondupe[src]

pub fn dupe(dir: Directory, b: *std.Build) Directory

Parameters

Source Code

Source code
pub fn dupe(dir: Directory, b: *std.Build) Directory {
    return .{
        .source = dir.source.dupe(b),
        .dest_rel_path = b.dupePath(dir.dest_rel_path),
        .options = dir.options.dupe(b),
    };
}

Source Code

Source code
pub const Directory = struct {
    source: LazyPath,
    dest_rel_path: []const u8,
    options: Directory.Options,

    pub const Options = struct {
        /// File paths that end in any of these suffixes will be excluded from installation.
        exclude_extensions: []const []const u8 = &.{},
        /// Only file paths that end in any of these suffixes will be included in installation.
        /// `null` means that all suffixes will be included.
        /// `exclude_extensions` takes precedence over `include_extensions`.
        include_extensions: ?[]const []const u8 = &.{".h"},

        pub fn dupe(opts: Directory.Options, b: *std.Build) Directory.Options {
            return .{
                .exclude_extensions = b.dupeStrings(opts.exclude_extensions),
                .include_extensions = if (opts.include_extensions) |incs| b.dupeStrings(incs) else null,
            };
        }
    };

    pub fn dupe(dir: Directory, b: *std.Build) Directory {
        return .{
            .source = dir.source.dupe(b),
            .dest_rel_path = b.dupePath(dir.dest_rel_path),
            .options = dir.options.dupe(b),
        };
    }
}