Commit Graph

73 Commits

Author SHA1 Message Date
Martchus 7e5a32265d Add CLI help and completion for binary generator 2019-10-05 01:36:21 +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 8f06bf0272 Do not call vector::reserve() in loop 2019-06-20 22:54:17 +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 dd174920fe Adapt to c++utilities v5 2019-05-04 16:09:58 +02:00
Martchus 669aa16479 Fix building against LLVM/Clang 8 2019-03-27 14:41:57 +01:00
Martchus b058e9e9b9 Fix include for "empty" case in generator tests 2019-02-13 11:39:09 +01:00
Martchus 1f6fade6c2 Apply cmake-format 2019-02-09 21:25:11 +01:00
Martchus 39dcba215e Let CMake generate code for test application 2019-01-13 22:27:35 +01:00
Martchus ef27d71f43 Fix multiple definition error caused by forward declarations 2018-11-08 00:38:45 +01:00
Martchus aa92cab4e5 Test pointer handling of binary serialization 2018-10-28 21:35:32 +01:00
Martchus 5835cd85a5 Remove unused createFileIDForMemBuffer() 2018-09-04 19:39:32 +02:00
Martchus 25e7891573 Apply clang-format 2018-06-26 00:10:44 +02:00
Martchus f140c7f436 Use C++ 17 2018-06-26 00:07:59 +02:00
Martchus c170993392 Reduce code duplication between serialization generators 2018-06-23 18:04:30 +02:00
Martchus e93be04e35 Implement generator for binary (de)serialization
Still need to refactor common code with the JSON generator.
2018-06-23 17:25:30 +02:00
Martchus 9dc7bd371c Apply clang-format 2018-06-23 14:35:53 +02:00
Martchus 8628427e6d Fix usage of enable_if with GCC 8
Seems like the trick with the three dots isn't working
with GCC 8 anymore. So let's make it a default template
parameter then.

Not sure whether GCC 8 is here correct and whether this
workaround causes further trouble.
2018-05-07 23:48:37 +02:00
Martchus 36463cd6dc Apply clang-format from LLVM 6 2018-04-04 20:31:49 +02:00
Martchus 7db20f5ad5 List all required LLVM/Clang libraries explicitely
Those libraries are direct dependencies and must be listed
explicitely when linking dynamically because transitive
dependencies of clangTooling are not pulled automatically
by CMake in this case.

This is required to use LLVM 6 which has switched to dynamic
libraries (at least under Arch Linux).
2018-03-14 18:33:15 +01:00
Martchus f0870d3a54 Test with size_t (defined in Clang's builtin headers) 2018-02-03 16:14:20 +01:00
Martchus 2098ff702e fixup! Do not turn errors into warnings by default 2018-02-03 16:10:01 +01:00
Martchus d1fe76f322 Use mutable instead of const_cast 2018-02-03 16:09:31 +01:00
Martchus 8587d62583 Do not turn errors into warnings by default
Not required anymore since the resource dir is specified
correctly.
2018-02-03 15:47:25 +01:00
Martchus 21e7f83995 Improve documentation 2018-02-03 15:45:15 +01:00
Martchus 54d4a15d4f Set Clang's resource dir and platform triple correctly
* The option `-resource-dir` must be specified to
  point to Clang's resource directory containing built-in
  header files. Then the massive warnings are gone.
* Setting the platform triple seems to be the right way
  for cross-compilation. Note that the stdlib.h still needs
  to be worked around.
2018-02-03 15:44:10 +01:00
Martchus 4ae20cf38b Clean the CLI flags passed to clang by default 2018-02-03 15:37:30 +01:00
Martchus 8eb9e9ec27 Do not adjust the config in AST consumer
* Adjusting the config at this point seems
  to be too late, at least it does not seem
  have any effect
* Rather use the CLI arguments
2018-02-03 15:36:53 +01:00
Martchus 0d2f39a2b5 Use hash map to find specified code generator
So adding further generators will not result in having
a lot of "else if (!strcmp(..." conditions.

This also allows to improve the error message.
2018-02-02 18:21:04 +01:00
Martchus c2e15f10fb Fix unused variable 2018-01-20 20:43:29 +01:00
Martchus baf7eec38e Invoke add_reflection_generator_invocation only if building tests 2018-01-20 19:46:17 +01:00
Martchus beb4d1d672 Prevent ambiguity of own arguments and clang options consistently 2018-01-20 19:32:46 +01:00
Martchus c36279665d Fix cross-compilation with mingw-w64 2018-01-20 18:10:58 +01:00
Martchus 2fa1e923f9 Skip deserializing const member variables 2017-12-31 00:48:51 +01:00
Martchus c5968f1663 Test whether code generation is skipped for included structs 2017-12-31 00:37:30 +01:00
Martchus 51e55f1673 Fix 'isOnlyIncluded' check for 3rdparty adaption
* Ensure the adaption is done in our source file
* Allow the 3rdparty class/struct to be in any file
2017-12-26 16:29:51 +01:00
Martchus 5f799cc65d Prevent code generator for records which are only included 2017-12-24 02:02:40 +01:00
Martchus bae7cf3414 Prevent generating pull method for non-default constructable classes 2017-12-24 01:07:52 +01:00
Martchus 8016a42394 Fix adding adaption records in namespaces 2017-12-22 20:31:35 +01:00
Martchus 7b6fe57aac Prevent segfault when no args specified 2017-11-23 15:18:44 +01:00
Martchus 69d4fa193f Apply clang-format 2017-11-18 00:27:25 +01:00
Martchus f5a240649f Separate RapidJSON specific parts
So when extending this for further applications of
reflection, the JSON-specific parts can be made optional.
2017-11-17 22:04:01 +01:00
Martchus 8c3dd5535d Pass the include dir for c++utilities and RapidJSON to tests
So test cases do not fail if the header files for those
dependencies are installed in a custom location.
2017-11-17 22:01:18 +01:00
Martchus 227d3f3942 Allow passing target config to generator invocation
So the code generator 'sees' the source code in the same
way as the compiler does.
2017-11-17 21:42:49 +01:00
Martchus 19cab9c791 Bundle c++utilities correctly
* Use the c++utilities source directory for includes rather
  than the locations where headers are goint to be installed
* Call find_package for c++utilities only once
2017-11-17 21:21:34 +01:00
Martchus d5144d8e75 Restore GCC compatibility 2017-11-16 01:56:04 +01:00
Martchus 19590d30a4 Explicitely ignore static members (for now) 2017-11-13 16:41:47 +01:00
Martchus c71a9baa54 Test std::unique_ptr in generated code 2017-11-13 16:18:32 +01:00
Martchus e9324f0ec3 Fix incomplete use of AdaptedJsonSerializable and handling tuple 2017-11-12 00:44:47 +01:00