Skip to content

every EmitOption field in std.Build.Step.Compile (for example: emit_docs) lacks FileSource integration #16351

@andrewrk

Description

@andrewrk

emit_analysis: EmitOption = .default,
emit_asm: EmitOption = .default,
emit_bin: EmitOption = .default,
emit_docs: EmitOption = .default,
emit_implib: EmitOption = .default,
emit_llvm_bc: EmitOption = .default,
emit_llvm_ir: EmitOption = .default,
// Lots of things depend on emit_h having a consistent path,
// so it is not an EmitOption for now.
emit_h: bool = false,

Instead of passing strings directly to the Zig CLI, the build system API should have a function for adding emission of each of these artifacts which returns a FileSource which can then be used as inputs in other parts of the build system API.

As an example, getOutputSource already does this for the CLI equivalent of -femit-bin.

As a bonus, the build system should pass -fno-emit-bin unless getOutputSource() is called on the Compile Step. This will happen automatically in the case of adding an install step for the build artifact, which passes the result of getOutputSource() to an Install Step.

Metadata

Metadata

Assignees

No one assigned

    Labels

    breakingImplementing this issue could cause existing code to no longer compile or have different behavior.bugObserved behavior contradicts documented or intended behaviorcontributor friendlyThis issue is limited in scope and/or knowledge of Zig internals.enhancementSolving this issue will likely involve adding new logic or components to the codebase.zig build systemstd.Build, the build runner, `zig build` subcommand, package management

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions