zig_configure
Once-native configured Zig library target.
Description#
Compiles a Zig library with configuration declared directly on the target. Set
output = "static" for zig build-lib, or output = "shared" for
zig build-lib -dynamic.
The root can be set with main, or omitted when deps contains exactly one
Zig module dependency. C provider deps contribute headers, definitions, include
directories, library inputs, and linker flags.
Canonical module names are generated from target labels with collision-safe
escaping. import_names keys must match exactly one Zig module dependency by
full label, short label name, import name, or canonical name; ambiguous or
unknown keys fail validation.
Attributes#
This target accepts the complete build configuration attribute set documented by
zig_static_library, including
import_name, import_names, strip, translate_c_identity, csrcs, linker
settings, and auxiliary output settings. It also accepts:
| Attribute | Type | Required | Default | Description |
|---|---|---|---|---|
output | string | no | static | static or shared |
emit_bin | bool | no | true | Emit the static library when output is static |
shared_lib_name | string | no | platform name | Exact shared library output file name when output is shared |
android_abi | string | no | empty | Android Application Binary Interface directory for shared library packaging |
Dependency Edges#
| Edge | Accepts | Description |
|---|---|---|
deps | zig_module, c_provider | Zig modules and C provider dependencies consumed by the library |
Providers#
The target emits the same native provider fields as zig_static_library or
zig_shared_library, depending on output.
Capabilities#
| Capability | Output groups |
|---|---|
build | static_library, shared_library, asm, llvm_ir, llvm_bc, zig_docs |
Example#
[[target]]
name = "math_release"
kind = "zig_configure"
deps = ["./math"]
[target.attrs]
mode = "release_fast"
threaded = "single"
output = "static"