feat(c++): add lean header output - #3096
Open
foobra wants to merge 1 commit into
Open
Conversation
Generated-output differences253 files differ — 253 modified, 0 new, 0 deleted |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #3095
The C++ renderer now accepts the secondary
--lean-headeroption. It keeps the default output unchanged and adds a split mode forsingle-sourcegeneration:<name>Fwd.hppcontains standard-library dependencies,nlohmann/json_fwd.hpp, generated types, and JSON declarations.<name>Fwd.cppincludes the forward header, the fullnlohmann/json.hpp, and the implementation fragment.<name>.inccontains the non-inline serializer and helper definitions.This removes the full nlohmann JSON header from consumers that only need the generated types. Definitions are emitted as non-inline functions in the implementation fragment so the generated translation unit provides linkable symbols; header-side constraint helpers remain inline.
Added a renderer regression test for the three-file output. Verified the focused C++ unit tests, build/type-check, C++ generation and syntax checks, and multi-translation-unit linking.