id = "llvm"
name = "LLVM"
homepage = "https://llvm.org"
description = "The LLVM Project is a collection of modular and reusable compiler and toolchain technologies."
icon = "SimpleIcons:llvm"
executables = ["clang", "clang++", "clangd", "clang-format", "clang-tidy", "llvm-config"]
[dotfiles]
paths = [
"[preferences]/clangd/config.yaml",
"~/.config/clangd/config.yaml",
"%LOCALAPPDATA%/clangd/config.yaml",
]
secret = []
side_effect = false
[commands]
format = 1
label = "Compile with clang"
description = "Compile or link C/C++ sources with clang. Optimisation level, -std and -W flags are left out because the completion data does not model them reliably; clang-format, clang-tidy and clangd are not covered."
quality = "ai-draft"
base = "fig:clang"
parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = false }
[[commands.source]]
id = "fig"
kind = "completion"
url = "https://github.com/withfig/autocomplete/blob/master/src/clang.ts"
license = "MIT"
[[commands.field]]
id = "sources"
label = "Source files"
type = "path"
position = 0
multiple = true
path = { kind = "file", role = "input" }
sources = ["fig"]
[[commands.field]]
id = "output"
label = "Output file"
type = "path"
option = ["-o"]
path = { kind = "file", role = "output" }
effect = "overwrite"
sources = ["fig"]
[[commands.field]]
id = "compile_only"
label = "Compile only (no link)"
type = "boolean"
option = ["-c"]
sources = ["fig"]
[[commands.field]]
id = "assembly"
label = "Emit assembly"
type = "boolean"
option = ["-S"]
sources = ["fig"]
[[commands.field]]
id = "preprocess"
label = "Preprocess only"
type = "boolean"
option = ["-E"]
sources = ["fig"]
[[commands.field]]
id = "debug"
label = "Debug information"
type = "boolean"
option = ["-g"]
sources = ["fig"]
[[commands.field]]
id = "include_dirs"
label = "Include directories"
type = "path"
option = ["-I"]
multiple = true
path = { kind = "directory", role = "input" }
sources = ["fig"]
[[commands.field]]
id = "lib_dirs"
label = "Library directories"
type = "path"
option = ["-L"]
multiple = true
path = { kind = "directory", role = "input" }
sources = ["fig"]
[[commands.field]]
id = "defines"
label = "Macro definitions"
description = "NAME or NAME=value."
type = "string"
option = ["-D"]
multiple = true
sources = ["fig"]
[[commands.field]]
id = "no_warnings"
label = "Suppress all warnings"
type = "boolean"
option = ["-w"]
sources = ["fig"]
[[commands.field]]
id = "verbose"
label = "Verbose"
type = "boolean"
option = ["-v"]
sources = ["fig"]
[[commands.task]]
id = "build"
label = "Build an executable"
fields = ["sources", "output", "debug"]
required = ["sources", "output"]
[[commands.task]]
id = "object"
label = "Compile to object file"
fields = ["sources", "compile_only", "debug"]
required = ["sources"]
set = { compile_only = [true] }
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["sources", "output", "compile_only", "debug"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["assembly", "preprocess", "include_dirs", "lib_dirs", "defines", "no_warnings", "verbose"]