Function init [src]

Prototype

pub fn init( m: *Module, owner: *std.Build, value: union(enum) { options: CreateOptions, existing: *const Module }, ) void

Parameters

m: *Moduleowner: *std.Buildvalue: union(enum) { options: CreateOptions, existing: *const Module }

Source

pub fn init( m: *Module, owner: *std.Build, value: union(enum) { options: CreateOptions, existing: *const Module }, ) void { const allocator = owner.allocator; switch (value) { .options => |options| { m.* = .{ .owner = owner, .root_source_file = if (options.root_source_file) |lp| lp.dupe(owner) else null, .import_table = .{}, .resolved_target = options.target, .optimize = options.optimize, .link_libc = options.link_libc, .link_libcpp = options.link_libcpp, .dwarf_format = options.dwarf_format, .c_macros = .{}, .include_dirs = .{}, .lib_paths = .{}, .rpaths = .{}, .frameworks = .{}, .link_objects = .{}, .strip = options.strip, .unwind_tables = options.unwind_tables, .single_threaded = options.single_threaded, .stack_protector = options.stack_protector, .stack_check = options.stack_check, .sanitize_c = options.sanitize_c, .sanitize_thread = options.sanitize_thread, .fuzz = options.fuzz, .code_model = options.code_model, .valgrind = options.valgrind, .pic = options.pic, .red_zone = options.red_zone, .omit_frame_pointer = options.omit_frame_pointer, .error_tracing = options.error_tracing, .export_symbol_names = &.{}, }; m.import_table.ensureUnusedCapacity(allocator, options.imports.len) catch @panic("OOM"); for (options.imports) |dep| { m.import_table.putAssumeCapacity(dep.name, dep.module); } }, .existing => |existing| { m.* = existing.*; }, } }