Refureku

Cross-platform C++17 Runtime Reflection Library

MIT License

Stars
221

Bot releases are hidden (Show)

Refureku - v1.4.0

Published by jsoysouvanh almost 4 years ago

Add

  • New cmake compilation flag GEN_PROPERTY_RTTI for programs using the library with RTTI on
  • User-defined properties can now generate custom code
  • New overloads to search all kinds of entities by predicate
  • Intermediate methods to fill entities metadata. It is used by the generated code and makes a cleaner way to manually setup and register entities.

Update

  • Complete rework of the property system
  • Spaces are not ignored by default when parsing properties

Remove

/

Refureku - v1.3.0

Published by jsoysouvanh almost 4 years ago

Add

  • Function reflection
  • Variable reflection
  • Multithreaded code generator
  • rfk::Enum::underlyingType
  • rfk::getArchetype template function available for any type
  • compiler setting
  • More informative logs when loading settings from the RefurekuSettings.toml file

Update

  • Accelerate file parsing (ignore generated code)
  • Entity::EKind enum now contains a value of each concrete Entity class
  • Fundamental archetypes now register to the database
  • Rename rfk::ReflectedObject to rfk::Object
  • Settings are now safer to manipulate (check paths, compiler support...)

Remove

  • DynamicGetArchetype property - Each reflected class inheriting directly or indirectly from rfk::Object will now have their getArchetype method overriden
Refureku - v1.2.0

Published by jsoysouvanh about 4 years ago

Add

  • Namespace reflection support
  • Nested struct/class/enum reflection support
  • shouldParseAllEntities setting (editable in .toml settings file)
  • outerEntity field to Entity base class. Allows to know in which entity an entity is nested (has been declared)
  • Enum and namespace auto-registration through a single macro: File_GENERATED
  • Documentation, more documentation!

Update

  • Default subproperty encloser to ( )
  • README
Refureku - v1.1.2

Published by jsoysouvanh over 4 years ago

Add

  • New stability tests on Linux 18.04 / Clang 10.0.0 and G++10 (travis)
  • Documentation to main framework class headers

Update

  • Minor compatibility improvements on Clang
  • Struct::getMethod() and Struct::getStaticMethod() template version with more user-friendly template syntax
  • Exception handling in Method::invoke(), Method::checkedInvoke(), StaticMethod::invoke() and StaticMethod;;checkedInvoke
  • Some README sections

Fix

  • Compatibility problems when using MSVC v141 platform toolset
Refureku - v1.1.1

Published by jsoysouvanh over 4 years ago

Update

  • Minor compatibility improvements on Clang
Refureku - v1.1.0

Published by jsoysouvanh over 4 years ago

This release brings a lot of documentation and a bunch of new features that make Refureku easier to use.

Fixes

  • makeInstance in now only defined for Struct or Class classes (instead of Archetype in the previous version)
  • Delete all LLVM static libs to keep only libclang shared library

Updates

  • Remove all warnings from the library + generated code
  • [Method|StaticMethod]::safeInvoke becomes [Method|StaticMethod]::checkedInvoke

New features

  • Can get any entity by its unique ID from the Database
  • Can get a method by prototype (templated)
  • New builtin property CustomInstantiator. See here
  • Customizable using a TOML file
Refureku -

Published by jsoysouvanh over 4 years ago

This release is the first stable version containing most of the features of the library.
It has been tested on Windows using MSVC 2019 (16.4.6), and on Linux G++8/9 & Clang7/8/9.