[jsonfusion] Update to 1.1.1 - #53259
Conversation
b6028ee to
e15428d
Compare
Billy O'Neal (BillyONeal)
left a comment
There was a problem hiding this comment.
GPT 5.6 reports:
Version 1.1.0 installs
JsonFusion/yaml.hpp, which includes nonexistentrapidyaml.hpp.
The port advertises default MSVC configurations despite upstream supporting only GCC 14+ and Clang 20+. MSVC compilation fails on constructs such as__attribute__((noinline)).
The installedJsonFusion/yyjson.hpprequires undeclaredyyjson.
e15428d to
d64745d
Compare
| # (3party is only used with JSONFUSION_FP_BACKEND=1, default is 0 with in-house implementation) | ||
| # Header-only. Install everything except the experimental 3party directory | ||
| # (only used with JSONFUSION_FP_BACKEND=1). The optional backend headers | ||
| # yaml.hpp and yyjson.hpp are #if __has_include-guarded, so they are |
There was a problem hiding this comment.
Unfortunately __has_include (as suggested in tucher/JsonFusion@1fda63a ) makes it an uncontrolled dependency; we need to patch the __has_include to be always false if we aren't providing the dependency. See https://learn.microsoft.com/vcpkg/contributing/maintainer-guide#when-defining-features-explicitly-control-dependencies
On the other hand it seems like a better fix would be to actually use/provide ryml? https://github.com/biojppm/rapidyaml/blob/master/src/ryml.hpp is named ryml.hpp not rapidyaml.hpp
d64745d to
cc01fe5
Compare
|
Thanks — fixed in the latest push. Controlled dependencies: the portfile now rewrites the
No On ryml: the version in the vcpkg |
Updates the
jsonfusionport to 1.1.1, which also addresses the review feedback on the earlier revision.Review fixes
"supports": "!windows"(the__attribute__((noinline))etc. do not compile with MSVC).yyjson.hppundeclared dependency: the optional backend headers are now#if __has_include(<...>)-guarded upstream (v1.1.1), so they are self-contained — installing/including them no longer requires the backend to be present; they compile to nothing without it. Ayyjsonfeature pulls theyyjsondependency to activateJsonFusion/yyjson.hpp.yaml.hppincludes nonexistentrapidyaml.hpp: same__has_includeguard, so the installed header is safe (no-ops without rapidyaml). It is intentionally left unfeatured: the vcpkgrymlport ships a different include layout (<ryml/ryml.hpp>), so it can't satisfy this header cleanly.Validation (arm64-osx)
format-manifest— no changes../vcpkg install jsonfusion— SHA512 verified forv1.1.1; installed headers (including the guardedyaml.hpp/yyjson.hpp) compile standalone with no backend deps present../vcpkg install jsonfusion[yyjson]— pullsyyjson@0.12.0;JsonFusion/yyjson.hppcompiles against it.Header-only;
boost-pfrdependency unchanged.x-add-version).