Zig 0.17.0-dev (Split by item)
This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig library itself.
Zig › std/ › Build.zig › package_map
package_map
Build.package_map
const package_map : std .StaticStringMap (PackageEntry ) = blk :
File
Code
const package_map : std .StaticStringMap (PackageEntry ) = blk : {
const deps = @import ("root" ).dependencies ;
const decl_names = @typeInfo (deps .packages ).@"struct" .decl_names ;
var kvs : [decl_names .len ]struct { []const u8 , PackageEntry } = undefined ;
for (decl_names , 0 ..) |decl_name , i | {
const pkg = @field (deps .packages , decl_name );
const available = !@hasDecl (pkg , "available" ) or pkg .available ;
kvs [i ] = .{ decl_name , .{
.hash = decl_name ,
.available = available ,
.build_root = if (available ) pkg .build_root else "" ,
.deps = if (available ) pkg .deps else &.{},
.run_build = if (available and @hasDecl (pkg , "build_zig" )) &struct {
fn run (sb : *Build ) void {
sb .runPackageScript (pkg .build_zig );
}
}.run else null ,
} };
}
const frozen = kvs ;
break :blk .initComptime (&frozen );
}