Files
iris-context/commands/cc/zig.go
VERSE ebde9ba68f refactor(commands): separate commands and its core into two folders (#32)
- I think it would be better if one for commands only, one for the spec
handling core logic so people won't be confused by the core logic inside
the commands folder (cleaner I guess)
- Regen docs
2026-07-05 11:27:30 +07:00

87 lines
5.6 KiB
Go

package cc
import (
"github.com/versenilvis/iris/spec"
)
func init() {
spec.Register(&spec.Spec{
Name: "zig",
Description: "Enable or disable colored message",
Subcommands: []spec.Subcommand{
{Name: "build", Description: "Build project from build.zig"},
{Name: "install", Description: "Copy build artifacts to prefix path"},
{Name: "uninstall", Description: "Remove build artifacts from prefix path"},
{Name: "run", Description: "Run the app"},
{Name: "test", Description: "Run unit tests"},
{Name: "init-exe", Description: "Initializes a `zig build` project in the current working directory"},
{Name: "init-lib", Description: "Initializes a `zig build` project in the current working directory"},
{Name: "ast-check", Description: "Given a .zig source file, reports any compile errors that"},
{Name: "build-exe", Description: "Create executable from source or object files"},
{Name: "build-lib", Description: "Create library from source or object files"},
{Name: "build-obj", Description: "Create library from source or object files"},
{Name: "fmt", Description: "Reformat Zig source into canonical form"},
{Name: "translate-c", Description: "Convert C code to Zig code"},
{Name: "ar", Description: "LLVM Archiver"},
{Name: "default", Description: "Default"},
{Name: "gnu", Description: "GNU"},
{Name: "darwin", Description: "Darwin"},
{Name: "bsd", Description: "BSD"},
{Name: "bigarchive", Description: "Big archive (AIX OS)"},
{Name: "cc", Description: "Use Zig as a drop-in C compiler"},
{Name: "c++", Description: "Use Zig as a drop-in C++ compiler"},
{Name: "dll-tool", Description: "LLVM dll tool"},
{Name: "lib", Description: "Use Zig as a drop-in lib.exe"},
{Name: "ranlib", Description: "LLVM Ranlib : This program generates an index to speed access to archives"},
{Name: "env", Description: "Print lib path, std path, cache directory, and version"},
{Name: "help", Description: "Print help and exit"},
{Name: "libc", Description: "Detect the native libc installation and print the resulting paths to stdout"},
{Name: "targets", Description: "List available compilation targets"},
{Name: "version", Description: "Print version number and exit"},
{Name: "zen", Description: "Print Zen of Zig and exit"},
},
Options: []spec.Option{
{Name: "--color", Description: "Enable or disable colored message"},
{Name: "--cache-dir", Description: "Override path to local Zig cache directory"},
{Name: "--global-cache-dir", Description: "Override path to global Zig cache directory"},
{Name: "-fstage1", Description: "Force using bootstrap compiler as the codegen backend"},
{Name: "-fno-stage1", Description: "Prevent using bootstrap compiler as the codegen backend"},
{Name: "--zig-lib-dir", Description: "Override path to Zig lib directory"},
{Name: "-freference-trace", Description: "How many lines of reference trace should be shown per compile error"},
{Name: "-fno-reference-trace", Description: "Disable reference trace"},
{Name: "-h", Description: "Print help and exit"},
{Name: "-v", Description: "Display the version of this program"},
{Name: "--watch", Description: "Enable compiler REPL"},
{Name: "-femit-bin", Description: "(default) Output machine code"},
{Name: "-fno-emit-bin", Description: "Do not output machine code"},
{Name: "-femit-asm", Description: "Output .s (assembly code)"},
{Name: "-fno-emit-asm", Description: "(default) Do not output .s (assembly code)"},
{Name: "-femit-llvm-ir", Description: "Produce a .ll file with LLVM IR (requires LLVM extensions)"},
{Name: "-fno-emit-llvm-ir", Description: "(default) Do not produce a .ll file with LLVM IR"},
{Name: "-femit-llvm-bc", Description: "Produce a LLVM module as a .bc file (requires LLVM extensions)"},
{Name: "-fno-emit-llvm-bc", Description: "(default) Do not produce a LLVM module as a .bc file"},
{Name: "-femit-h", Description: "Generate a C header file (.h)"},
{Name: "-fno-emit-h", Description: "(default) Do not generate a C header file (.h)"},
{Name: "-femit-docs", Description: "Create a docs/ dir with html documentation"},
{Name: "-fno-emit-docs", Description: "(default) Do not produce docs/ dir with html documentation"},
{Name: "-femit-analysis", Description: "Write analysis JSON file with type information"},
{Name: "-fno-emit-analysis", Description: "(default) Do not write analysis JSON file with type information"},
{Name: "-femit-implib", Description: "(default) Produce an import .lib when building a Windows DLL"},
{Name: "-fno-emit-implib", Description: "Do not produce an import .lib when building a Windows DLL"},
{Name: "--show-builtin", Description: "Output to cache directory; print path to stdout"},
{Name: "-target", Description: "<arch><sub>-<os>-<abi> see the targets command"},
{Name: "-mcpu", Description: "Specify target CPU and feature set"},
{Name: "-mcmodel", Description: "Limit range of code and data virtual addresses"},
{Name: "-mred-zone", Description: "Omit the stack frame pointer"},
{Name: "-fno-omit-frame-pointer", Description: "Store the stack frame pointer"},
{Name: "-mexec-model", Description: "(WASI) Execution model"},
{Name: "--name", Description: "Override root name (not a file path)"},
{Name: "-O", Description: "Choose what to optimize for"},
{Name: "--pkg-begin", Description: "Make pkg available to import and push current pkg"},
{Name: "--pkg-end", Description: "Pop current pkg"},
{Name: "--main-pkg-path", Description: "Set the directory of the root package"},
{Name: "-fPIC", Description: "Force-enable Position Independent Code"},
},
})
}