create
Function parameters
Parameters
- graph:*Graph
- build_root:Cache.Directory
- cache_root:Cache.Directory
Type definitions in this namespace
Types
- Graph
- Shared state among all Build instances.
- GeneratedFile
- A file that is generated by a build step.
- LazyPath
- A reference to an existing or future path.
- ResolvedTarget
- A pair of target query and fully resolved target.
Functions in this namespace
Functions
- resolveInstallPrefix
- This function is intended to be called by lib/build_runner.zig, not a build.zig file.
- addOptions
- Create a set of key-value pairs that can be converted into a Zig source
- addTest
- Creates an executable containing unit tests.
- addModule
- This function creates a module and adds it to the package's module set, making
- createModule
- This function creates a private module, to be used by the current package,
- addSystemCommand
- Initializes a `Step.Run` with argv, which must at least have the path to the
- addRunArtifact
- Creates a `Step.Run` with an executable built with `addExecutable`.
- addConfigHeader
- Using the `values` provided, produces a C header file, possibly based on a
- dupe
- Allocator.dupe without the need to handle out of memory.
- dupeStrings
- Duplicates an array of strings without the need to handle out of memory.
- dupePath
- Duplicates a path and converts all slashes to the OS's canonical path separator.
- option
- Creates a configuration option to be passed to the build.zig script.
- standardTargetOptions
- Exposes standard `zig build` options for choosing a target and additionally
- parseTargetQuery
- Obtain a target query from a string, reporting diagnostics to stderr if the
- standardTargetOptionsQueryOnly
- Exposes standard `zig build` options for choosing a target.
- installArtifact
- This creates the install step and adds it to the dependencies of the
- addInstallArtifact
- This merely creates the step; it does not add it to the dependencies of the
- installFile
- `dest_rel_path` is relative to prefix path
- installBinFile
- `dest_rel_path` is relative to bin path
- installLibFile
- `dest_rel_path` is relative to lib path
- addInstallFile
- `dest_rel_path` is relative to install prefix path
- addInstallBinFile
- `dest_rel_path` is relative to bin path
- addInstallLibFile
- `dest_rel_path` is relative to lib path
- addInstallHeaderFile
- `dest_rel_path` is relative to header path
- path
- References a file or directory relative to the source root.
- pathFromRoot
- This is low-level implementation details of the build system, not meant to
- run
- This is a helper function to be called from build.zig scripts, *not* from
- lazyDependency
- When this function is called, it means that the current build does, in
- lazyImport
- In a build.zig file, this function is to `@import` what `lazyDependency` is to `dependency`.
- dumpBadGetPathHelp
- In this function the stderr mutex has already been locked.
- makeTempPath
- This function is intended to be called in the `configure` phase only.
- resolveTargetQuery
- Converts a target query into a fully resolved target that can be passed to
Error sets in this namespace
Error Sets
Source
Implementation
pub fn create(
graph: *Graph,
build_root: Cache.Directory,
cache_root: Cache.Directory,
available_deps: AvailableDeps,
) error{OutOfMemory}!*Build {
const arena = graph.arena;
const b = try arena.create(Build);
b.* = .{
.graph = graph,
.build_root = build_root,
.cache_root = cache_root,
.verbose = false,
.verbose_link = false,
.verbose_cc = false,
.verbose_air = false,
.verbose_llvm_ir = null,
.verbose_llvm_bc = null,
.verbose_cimport = false,
.verbose_llvm_cpu_features = false,
.invalid_user_input = false,
.allocator = arena,
.user_input_options = UserInputOptionsMap.init(arena),
.available_options_map = AvailableOptionsMap.init(arena),
.available_options_list = std.array_list.Managed(AvailableOption).init(arena),
.top_level_steps = .{},
.default_step = undefined,
.search_prefixes = .empty,
.install_prefix = undefined,
.lib_dir = undefined,
.exe_dir = undefined,
.h_dir = undefined,
.dest_dir = graph.env_map.get("DESTDIR"),
.install_tls = .{
.step = .init(.{
.id = TopLevelStep.base_id,
.name = "install",
.owner = b,
}),
.description = "Copy build artifacts to prefix path",
},
.uninstall_tls = .{
.step = .init(.{
.id = TopLevelStep.base_id,
.name = "uninstall",
.owner = b,
.makeFn = makeUninstall,
}),
.description = "Remove build artifacts from prefix path",
},
.install_path = undefined,
.args = null,
.modules = .init(arena),
.named_writefiles = .init(arena),
.named_lazy_paths = .init(arena),
.pkg_hash = "",
.available_deps = available_deps,
.release_mode = .off,
};
try b.top_level_steps.put(arena, b.install_tls.step.name, &b.install_tls);
try b.top_level_steps.put(arena, b.uninstall_tls.step.name, &b.uninstall_tls);
b.default_step = &b.install_tls.step;
return b;
}