Martchus
cc1641e0f8
Avoid use of deprecated `exec_program`
2023-12-19 20:28:41 +01:00
Martchus
1ea5b1e744
Avoid CMake deprecation warning by bumping version
2023-07-23 21:20:51 +02:00
Martchus
7c8ef68155
Avoid including headers from host when cross compiling
2023-06-06 16:31:06 +02:00
Martchus
e3e4596481
Allow configuring error resilience via CMake helper
2023-05-28 20:59:08 +02:00
Martchus
091d521152
Use `pubsetbuf` only with `libstdc++`
...
This usage of the function seems only to work as intended with that
standard lib. With `libc++` and the MSVC standard lib the call has no
effect.
2023-02-28 21:19:40 +01:00
Martchus
9a6d550d8f
Apply clang-format/cmake-format
2023-02-03 13:34:19 +01:00
Martchus
27b029ba67
Avoid invalid `-std=c++…` flag when `CXX_STANDARD` is empty in CMake macro
2022-12-23 20:54:54 +01:00
Martchus
d50a4c6004
Consider the `COMPILE_OPTIONS` target property as well in CMake macro
2022-12-23 20:53:22 +01:00
Martchus
10bb97bbc4
Apply clang-format
2022-10-13 19:59:20 +02:00
Martchus
5c7a6cba8c
Add default operator== to serializable classes
...
Otherwise derived classes cannot use add a default themselves. Maybe this
makes sense for more comparision operators. Note that I'm still testing the
usefulness. It already breaks when using multiple inheritane so maybe there
is a better way.
The operator is guarded by a version constraint because it is a C++20
feature.
2022-05-15 21:03:20 +02:00
Martchus
60d761f7ed
Pass version down to base classes in binary deserializer
...
So the behavior is consistent with readng members and with serialization.
It should be fine because if the base class is versioned it won't make a
difference but if it is versioned the version from the derived class can be
utilized.
2022-05-15 21:00:02 +02:00
Martchus
1e3417f8d0
Fix (de)serialization of std::int8_t/std::uint8_t
...
Those types are not supported by RapidJSON and therefore need extra
handling.
2022-05-15 03:11:39 +02:00
Martchus
762540f5e5
Add support for `std::optional`
2022-05-07 18:40:37 +02:00
Martchus
0633923935
Simplify use of type traits in `json/reflector.h`
2022-05-07 16:52:32 +02:00
Martchus
efaa8a8441
Avoid warnings about using uninitialized variable
2022-02-22 20:03:49 +01:00
Martchus
59ff3c19eb
Allow reporting a type mismatch specifying the expected RapidJSON type directly
2022-01-03 23:24:40 +01:00
Martchus
f8f551a78a
Fix include and namespace-prefix for using `std::move` in JSON reflector
2021-12-05 23:34:39 +01:00
Martchus
44c6b8c609
Throw exception during binary deserialization when version is not supported
2021-07-25 19:19:02 +02:00
Martchus
13428667f8
Remove surplus space
2021-07-25 19:13:29 +02:00
Martchus
852dfb7e3c
Add symlink for versioning
2021-07-25 17:31:07 +02:00
Martchus
0a902ac30c
Add experimental versioning for binary (de)serializer
2021-07-13 00:37:05 +02:00
Martchus
5e72012ed5
Fix typos found via `codespell --skip .git -w`
2021-07-03 19:50:25 +02:00
Martchus
30735ba187
Fix warnings
2021-03-20 21:25:56 +01:00
Martchus
5110cff5eb
Fix documentation for std::string_view's push/toJsonDocument function
2021-01-15 17:48:46 +01:00
Martchus
5c49a438ad
Use header-only target of c++utilities
...
The current approach even distinguished between the build and install
interface. However, CPP_UTILITIES_INCLUDE_DIRS is not correctly evaluated
at the time PUBLIC_INCLUDE_DIRS is populated here because the variable
PACKAGE_PREFIX_DIR from the c++utilities config module still points to the
build directory at build time and using $<INSTALL_INTERFACE:…> can not help
with that.
2021-01-01 18:48:14 +01:00
Martchus
6252a7335a
Apply cmake-format and clang-format
2020-12-05 21:29:55 +01:00
Martchus
1e95c3d1ca
Don't use StringRef with RapidJSON's SetString and allocator
...
There is no overload taking a RAPIDJSON_NAMESPACE::StringRef and an
allocator. So the StringRef will be implicitly converted back to a plain
CharType pointer causing an additional length calculation.
2020-06-29 20:26:19 +02:00
Martchus
c33e1687cb
Support serializing std::string_view
2020-06-26 22:08:05 +02:00
Martchus
c4f622df8d
Apply cmake-format
2020-03-08 13:52:01 +01:00
Martchus
442359f5bf
Add a function to format JSON deserialization errors
2020-02-29 22:35:02 +01:00
Martchus
86481fa459
Prevent CMake error when using CMake < 3.15.0
2020-02-18 19:40:48 +01:00
Martchus
cf41f4596a
Prevent passing "empty" flags to the code generator
...
Otherwise flags like "-D -I/foo" might be passed to clang which
will then complain that "-I/foo" is not a valid name for a macro.
2020-02-14 16:26:50 +01:00
Martchus
4b4d674f56
Allow adding clang options from dependencies
2020-01-31 20:43:01 +01:00
Martchus
891b96a38f
Fix build with custom target suffix
2020-01-31 19:49:18 +01:00
Martchus
c68d9ea384
Format CMake files with cmake-format 0.6.7
2020-01-26 20:42:03 +01:00
Martchus
ed3f89953f
Add missing symlinks to include directory
2020-01-26 20:38:47 +01:00
Martchus
6e4077eed2
Add JsonDeserializationErrors::ThrowOn::All
2020-01-26 20:38:24 +01:00
Martchus
2f1098ae3d
Make m_pointer of BinarySerializer and BinaryDeserializer private
2020-01-12 00:50:30 +01:00
Martchus
7482c64931
Support --binary-visibility in CMake function
2020-01-11 14:54:14 +01:00
Martchus
72a11c22b1
Apply cmake-format 0.6.5
2019-12-27 01:43:41 +01:00
Martchus
48639b42b2
Support serialization of std::pair
2019-12-27 01:43:28 +01:00
Martchus
717fb2f037
Polish lib/binary/reflector.h
2019-12-27 01:42:34 +01:00
Martchus
450588af89
Support multimap and unordered_multimap
...
The previously (undocumented) implementation used non-unique
keys in JSON objects. This is not strictly forbidden by the
RFC but not recommended. Multiple values are now stored within
an array instead.
2019-12-27 01:40:34 +01:00
Martchus
1192c2d74a
Apply cmake-format 0.6.2
2019-12-06 16:51:47 +01:00
Martchus
456702e009
Remove unused std::monostate handling
...
This wasn't useful after all.
2019-11-03 22:38:27 +01:00
Martchus
3374e4ea6c
Fix passing C++ version in CMake macro
2019-11-03 22:37:55 +01:00
Martchus
e29db0fa87
Prevent warnings about unused lambda captures
2019-11-03 22:37:19 +01:00
Martchus
1024b8e391
Use override in test fixtures
2019-11-03 22:33:29 +01:00
Martchus
c3dc381425
Support `std::variant`
2019-11-03 22:02:56 +01:00
Martchus
dd652b4de7
Apply CMake format
2019-10-12 19:04:17 +02:00