Build, firmware and update inputs

Builds, firmware, container images and update packages, read into evidence. This page documents every command in the build-inputs group, in the order sbomflow help build-inputs lists them. Each command's section is generated from the command itself — its summary, description and options from the parser, and its reads, writes, exit codes, examples and see-also from the command catalog — so it says exactly what sbomflow <command> --help says. Every example below is executed offline by the test suite, and every non-zero exit code is either produced by an executed probe or carries a recorded reason why no offline probe can produce it.

See the CLI overview for how the thirteen groups fit together and the command reference for every command's options in one place.

Overview#

Specialist importers exist for CMake, Zephyr, ESP-IDF, containers/OCI, firmware extraction, update managers and more. Run sbomflow help build-inputs for the full list; use only the importers your build actually produces.

Who this is for: firmware engineers, build engineers, container platform teams, platform teams, firmware analysts, update engineers, embedded Linux engineers and vehicle software engineers.

sbomflow cmake-evidence#

Import a CMake File API reply into deterministic build evidence (offline).

text
Read a CMake build directory's File API reply (.cmake/api/v1/reply) and record
the targets, their sources and their link dependencies as deterministic build
evidence. Nothing is configured or built; a directory with no reply exits 2.
FactValue
Groupbuild-inputs — Build, firmware & update inputs
Stabilitystable
Regimeany
Readsa CMake build directory's File API reply; nothing is built or configured.
Writesstdout (cmake-build-evidence.json, or to the file --output names)
--output namesone file (stdout when omitted)
Networkoffline — This command has no network-capable path.
Exit codes0 ok · 2 no File API reply there
Machine outputmachine-native — prints its CMake File API build-evidence document as JSON on stdout by default, no flag needed; --output writes the same document to a file instead

Options

OptionValueDefaultAllowedRequiredHelp
-h, --help(flag)none—noshow this help message and exit
pathpathnoneanyyesA CMake build dir or its .cmake/api/v1/reply directory.
--outputOUTPUTnoneanynoWrite cmake-build-evidence.json here (file; default stdout).

Examples

Read the targets and sources a CMake build declared.

sh
sbomflow cmake-evidence cmake-build

Write the document to a file.

sh
sbomflow cmake-evidence cmake-build --output cmake-build-evidence.json

Refuse a directory with no File API reply. Exits 2.

sh
sbomflow cmake-evidence rootfs

See also: sbomflow linker-map-evidence, sbomflow zephyr-evidence, sbomflow esp-idf-evidence, sbomflow help goal firmware.

sbomflow linker-map-evidence#

Parse a GNU ld / LLVM lld map into a deterministic object/section graph (offline).

text
Parse one GNU ld or LLVM lld linker map into a deterministic graph of the
objects, archives and sections a link pulled in. A file that is neither format
is reported as such rather than guessed.
FactValue
Groupbuild-inputs — Build, firmware & update inputs
Stabilitystable
Regimeany
Readsone GNU ld or LLVM lld linker map.
Writesstdout (linker-map-evidence.json, or to the file --output names)
--output namesone file (stdout when omitted)
Networkoffline — This command has no network-capable path.
Exit codes0 read, including a file that is not a map, which is reported · 2 a missing file
Machine outputmachine-native — prints its linker-map evidence as JSON on stdout by default, no flag needed; --output writes the same document to a file instead

Options

OptionValueDefaultAllowedRequiredHelp
-h, --help(flag)none—noshow this help message and exit
pathpathnoneanyyesA linker .map file.
--outputOUTPUTnoneanynoWrite linker-map-evidence.json here (file; default stdout).

Examples

Read which objects and archives a GNU ld link pulled in.

sh
sbomflow linker-map-evidence linker-maps/gnu_ld.map

An LLVM lld map, written to a file.

sh
sbomflow linker-map-evidence linker-maps/llvm_lld.map --output linker-map-evidence.json

A file that is neither format is reported, not guessed.

sh
sbomflow linker-map-evidence linker-maps/garbage.txt

See also: sbomflow cmake-evidence, sbomflow elf-evidence, sbomflow help goal firmware.

sbomflow zephyr-evidence#

Import a Zephyr west spdx set into deterministic build evidence (offline).

