From 6822a7a1237d0274ac68b9e713db11c45a737998 Mon Sep 17 00:00:00 2001 From: dbandstra Date: Sun, 6 Aug 2023 14:55:57 -0700 Subject: [PATCH] langref: bring build.zig examples up to date Update to match current outputs of init-exe and init-lib. --- doc/langref.html.in | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/doc/langref.html.in b/doc/langref.html.in index 219a9558d6..5f29524bc0 100644 --- a/doc/langref.html.in +++ b/doc/langref.html.in @@ -10836,12 +10836,25 @@ pub fn build(b: *std.Build) void { {#code_begin|syntax|build_library#} const std = @import("std"); +// Although this function looks imperative, note that its job is to +// declaratively construct a build graph that will be executed by an external +// runner. pub fn build(b: *std.Build) void { + // Standard target options allows the person running `zig build` to choose + // what target to build for. Here we do not override the defaults, which + // means any target is allowed, and the default is native. Other options + // for restricting supported target set are available. const target = b.standardTargetOptions(.{}); + + // Standard optimization options allow the person running `zig build` to select + // between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall. Here we do not + // set a preferred release mode, allowing the user to decide how to optimize. const optimize = b.standardOptimizeOption(.{}); const lib = b.addStaticLibrary(.{ .name = "example", + // In this case the main source file is merely a path, however, in more + // complicated build scripts, this could be a generated file. .root_source_file = .{ .path = "src/main.zig" }, .target = target, .optimize = optimize, @@ -10852,6 +10865,8 @@ pub fn build(b: *std.Build) void { // running `zig build`). b.installArtifact(lib); + // Creates a step for unit testing. This only builds the test executable + // but does not run it. const main_tests = b.addTest(.{ .root_source_file = .{ .path = "src/main.zig" }, .target = target, @@ -10860,6 +10875,9 @@ pub fn build(b: *std.Build) void { const run_main_tests = b.addRunArtifact(main_tests); + // This creates a build step. It will be visible in the `zig build --help` menu, + // and can be selected like this: `zig build test` + // This will evaluate the `test` step rather than the default, which is "install". const test_step = b.step("test", "Run library tests"); test_step.dependOn(&run_main_tests.step); }