How to enable build.zig also emit header file?

I am following the example in Documentation - The Zig Programming Language (ziglang.org)

with

zig build-lib -femit-h mathtest.zig

it is easy to generate mathtest.h

but when following

// build_c.zig
const std = @import("std");

pub fn build(b: *std.Build) void {
    const lib = b.addSharedLibrary(.{
        .name = "mathtest",
        .root_source_file = .{ .path = "mathtest.zig" },
        .version = .{ .major = 1, .minor = 0, .patch = 0 },
    });
    const exe = b.addExecutable(.{
        .name = "test",
    });
    exe.addCSourceFile(.{ .file = .{ .path = "test.c" }, .flags = &.{"-std=c99"} });
    exe.linkLibrary(lib);
    exe.linkSystemLibrary("c");

    b.default_step.dependOn(&exe.step);

    const run_cmd = exe.run();

    const test_step = b.step("test", "Test the program");
    test_step.dependOn(&run_cmd.step);
}

where should I find generated mathtest.h??

getEmmitedH adds -femit-h and returns the path to the generated header file.

_ = lib.getEmmitedH();
2 Likes