text
Read the SPDX documents `west spdx` wrote for a Zephyr build and record the
build's components, sources and relationships as deterministic firmware build
evidence. A directory with no Zephyr SPDX documents exits 2.
FactValue
Groupbuild-inputs — Build, firmware & update inputs
Stabilitystable
Regimeany
Readsa Zephyr build directory's SPDX documents.
Writesstdout (zephyr-build-evidence.json, or to the file --output names)
--output namesone file (stdout when omitted)
Networkoffline — This command has no network-capable path.
Exit codes0 ok · 2 no Zephyr SPDX documents there
Machine outputmachine-native — prints its Zephyr build-evidence document as JSON on stdout by default, no flag needed; --output writes the same document to a file instead

Options

OptionValueDefaultAllowedRequiredHelp
-h, --help(flag)none—noshow this help message and exit
pathpathnoneanyyesA Zephyr build dir or its spdx/ directory.
--outputOUTPUTnoneanynoWrite zephyr-build-evidence.json here (file; default stdout).

Examples

Read a Zephyr build's SPDX documents into firmware build evidence.

sh
sbomflow zephyr-evidence build --output out/zephyr-build-evidence.json

Print the document instead.

sh
sbomflow zephyr-evidence build

Refuse a directory with no Zephyr SPDX documents. Exits 2.

sh
sbomflow zephyr-evidence rootfs

See also: sbomflow cmake-evidence, sbomflow twister-evidence, sbomflow help goal firmware.

sbomflow esp-idf-evidence#

Import ESP-IDF build outputs into deterministic evidence (offline; no secrets copied).

text
Read an ESP-IDF project's dependencies.lock, sdkconfig and build descriptors
and record its components and configuration as deterministic build evidence.
No secret (a key or a credential in sdkconfig) is copied into the evidence.
FactValue
Groupbuild-inputs — Build, firmware & update inputs
Stabilitystable
Regimeany
Readsan ESP-IDF project or its build directory: dependencies.lock, sdkconfig and the build's descriptors.
Writesstdout (esp-idf-build-evidence.json, or to the file --output names)
--output namesone file (stdout when omitted)
Networkoffline — This command has no network-capable path.
Exit codes0 ok · 2 a missing directory
Machine outputmachine-native — prints its ESP-IDF build-evidence document as JSON on stdout by default, no flag needed; --output writes the same document to a file instead

Options

OptionValueDefaultAllowedRequiredHelp
-h, --help(flag)none—noshow this help message and exit
pathpathnoneanyyesAn ESP-IDF project dir or its build/ directory.
--outputOUTPUTnoneanynoWrite esp-idf-build-evidence.json here (file; default stdout).

Examples

Read an ESP-IDF project's components and configuration.

sh
sbomflow esp-idf-evidence esp-idf-project

Point it at the build directory, writing the document to a file.

sh
sbomflow esp-idf-evidence esp-idf-project/build --output esp-idf-build-evidence.json

See also: sbomflow cmake-evidence, sbomflow zephyr-evidence, sbomflow help goal firmware.

sbomflow elf-evidence#

Read ELF binaries' declared structure — SONAME, DT_NEEDED, build-id (offline; never executed).

text
Inventory one ELF binary, or every ELF binary in a tree, reading only its
declared structure: SONAME, DT_NEEDED, build-id, the exploit mitigations its
headers declare, and whether a kernel module ends with the appended-signature
marker (never whether a signature is valid). Nothing is executed; --max-
binaries bounds how many are read.
FactValue
Groupbuild-inputs — Build, firmware & update inputs
Stabilitystable
Regimeany
Readsone binary, or a tree to inventory; nothing is executed.
Writesstdout (elf-evidence.json, or to the file --output names)
--output namesone file (stdout when omitted)
Networkoffline — This command has no network-capable path.
Exit codes0 ok · 2 a missing path
Machine outputmachine-native — prints its ELF inventory evidence as JSON on stdout by default, no flag needed; --output writes the same document to a file instead

Options

OptionValueDefaultAllowedRequiredHelp
-h, --help(flag)none—noshow this help message and exit
pathpathnoneanyyesA binary, or a tree to inventory.
--outputOUTPUTnoneanynoWrite elf-evidence.json here (file; default stdout).
--max-binariesMAX_BINARIES5000anynoBound on ELF binaries inventoried in one tree (default: 5000).

Examples

Inventory the ELF binaries in a root filesystem; this one holds none.

sh
sbomflow elf-evidence rootfs

Bound the inventory and write the document to a file.

sh
sbomflow elf-evidence rootfs --max-binaries 10 --output elf-evidence.json

See also: sbomflow linker-map-evidence, sbomflow syft-scan, sbomflow firmware-extract, sbomflow help goal firmware.

sbomflow oci-evidence#

Discover manifests/platforms/referrers in a local OCI image layout (offline; layers never executed).

text
Record the manifests, platforms and referrers in a local OCI image layout
directory, by digest. Nothing is pulled and no layer is extracted or executed.
FactValue
Groupbuild-inputs — Build, firmware & update inputs
Stabilitystable
Regimeany
Readsone local OCI image layout directory; nothing is pulled.
Writesoci-layout-evidence.json (on stdout, or to the file --output names)
--output namesone file (stdout when omitted)
Networkoffline — This command has no network-capable path.
Exit codes0 ok · 2 not an OCI image layout
Machine outputmachine-native — prints its OCI image-layout evidence as JSON on stdout by default, no flag needed; --output writes the same document to a file instead

Options

OptionValueDefaultAllowedRequiredHelp
-h, --help(flag)none—noshow this help message and exit
pathpathnoneanyyesA local OCI image layout directory.
--outputOUTPUTnoneanynoWrite oci-layout-evidence.json here (file; default stdout).

Examples

Record an OCI image layout's manifests and digests.

sh
sbomflow oci-evidence oci-layout

Write the document to a file.

sh
sbomflow oci-evidence oci-layout --output oci-layout-evidence.json

Refuse a directory that is not an OCI image layout. Exits 2.

sh
sbomflow oci-evidence rootfs

See also: sbomflow syft-scan, sbomflow analyze, sbomflow help goal firmware.

sbomflow syft-scan#

Optional: discover components via Syft and ingest its CycloneDX output (never required).

text
Optional: run the local Syft on a path, root filesystem or image archive and
ingest its CycloneDX output as external observations; never required. With no
Syft available the document still prints, recording `available: false`.
FactValue
Groupbuild-inputs — Build, firmware & update inputs
Stabilitystable
Regimeany
Readsa filesystem path, root filesystem or image archive; it runs the local Syft when there is one.
Writesstdout (syft-result.json, or to the file --output names)
--output namesone file (stdout when omitted)
Networkoffline — This command has no network-capable path.
Exit codes0 the document was written, including when Syft is not available · 2 usage error
Machine outputmachine-native — prints the ingested Syft result as JSON on stdout by default, no flag needed; --output writes the same document to a file instead; with Syft absent it still prints the document, recording available: false

Options

OptionValueDefaultAllowedRequiredHelp
-h, --help(flag)none—noshow this help message and exit
targettargetnoneanyyesA filesystem path / rootfs / image archive.
--executableEXECUTABLEsyftanynosyft executable (default: syft).
--formatFORMATcyclonedx-jsonanynoSyft output format (default: cyclonedx-json).
--outputOUTPUTnoneanynoWrite syft-result.json here (file; default stdout).

Examples

Scan a root filesystem with Syft; with none installed the document says available: false.

sh
sbomflow syft-scan rootfs --executable no-such-syft

Ask for SPDX JSON and write the document to a file.

sh
sbomflow syft-scan rootfs --executable no-such-syft --format spdx-json --output syft-result.json

See also: sbomflow elf-evidence, sbomflow oci-evidence, sbomflow analyze.

sbomflow firmware-extract#

Optional binwalk/unblob run: extracted files are never executed, and are deleted with the directory.

text
Optional: run binwalk or unblob on a local firmware image into a
controlled temporary directory and inventory what it extracted. The
extractor runs as a subprocess with no shell, a sanitized environment, a
timeout and bounded output; extracted files are never executed, and are
deleted with the directory. With the extractor absent the document still
prints, recording that extraction was skipped.
FactValue
Groupbuild-inputs — Build, firmware & update inputs
Stabilitystable
Regimeany
Readsone local firmware image; the extractor runs in a controlled temporary directory, and what it extracts is never executed.
Writesstdout (firmware-extraction.json, or to the file --output names)
--output namesone file (stdout when omitted)
Networkoffline — This command has no network-capable path.
Exit codes0 the document was written, including when the extractor is not available · 2 a missing image or a refused bound
Machine outputmachine-native — prints the bounded extraction inventory as JSON on stdout by default, no flag needed; --output writes the same document to a file instead; with the extractor absent it still prints the document, recording that extraction was skipped

Options

