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
e82d834bf2
Update copyright notice
2023-01-17 18:36:21 +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
b1bd782910
Fix typo in README
2022-10-13 19:58:40 +02:00
Martchus
2b0048f144
Change (de)serialization order of versioning and base classes
...
This allows deserializing the first base class on its own, even then the
derived class has been serialized. That makes sense if the full object (of
the derived class) should be stored but sometimes only the "base fields"
(of the base class) are needed.
2022-05-28 18:46:21 +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
9c3bf01c8f
Avoid warnings about unused var `allocator` for empty classes
2022-05-15 20:52:30 +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
a6b9d771aa
Do not treat warning "'this' pointer is null" appearing with GCC 12 as error
...
It is about code included from libclang and likely wrong so let's just not
abort the compilation due to it.
2022-05-12 20:23:33 +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
11491b1387
Add stalebot config
2022-04-12 01:05:03 +02:00
Martchus
df787f3105
Add copyright notice
2022-04-05 20:23:32 +02:00
Martchus
2cc044c705
Adapt tests to efaa8a8
2022-03-28 17:06:28 +02:00
Martchus
4966625d8b
Clarify that license is "GPL-2-or-later"
2022-03-15 21:46:56 +01:00
Martchus
efaa8a8441
Avoid warnings about using uninitialized variable
2022-02-22 20:03:49 +01:00
Martchus
22611457f9
Fix plural of pointer in README.md
2022-02-05 22:28:20 +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
8b66ca3e6b
Avoid using `DeclBase::getLangOpts()` to support older Clang versions
...
The `DeclBase::getLangOpts()` is merely a convenience but only available
in Clang 11 or newer.
2021-09-19 01:17:30 +02: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
a4dd52acfa
Define REFLECTIVE_RAPIDJSON_GENERATOR macro during generator runs
...
So one can distinguish regular compilation from the generator run by
checking this macro.
2021-05-16 19:25:36 +02:00
Martchus
e3d32ddfa1
Use std::string_view for CodeFactory parameters (where possible)
2021-05-16 19:25:30 +02:00
Martchus
8f1909dfdf
Exit when parsing arguments fails
2021-05-13 16:56:27 +02:00
Martchus
874c964e0b
Prevent warnings about unused variables in generated code
2021-03-22 14:16:40 +01: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
dc7c74c497
Update minimum C++ version mentioned in README
...
This likely doesn't work anymore with C++14 and I won't put any effort into
C++14 compatibility anymore at this point.
2021-01-15 15:27:28 +01:00
Martchus
80183f5269
Remove list of supported versions as it is too much work to maintain
2021-01-15 15:24:50 +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
2b6634d574
Allow supplying RapidJSON from outer scope
2020-12-05 21:29:38 +01:00
Martchus
0010e32515
Improve download section of README
2020-12-05 21:28:22 +01:00
Martchus
1970145b90
Add documentation regarding direct RapidJSON usage
2020-06-29 20:59:01 +02: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
4ff49156da
Apply clang-format
2020-05-28 12:02:22 +02:00
Martchus
18716b17be
Merge pull request #3 from otreblan/master
...
Fix missing header in gcc10
2020-05-28 11:51:42 +02:00