Neatbo.

CMake File API artifact inventory

Join local codemodel2 reply files across configurations, resolving every declared artifact against the top-level build root with full dependencies.

Browser-local processingInputCMake File API reply JSON collectionOutputArtifact / dependency inventory JSON / CSVUp to 1 MiB per file · File limit: 2000
  1. 1Add input
  2. 2Adjust settings
  3. 3Get your result

Tool input and files are processed in this browser without being uploaded.

Your input

Inputs are kept temporarily in this tab when switching tools. Refreshing or closing clears them; large results may need to be regenerated.

⌘ / Ctrl + Enter to run

or drag and drop them here

Files stay on this device. Your originals stay unchanged.

.json

Up to 1 MiB per file · File limit: 2000

    Options

    Complete the required options first. You can keep the defaults for the rest.

    Preparing the tool…

    Before you start

    Find full declared output paths without guessing from nameOnDisk or a target’s subdirectory. Read the exported reply snapshot locally, without compiling or running project commands.

    How to use this tool

    1. Select index,codemodel and referenced target reply JSON files.
    2. Choose the index when ambiguous and the snapshot’s POSIX/Windows path mode.
    3. Review every artifact,utility status and dependency; download complete JSON/CSV for a separate packaging workflow.

    Supported inputs and limits

    Select up to2,000 distinct JSON basenames,each1MiB,total10MiB; no paste. Targets across configurations10,000,artifacts20,000,dependencies50,000,aggregate JSON values500,000,depth64. Complete downloads20MiB; combined budgets apply atomically.

    Select an index basename when several indexes exist; one is chosen automatically only when unique. References must be single legal basenames in the collection. Missing/traversal/ambiguous references,id/name mismatch and duplicate target IDs within a configuration reject; IDs reused across configurations remain.

    Only codemodel major2/minor0..7 snapshots are supported. Every configuration,target and artifact remains; no artifact is an explicit no-declared-artifacts status. nameOnDisk does not replace missing artifacts. Unknown reply objects/files/target fields are listed as uninterpreted.

    Relative artifact paths resolve against codemodel.paths.build,never target.paths.build. Choose POSIX or Windows lexical mode; preserve absolute paths,drive and UNC anchors while normalizing dots. Windows drive-relative C:foo is ambiguous and unsupported; dependencies outside a config remain dangling declarations.

    No path stat/build/command/CMakeLists execution; command fragments remain uninterpreted. Declared paths do not prove a file exists or a build succeeded. Preview200 rows/cell2000; >20,000 report characters gives labelled text/copy preview; full JSON/CSV remain complete.

    Worked example

    Example input

    [selected fixed files]
    Example options
    {"secondary":"","params":{"indexFile":"","pathMode":"posix","spreadsheetSafe":true}}

    Example output

    {"format":"CMake-FileAPI-codemodel2-local-declarations","summary":{"indexFile":"index-2026-10-06T20-46-35-0924.json","pathMode":"posix","codemodelMajor":2,"codemodelMinor":7,"configurations":1,"targets":4,"artifacts":3,"dependencies":0,"danglingDependencies":0,"inputFiles":8,"inputBytes":6947,"jsonNodes":299,"uninterpretedReplyObjects":0,"uninterpretedFiles":2},"buildRoot":"/tmp/neatbo-data-d061-prototype-v1/cmake-build","targets":[{"configurationIndex":0,"configuration":"","id":"app::@6890427a1f51a3e7e1df","name":"app","type":"EXECUTABLE","buildRoot":"/tmp/neatbo-data-d061-prototype-v1/cmake-build","targetBuildPath":".","nameOnDisk":"app","sourceFile":"target-app-2dd706a842aeee50d682.json","status":"declared-artifacts","artifacts":[{"rawPath":"dist/app","resolvedPath":"/tmp/neatbo-data-d061-prototype-v1/cmake-build/dist/app"}],"dependencies":[],"unreviewedFields":["backtrace","backtraceGraph","compileGroups","link","sourceGroups","sources"]},{"configurationIndex":0,"configuration":"","id":"notes::@6890427a1f51a3e7e1df","name":"notes","type":"UTILITY","buildRoot":"/tmp/neatbo-data-d061-prototype-v1/cmake-build","targetBuildPath":".","nameOnDisk":null,"sourceFile":"target-notes-7e86ce9c0b487c059840.json","status":"no-declared-artifacts","artifacts":[],"dependencies":[],"unreviewedFields":["backtrace","backtraceGraph","sourceGroups","sources"]},{"configurationIndex":0,"configuration":"","id":"shared::@2417087a58ea4ddb4a1c","name":"shared","type":"SHARED_LIBRARY","buildRoot":"/tmp/neatbo-data-d061-prototype-v1/cmake-build","targetBuildPath":"sub","nameOnDisk":"libshared.dylib","sourceFile":"target-shared-9b19ad73f9f1bf782e6e.json","status":"declared-artifacts","artifacts":[{"rawPath":"pkg/shared/libshared.dylib","resolvedPath":"/tmp/neatbo-data-d061-prototype-v1/cmake-build/pkg/shared/libshared.dylib"}],"dependencies":[],"unreviewedFields":["backtrace","backtraceGraph","compileGroups","link","sourceGroups","sources"]},{"configurationIndex":0,"configuration":"","id":"side::@2417087a58ea4ddb4a1c","name":"side","type":"STATIC_LIBRARY","buildRoot":"/tmp/neatbo-data-d061-prototype-v1/cmake-build","targetBuildPath":"sub","nameOnDisk":"libside.a","sourceFile":"target-side-47fcaaa8f82a0e55dad3.json","status":"declared-artifacts","artifacts":[{"rawPath":"pkg/lib/libside.a","resolvedPath":"/tmp/neatbo-data-d061-prototype-v1/cmake-build/pkg/lib/libside.a"}],"dependencies":[],"unreviewedFields":["archive","backtrace","backtraceGraph","compileGroups","sourceGroups","sources"]}],"otherReplyObjects":[],"uninterpretedFiles":["directory-.-f5ebdc15457944623624.json","directory-sub-345c40cd4fda4f871b7a.json"],"scope":"All artifact paths resolve lexically against codemodel.paths.build, never target.paths.build or nameOnDisk. Paths and dependencies are declarations, not existing files or build success. No CMakeLists, commands, build or executable is run. Other reply objects/files and target fields are listed as uninterpreted; command fragments are not inspected."}

    When something does not work

    Supply the missing referenced reply files and preserve unique basenames. Choose the intended index and correct path mode. Unsupported versions or drive-relative paths need a fresh supported producer snapshot; rerun after correction/cancellation.

    Frequently asked questions

    Which build directory prefixes an artifact?

    codemodel.paths.build is the top-level root. target.paths.build may be a subdirectory and must not be prefixed again.

    Why is a utility target missing a filename?

    A utility can legitimately declare no artifact. The report keeps its target and status without inventing output from nameOnDisk.

    Will it run CMake or check disk files?

    No. It reads declarations only,without stat,compilation,CMakeLists evaluation or executable launch.

    Documentation & further reading

    Related tools