novelrt / NovelRT

A cross-platform 2D game engine accompanied by a strong toolset for visual novels.
MIT License
183 stars 43 forks source link

Feature/replace jsoncons #535

Closed Pheubel closed 1 year ago

Pheubel commented 1 year ago

Please check if the PR fulfills these requirements

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...) Replaces jsoncons with nlohmann json as json provider for NovelRT

Is there an open issue that this resolves? If so, please link it here. This PR partially resolves https://github.com/novelrt/NovelRT/issues/500, more specifically; jsoncons was causing issues when compiling for C++ 20.

What is the current behavior? (You can also link to an open issue here) The DesktopResourceLoader uses jsoncons for bson deserialization/serialization

What is the new behavior (if this is a feature change)? The DesktopResourceLoader uses nlohmann json for bson deserialization/serialization

Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?) If users relied on jsoncons as json provider, they will have to either set up the inclusion themself, or convert their json code to work with nlohmann json. If users relied on nlohmann json as json provider (indirectly provided through Fabulist) then they should not have to change their code.

Other information: So far I only touched the CMake and the C++ code. I do not really know what exact alterations I would have to make to the LICENCE-DIST.md and the build-system.yml.

RubyNova commented 1 year ago

The build system YML should not require changes but I'll leave that up to @capnkenny to confirm.

The licence distributable file requires you to add the licence for the new dependency, and remove the jsoncons licence assuming I added it originally, and that's it.

capnkenny commented 1 year ago

Just confirming - build system does not need to change and passes as-is

FiniteReality commented 1 year ago

Merging on @RubyNova's instructions. Fingers crossed this doesn't break everything :stuck_out_tongue_winking_eye: