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
1eaa2d52c2
Update README and TODOs to current state
2018-01-24 19:37:25 +01:00
Martchus
ce14bd12c4
Fix 'above' in README.md
2018-01-24 19:12:36 +01:00
Martchus
079534f301
Update TODOs
2018-01-21 19:44:33 +01:00
Martchus
a2f9c915b6
Increase version 0.0.1 -> 0.0.2
2018-01-20 21:44:57 +01:00
Martchus
7d9e1cf1de
Add TODO
2018-01-20 21:20:12 +01:00
Martchus
cb1741de89
Add PATHS to find_program(REFLECTION_GENERATOR_EXECUTABLE
2018-01-20 21:15:14 +01:00
Martchus
cb095b936a
Add include directory for build time
...
This dir is used when building eg. tageditor and reflective
rapidjson as one big project.
2018-01-20 21:14:48 +01:00
Martchus
c2e15f10fb
Fix unused variable
2018-01-20 20:43:29 +01:00
Martchus
5f86cc6243
Add notes regarding cross compilation
2018-01-20 19:47:09 +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
35850df15e
Improve README.md
2018-01-15 01:25:23 +01:00
Martchus
3d750ada08
Add link to Arch Linux package
2018-01-12 17:01:55 +01:00
Martchus
742511ba10
Add CMake module paths of c++utilities for library
2018-01-12 15:55:10 +01:00
Martchus
282a3a1fb6
Add architecture diagram
2018-01-12 15:35:17 +01:00
Martchus
38d843b399
Improve README.md
2018-01-07 00:56:12 +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
ca2a6acb2a
Add dummy for pulling C-style string
...
So at least everything can compile and the type-check
is done.
2017-12-24 02:13:16 +01:00
Martchus
272ec99bb0
Allow parsing any number as any kind of integral/floating point
...
Makes sense because JSON does not distinguish different kinds of
numbers anyways
2017-12-24 02:12:01 +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
0bb06d5190
Ensure all pull helper are declared prior to the call site
2017-12-24 00:57:08 +01:00
Martchus
ec66f14e4c
Just use IsNumber() to check for numbers
...
Otherwise deserializing doubles does not work
when there's no explicit decimal point in the
JSON file.
2017-12-22 20:44:04 +01:00
Martchus
489d4c71c0
Fix typo
2017-12-22 20:31:48 +01:00
Martchus
8016a42394
Fix adding adaption records in namespaces
2017-12-22 20:31:35 +01:00
Martchus
29b39bc7bc
Use uint64/int64 to serialize enums
...
Otherwise, enums using char as underlying types
can not not be serialized.
2017-12-22 20:30:55 +01:00
Martchus
9a2c2cfef6
Deserialize enums as well
2017-12-22 20:30:01 +01:00
Martchus
7b6fe57aac
Prevent segfault when no args specified
2017-11-23 15:18:44 +01:00
Martchus
b27e0ba772
Make condition for bundled c++utilities more generic
2017-11-18 00:28:54 +01:00
Martchus
86a577748e
Allow direct serialization of iteratables
2017-11-18 00:28:24 +01:00
Martchus
69d4fa193f
Apply clang-format
2017-11-18 00:27:25 +01:00
Martchus
add8ddaeec
Apply clang-format
2017-11-17 22:04:11 +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
a159bdbdb0
Propagate binary and source dir to parent scope
2017-11-16 01:56:04 +01:00
Martchus
a7f587cb84
Support std::map and std::unordered_map
2017-11-13 20:16:43 +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
683d87c366
Allow disabling generator
2017-11-13 08:51:33 +01:00
Martchus
f24390a00b
Support smart pointer
2017-11-12 23:18:01 +01:00