OptionValueDefaultAllowedRequiredHelp
-h, --help(flag)none—noshow this help message and exit
imageimagenoneanyyesLocal firmware image to inspect.
--adapter{binwalk,unblob}nonebinwalk, unblobyesWhich extractor to run on the image. SBOMFlow launches it as a subprocess with no shell, a sanitized environment, a timeout and bounded output, into a controlled temporary directory. It is not an OS or network sandbox: run a hostile image's extractor inside one you manage.
--executableEXECUTABLEnoneanynoExtractor executable (defaults to adapter name).
--expected-executable-sha256SHA256noneanynoOptional pinned extractor SHA-256.
--timeoutSECONDS120anynoSeconds the extractor subprocess may run before it is terminated and the extraction abandoned (default: 120). It does not bound the inventory walk that follows, which is bounded by --max-files/--max-expanded-bytes.
--max-file-bytesMAX_FILE_BYTES268435456anynoLargest single extracted file to inventory, in bytes (default: 256 MiB).
--max-expanded-bytesMAX_EXPANDED_BYTES8589934592anynoTotal extracted bytes to inventory before stopping, a decompression-bomb bound (default: 8 GiB).
--max-filesMAX_FILES5000000anynoLargest number of extracted files to inventory (default: 5000000).
--max-ratioMAX_RATIO200.0anynoLargest expanded-to-image size ratio treated as plausible (default: 200.0).
--max-depthMAX_DEPTH32anynoDeepest nesting level the inventory walk descends (default: 32).
--outputOUTPUTnoneanynoWrite firmware-extraction.json here (file; default stdout).

Examples

Inventory what binwalk would extract; with none installed, extraction is recorded as skipped.

sh
sbomflow firmware-extract firmware/firmware.bin --adapter binwalk --executable no-such-binwalk

Use unblob with a shorter timeout, writing the document to a file.

sh
sbomflow firmware-extract firmware/firmware.bin --adapter unblob --executable no-such-unblob --timeout 30 --output firmware-extraction.json

Tighten the decompression-bomb bounds.

sh
sbomflow firmware-extract firmware/firmware.bin --adapter binwalk --executable no-such-binwalk --max-expanded-bytes 1000000 --max-files 1000 --max-ratio 50 --max-depth 4

See also: sbomflow elf-evidence, sbomflow syft-scan, sbomflow mcuboot-evidence, sbomflow help goal firmware.

sbomflow mcuboot-evidence#

Parse an MCUboot image into deterministic firmware evidence (offline; never executed).

text
Parse one MCUboot image into deterministic firmware evidence: header, version,
security counter and TLVs. It is read, never executed; `mcuboot-verify` checks
the hash and signature.
FactValue
Groupbuild-inputs — Build, firmware & update inputs
Stabilitystable
Regimeany
Readsone MCUboot image; it is read, never executed.
Writesstdout (mcuboot-image-evidence.json, or to the file --output names)
--output namesone file (stdout when omitted)
Networkoffline — This command has no network-capable path.
Exit codes0 read, including bytes that are not an MCUboot image, which is reported · 2 a missing image
Machine outputmachine-native — prints its MCUboot image-header evidence as JSON on stdout by default, no flag needed; --output writes the same document to a file instead

Options

OptionValueDefaultAllowedRequiredHelp
-h, --help(flag)none—noshow this help message and exit
pathpathnoneanyyesAn MCUboot image file.
--outputOUTPUTnoneanynoWrite mcuboot-image-evidence.json here (file; default stdout).

Examples

Record an MCUboot image's header, version and TLVs.

sh
sbomflow mcuboot-evidence firmware/image.bin

Write the document to a file.

sh
sbomflow mcuboot-evidence firmware/image.bin --output mcuboot-image-evidence.json

See also: sbomflow mcuboot-verify, sbomflow update-manifest-evidence, sbomflow help goal firmware.

sbomflow update-manifest-evidence#

Parse local TUF metadata or an IETF SUIT CBOR envelope into bounded observations.

text
Parse local TUF metadata or an IETF SUIT CBOR envelope into bounded
observations of roles, versions, expiries and payload digests. Offline; --as-
of pins the time TUF expiry is judged at.
FactValue
Groupbuild-inputs — Build, firmware & update inputs
Stabilitystable
Regimeany
ReadsTUF metadata (a directory or file) or a SUIT CBOR envelope.
Writesstdout (update-manifest-evidence.json, or to the file --output names)
--output namesone file (stdout when omitted)
Networkoffline — This command has no network-capable path.
Exit codes0 ok · 2 a missing or unrecognised input
Machine outputmachine-native — prints its TUF/SUIT update-manifest evidence as JSON on stdout by default, no flag needed; --output writes the same document to a file instead

Options

