addCSourceFiles
Handy when you have many non-Zig source files and want them all to have the same flags.
Function parameters
Parameters
- m:*Module
Type definitions in this namespace
Types
- CreateOptions
- Unspecified options here will be inherited from parent `Module` when
- Graph
- Elements of `modules` and `names` are matched one-to-one.
Functions in this namespace
Functions
- addImport
- Adds an existing module to be used with `@import`.
- addAnonymousImport
- Creates a new module and adds it to be used with `@import`.
- addOptions
- Converts a set of key-value pairs into a Zig source file, and then inserts it into
- addCSourceFiles
- Handy when you have many non-Zig source files and want them all to have the same flags.
- addWin32ResourceFile
- Resource files must have the extension `.rc`.
- addCMacro
- Equvialent to the following C code, applied to all C source files owned by
- getGraph
- Intended to be used during the make phase only.
Source
Implementation
pub fn addCSourceFiles(m: *Module, options: AddCSourceFilesOptions) void {
const b = m.owner;
const allocator = b.allocator;
for (options.files) |path| {
if (std.fs.path.isAbsolute(path)) {
std.debug.panic(
"file paths added with 'addCSourceFiles' must be relative, found absolute path '{s}'",
.{path},
);
}
}
const c_source_files = allocator.create(CSourceFiles) catch @panic("OOM");
c_source_files.* = .{
.root = options.root orelse b.path(""),
.files = b.dupeStrings(options.files),
.flags = b.dupeStrings(options.flags),
.language = options.language,
};
m.link_objects.append(allocator, .{ .c_source_files = c_source_files }) catch @panic("OOM");
}