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