OptionValueDefaultAllowedRequiredHelp
-h, --help(flag)none—noshow this help message and exit
pathpathnoneanyyesTUF metadata directory/file or SUIT CBOR file.
--format{auto,tuf,suit}autoauto, tuf, suitnoRead the input as TUF metadata or a SUIT CBOR envelope; auto detects it from the bytes (default: auto).
--as-ofAS_OFnoneanynoPinned ISO time for TUF expiry observations.
--outputOUTPUTnoneanynoWrite update-manifest-evidence.json here (file; default stdout).

Examples

Record a TUF repository's roles, versions and expiries.

sh
sbomflow update-manifest-evidence tuf

Name the format and pin the time expiry is judged at.

sh
sbomflow update-manifest-evidence tuf --format tuf --as-of 2026-07-01T00:00:00Z

See also: sbomflow uptane-evidence, sbomflow mcuboot-evidence, sbomflow help goal firmware.

sbomflow rauc-evidence#

Parse an exact RAUC manifest.raucm artifact (offline; no CMS verification).

text
Parse one RAUC manifest.raucm artifact, or the directory holding it, and
record the update's images and hashes. It is read, never executed or
extracted, and its CMS signature is not verified.
FactValue
Groupbuild-inputs — Build, firmware & update inputs
Stabilitystable
Regimeany
Readsone RAUC bundle or manifest; it is read, never executed or extracted.
Writesstdout (rauc-update-evidence.json, or to the file --output names)
--output namesone file (stdout when omitted)
Networkoffline — This command has no network-capable path.
Exit codes0 ok · 2 a missing or unrecognised artifact
Machine outputmachine-native — prints its RAUC bundle evidence as JSON on stdout by default, no flag needed; --output writes the same document to a file instead

Options

OptionValueDefaultAllowedRequiredHelp
-h, --help(flag)none—noshow this help message and exit
pathpathnoneanyyesThe exact artifact to parse; it is read, never executed or extracted.
--outputOUTPUTnoneanynoWrite rauc-update-evidence.json here (file; default stdout).

Examples

Record a RAUC update's manifest and images.

sh
sbomflow rauc-evidence vendor-updates/rauc

Write the document to a file.

sh
sbomflow rauc-evidence vendor-updates/rauc --output rauc-update-evidence.json

See also: sbomflow swupdate-evidence, sbomflow mender-evidence, sbomflow uptane-evidence, sbomflow help goal firmware.

sbomflow swupdate-evidence#

Parse an SWUpdate .swu newc/crc cpio or sw-description artifact.

text
Parse one SWUpdate artifact, a .swu newc or crc cpio archive or its sw-
description, and record the images and hashes it declares. It is read, never
executed or extracted.
FactValue
Groupbuild-inputs — Build, firmware & update inputs
Stabilitystable
Regimeany
Readsone SWUpdate sw-description or .swu artifact; it is read, never executed or extracted.
Writesstdout (swupdate-evidence.json, or to the file --output names)
--output namesone file (stdout when omitted)
Networkoffline — This command has no network-capable path.
Exit codes0 ok · 2 a missing or unrecognised artifact
Machine outputmachine-native — prints its SWUpdate artifact evidence as JSON on stdout by default, no flag needed; --output writes the same document to a file instead

Options

OptionValueDefaultAllowedRequiredHelp
-h, --help(flag)none—noshow this help message and exit
pathpathnoneanyyesThe exact artifact to parse; it is read, never executed or extracted.
--outputOUTPUTnoneanynoWrite swupdate-evidence.json here (file; default stdout).

Examples

Record an SWUpdate description's images and hashes.

sh
sbomflow swupdate-evidence vendor-updates/swupdate/sw-description

Write the document to a file.

sh
sbomflow swupdate-evidence vendor-updates/swupdate/sw-description --output swupdate-evidence.json

See also: sbomflow rauc-evidence, sbomflow mender-evidence, sbomflow help goal firmware.

sbomflow mender-evidence#

Inspect a Mender Artifact tar in memory without extracting or executing it.

text
Inspect one Mender artifact tar in memory and record its header, payloads and
checksums. Nothing is extracted or executed.
FactValue
Groupbuild-inputs — Build, firmware & update inputs
Stabilitystable
Regimeany
Readsone Mender artifact; it is read, never executed or extracted.
Writesstdout (mender-update-evidence.json, or to the file --output names)
--output namesone file (stdout when omitted)
Networkoffline — This command has no network-capable path.
Exit codes0 ok · 2 a missing or unrecognised artifact
Machine outputmachine-native — prints its Mender artifact evidence as JSON on stdout by default, no flag needed; --output writes the same document to a file instead

