Skip to content

zig_binary

Zig executable target.

Description

Compiles a Zig executable with zig build-exe. The root can be set with main, or omitted when deps contains exactly one Zig module dependency. Zig module deps are passed through --dep and -M. C provider deps contribute headers, definitions, include directories, static libraries, dynamic libraries, and linker flags.

once run first builds the binary, then executes it with the configured env and args.

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

AttributeTypeRequiredDefaultDescription
zigstringnozig on PATHZig compiler path
zig_versionstringnoemptyExpected zig version output
bootstrappedintno-1Compatibility selector for bootstrapped Zig toolchains; choose the compiler with zig
mainstringnoPackage-relative root module, or omit with one Zig module dependency
import_namestringnotarget nameName downstream modules use with @import
import_namesmap<string, string>no{}Rename dependency imports by dependency label, short name, or import name
extra_srcslist<string>no[]Extra source or data globs included in the compile input digest
extra_docslist<string>no[]Extra files included in the documentation action input digest
datalist<string>no[]Runtime data globs included in run inputs
targetstringnohost targetZig target triple passed with -target
cpustringnoemptyProcessor setting passed with -mcpu
optimizestringnoemptyOptimization mode passed with -O
modestringnoemptyauto, debug, release_safe, release_small, or release_fast; maps to -O
host_modestringnoemptyAlias for mode when porting configured host targets
threadedstringnoemptymulti passes -fno-single-threaded; single passes -fsingle-threaded
host_threadedstringnoemptyAlias for threaded when porting configured host targets
stripboolnofalseAlias for strip_debug_symbols
strip_debug_symbolsboolnofalsePass -fstrip
compiler_runtimestringnodefaultdefault, include, or exclude for compiler runtime flags
zigoptlist<string>no[]Global Zig flags prepended before module-specific zigopts
host_zigoptlist<string>no[]Alias for zigopt when porting configured host targets
zigoptslist<string>no[]Extra flags attached to this module specification
linkoptslist<string>no[]Extra linker flags appended after Once-managed flags
use_cc_common_linkintno-1Compatibility setting for C provider linking; Once consumes C providers through its provider model
host_use_cc_common_linkintno-1Host compatibility setting for C provider linking
use_standalone_translate_cintno-1Set to 1 to use a standalone translate-c executable
translate_cstringnoemptyStandalone translate-c executable path
translate_c_identitystringnoemptyStable identity for the standalone translate-c executable, folded into translate action cache keys
csrcslist<string>no[]C source files passed to Zig through -cflags ... --
coptslist<string>no[]C compiler flags passed after -cflags
linker_scriptstringnoemptyPackage-relative linker script passed as -T
emit_asmboolnofalseEmit assembly output
emit_llvm_irboolnofalseEmit compiler intermediate representation output
emit_llvm_bcboolnofalseEmit compiler bitcode output
output_namestringnotarget nameOutput file name without platform extension
envmap<string, string>no{}Environment variables for once run
argslist<string>no[]Arguments for once run

Dependency Edges

EdgeAcceptsDescription
depszig_module, c_providerZig modules and C provider dependencies consumed by the executable

Providers

The target emits zig_binary.

Capabilities

CapabilityOutput groupsRequires
buildbinary, asm, llvm_ir, llvm_bc, zig_docs
rundefaultbinary

Example

toml
[[target]]
name = "hello"
kind = "zig_binary"
srcs = ["src/**/*.zig"]
deps = ["./math"]

[target.attrs]
main = "src/main.zig"

Released under an open-source license.