Commit Graph

255 Commits

Author SHA1 Message Date
otreblan beb4491b18
Fix missing header in gcc10 2020-05-27 22:20:22 -05:00
Martchus 8c032ee7a6 Fix compatibility with LLVM/Clang 10 2020-04-12 17:22:37 +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 e7bbdd0af6 Allow logging the exact list of options passed to clang
Since the options get splitted and not just passed as-is
this can be useful for debugging.
2020-01-26 20:41:34 +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 b37f467dcd Fix name of CMake package in example 2020-01-12 00:33:02 +01:00
Martchus 7482c64931 Support --binary-visibility in CMake function 2020-01-11 14:54:14 +01:00
Martchus f9fc9e02b7 Fix URL in project meta-data 2020-01-02 20:31:09 +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 022a174028 Remove wrong quote in README.md 2019-12-06 16:52:10 +01:00
Martchus 1192c2d74a Apply cmake-format 0.6.2 2019-12-06 16:51:47 +01:00
Martchus 03563aafbf Fix generator tests; it needs C++17 2019-11-14 18:13:39 +01:00
Martchus f75c8d77a2 Fix finding LibTooling when 'clang-cpp' target is used
See https://releases.llvm.org/9.0.0/tools/clang/docs/ReleaseNotes.html#build-system-changes
2019-11-14 17:18:49 +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
Martchus 7e5a32265d Add CLI help and completion for binary generator 2019-10-05 01:36:21 +02:00
Martchus 00dd569869 Update/improve README.md 2019-10-05 01:31:38 +02:00
Martchus d8e626d259 Fix toJsonDocument() for maps 2019-10-05 01:05:48 +02:00
Martchus d7e7bdb703 Add std::optional to TODOs 2019-08-09 17:59:00 +02:00
Martchus fecde7d2d1 Improve adding RapidJSON include dirs to tests
* Also check for `RapidJSON_INCLUDE_DIRS` which seems to be used now
* Do not add `-I` without subsequent path if the include directory
  is missing/empty which would lead to the Clang error:
  `error: unable to handle compilation, expected exactly one compiler job in ''`
2019-08-09 17:54:08 +02:00
Martchus f21f255e94 Don't use the same enum names twice
Prevents

```
[  168s] /home/abuild/rpmbuild/BUILD/reflective-rapidjson-1563638877.5f7c18b/lib/tests/jsonreflector.cpp:41:12: warning: type 'SomeEnumClass' violates the C++ One Definition Rule [-Wodr]
[  168s]    41 | enum class SomeEnumClass {
[  168s]       |            ^
[  168s] /home/abuild/rpmbuild/BUILD/reflective-rapidjson-1563638877.5f7c18b/lib/tests/binaryreflector.cpp:39:12: note: a type with different precision is defined in another translation unit
[  168s]    39 | enum class SomeEnumClass : std::uint16_t {
[  168s]       |            ^
```

observed in LTO-enabled builds
2019-08-09 17:48:08 +02:00
Martchus 8394c145f6 Update version 2019-08-05 20:27:21 +02:00
Martchus 5f7c18b59e Set project() on top-level
See https://github.com/Martchus/cpp-utilities/pull/15
2019-07-20 18:07:57 +02:00
Martchus 8f06bf0272 Do not call vector::reserve() in loop 2019-06-20 22:54:17 +02:00
Martchus a2b40753c3 Adapt adding include dirs to c++utilities 5 2019-06-20 22:53:03 +02:00
Martchus 6542eab80d Adapt to changes in c++utilities 2019-06-14 19:16:51 +02:00
Martchus 8cac133104 Adapt to changes in c++utilities 2019-06-10 22:46:06 +02:00
Martchus 2194000938 Apply cmake-format 0.5.1 2019-06-01 12:16:27 +02:00
Martchus dd174920fe Adapt to c++utilities v5 2019-05-04 16:09:58 +02:00
Martchus 9b80d662bb Catch polymorphic type by reference 2019-04-19 22:24:32 +02:00
Martchus 669aa16479 Fix building against LLVM/Clang 8 2019-03-27 14:41:57 +01:00
Martchus 2b0acbdd1e Cast pointer to the right type on non 64-bit architectures
That could explain why the tests sometimes fail under armv7l (before
making the fix for big pointer IDs).
2019-03-08 17:44:20 +01:00
Martchus 0bf19df0d9 Add explicit test for type mismatch on binary serialization 2019-03-08 17:40:36 +01:00
Martchus 04852627b2 Fix binary serializiation of shared_ptr too big for variable length encoding
* Retain backward compatibility by using either variable length int
  or regular 64-bit int extending the flags
* Add test for both cases
2019-03-08 17:40:08 +01:00
Martchus b058e9e9b9 Fix include for "empty" case in generator tests 2019-02-13 11:39:09 +01:00