Options

OptionValueDefaultAllowedRequiredHelp
-h, --help(flag)none—noshow this help message and exit
pathpathnoneanyyesThe exact artifact to parse; it is read, never executed or extracted.
--outputOUTPUTnoneanynoWrite mender-update-evidence.json here (file; default stdout).

Examples

Record a Mender artifact's header, payloads and checksums.

sh
sbomflow mender-evidence firmware/gateway.mender

Write the document to a file.

sh
sbomflow mender-evidence firmware/gateway.mender --output mender-update-evidence.json

See also: sbomflow rauc-evidence, sbomflow swupdate-evidence, sbomflow help goal firmware.

sbomflow uptane-evidence#

Parse separate Uptane Director/Image repository metadata observations.

text
Parse Uptane Director and Image repository metadata into separate observations
of roles, versions, targets and expiries. It is read, never executed; --as-of
pins the time expiry is judged at.
FactValue
Groupbuild-inputs — Build, firmware & update inputs
Stabilitystable
Regimeany
ReadsUptane director and image-repository metadata; it is read, never executed.
Writesstdout (uptane-update-evidence.json, or to the file --output names)
--output namesone file (stdout when omitted)
Networkoffline — This command has no network-capable path.
Exit codes0 ok · 2 a missing or unrecognised input
Machine outputmachine-native — prints its Uptane metadata evidence as JSON on stdout by default, no flag needed; --output writes the same document to a file instead

Options

OptionValueDefaultAllowedRequiredHelp
-h, --help(flag)none—noshow this help message and exit
pathpathnoneanyyesThe exact artifact to parse; it is read, never executed or extracted.
--as-ofAS_OFnoneanynoPinned ISO time for expiry observations.
--outputOUTPUTnoneanynoWrite uptane-update-evidence.json here (file; default stdout).

Examples

Record an Uptane deployment's roles and targets.

sh
sbomflow uptane-evidence vendor-updates/uptane

Pin the time expiry is judged at and write the document to a file.

sh
sbomflow uptane-evidence vendor-updates/uptane --as-of 2026-07-01T00:00:00Z --output uptane-update-evidence.json

See also: sbomflow update-manifest-evidence, sbomflow rauc-evidence, sbomflow help goal firmware.

sbomflow build-applicability-evidence#

Sources a build compiled (offline; context).

text
Record which source files a local build compiled, read from the build's own
records: kbuild .<object>.o.cmd source_ lines (Linux, U-Boot), a CMake File
API reply, or compile_commands.json. Nothing is built or executed. Bind the
document to a component with build_applicability in sbomflow.yaml, and each
finding shows whether a file its CVE record names (programFiles) was among
the compiled sources.
FactValue
Groupbuild-inputs — Build, firmware & update inputs
Stabilityexperimental
Regimeany
Readsone local build directory's own records (kbuild .o.cmd files, a CMake File API reply or compile_commands.json); nothing is built or executed.
Writesbuild-applicability.json (the build-applicability document at --output); stdout (what was read, and whether the document is complete)
--output namesone file
Networkoffline — This command has no network-capable path.
Exit codes0 the document was written (complete or not; the summary says which) · 2 a missing or non-directory BUILD_DIR, or no kbuild .o.cmd file, CMake File API reply or compile_commands.json under it; nothing is written
Machine outputartifact-suffices — writes the build-applicability document at --output; that file is the machine surface, and analyze reads it through build_applicability in sbomflow.yaml

Options

OptionValueDefaultAllowedRequiredHelp
-h, --help(flag)none—noshow this help message and exit
BUILD_DIRBUILD_DIRnoneanyyesThe build directory (read-only). Source paths are stated relative to it; a path outside it is refused and counted.
--outputFILEnoneanyyesWrite the build-applicability document here (file); replaced if present.

Examples

Record the sources a kernel build compiled, from its .o.cmd files.

sh
sbomflow build-applicability-evidence kbuild-tree --output kernel-applicability.json

A CMake reply whose sources carry no compile group is recorded as incomplete, never as a clean list.

sh
sbomflow build-applicability-evidence cmake-build --output cmake-applicability.json

Refuse a directory with no build record. Exits 2.

sh
sbomflow build-applicability-evidence rootfs --output applicability.json

See also: sbomflow cmake-evidence, sbomflow analyze, sbomflow help goal firmware.