💥 Depend on nlohmann_json privately - #2138
Merged
Merged
Conversation
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
denialhaag
force-pushed
the
independent-nlohmann-json
branch
3 times, most recently
from
August 17, 2026 19:54
650910e to
84834b4
Compare
Assisted-by: Opus 5 via Claude Code
Assisted-by: Opus 5 via Claude Code
Assisted-by: Opus 5 via Claude Code
Assisted-by: Opus 5 via Claude Code
Assisted-by: Opus 5 via Claude Code
Assisted-by: Opus 5 via Claude Code
denialhaag
force-pushed
the
independent-nlohmann-json
branch
from
August 17, 2026 20:04
84834b4 to
30ff511
Compare
burgholzer
approved these changes
Aug 17, 2026
burgholzer
left a comment
Member
There was a problem hiding this comment.
Very clean. Just one minor suggestion 😌
Co-authored-by: Lukas Burgholzer <burgholzer@me.com> Signed-off-by: Daniel Haag <121057143+denialhaag@users.noreply.github.com>
burgholzer
reviewed
Aug 17, 2026
Signed-off-by: Lukas Burgholzer <burgholzer@me.com>
12 tasks
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.
Description
🤖 AI text below 🤖
MQT Core no longer exposes
nlohmann_jsonas part of its public package contract. It uses the library only inside its implementation, for QDMI device discovery and superconducting device configuration, and stops installing it, exporting it, and looking for it in its package configuration.The decision-diagram statistics drove most of the public exposure. They now report through strings and streams:
json()onStatistics,MemoryManagerStatistics,TableStatistics, andUniqueTableStatistics, as well asUniqueTable::getStatsJson,getStatistics, andgetDataStructureStatistics, are removed. The primitive counters,toString(), and the stream operator remain, andgetStatisticsStringand the newgetDataStructureStatisticsStringreturn the same report as a JSON-formatted string. Rendering moved to a header that is not installed, so the reports keep their format while no installed header includes anlohmannheader.The remaining users link the library through
$<BUILD_INTERFACE:>. Without the generator expression, a private dependency of a static library still appears as a$<LINK_ONLY:>entry in the installed interface, which would leave consumers resolving a target that MQT Core no longer provides.This also removes the
MQT_CORE_JSON_INSTALLoption together with the machinery that installed the library's headers, package configuration, and natvis file.Consumers that use
nlohmann_jsonthemselves have to depend on it directly. MQT QCEC, MQT DDSIM, and MQT QuSAT already do; MQT QMAP always did.This pull request forms a stack with #2137 and targets that pull request's branch rather than
main.Fixes #2099
AI notice
This PR and its contents were created with the assistance of Opus 5 via Claude Code.
Checklist
I have updated the documentation to reflect these changes.If PR contains AI-assisted content:
🤖 *AI text below* 🤖(titles are exempt).