Skip to content

fix(cxx): resolve response-file and transitive header includes - #901

Open
Sk1tch wants to merge 2 commits into
peteromallet:mainfrom
Sk1tch:codex/cxx-compilation-context
Open

Sk1tch wants to merge 2 commits into
peteromallet:mainfrom
Sk1tch:codex/cxx-compilation-context

Conversation

@Sk1tch

@Sk1tch Sk1tch commented Oct 27, 2026

Copy link
Copy Markdown

Compilation databases generated by Unreal place their include flags in compiler response files. The C++ dependency graph currently reads only inline arguments and only visits includes in translation units. Module-relative headers and headers included by other headers therefore appear unused.

Expand response-file arguments without executing commands, with guards for cycles, excessive nesting, unreadable files and malformed input. Follow project headers using each translation unit's include context, retaining direct header-to-header edges and unioning contexts when a header is shared. This complements #861's compiled-root recognition and addresses the include-resolution part of #859.

Validation: 49 C++ plugin tests pass, including nested response files, cycles, missing files, transitive header cycles and shared headers compiled under different include roots. Against the originating Unreal compilation database, all 84 project source files are represented and all native headers have real importers. Ruff formatting and lint pass. The core suite's two pre-existing review-prompt assertion failures are also reproduced on unchanged upstream; other tests pass.

github-actions Bot added a commit to citizenadam/desloppify that referenced this pull request Oct 27, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant