Commit Graph

227 Commits

Author SHA1 Message Date
Martchus fa6e16b45d Update README section about packages 2018-04-04 20:30:40 +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 03e3a4bc67 Support std::(unordered_)?(multi)?set 2018-02-26 22:39:09 +01:00
Martchus 432f997d16 Increase version 0.0.2 -> 0.0.3 2018-02-05 22:42:10 +01:00
Martchus e6c54a37e4 Improve README and make it work with md2pdf 2018-02-05 21:58:37 +01:00
Martchus 9e11d805c1 Prevent running Qt's generator on files from this generator 2018-02-05 21:21:56 +01:00
Martchus ea924b7a3f Merge sections for passing options to Clang 2018-02-03 16:26:21 +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 1f571549e7 Update README.md 2018-02-03 16:08:54 +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 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