Skip to content

Releases: jsoysouvanh/Kodgen

v2.2.0

18 Apr 08:31
Compare
Choose a tag to compare

The version 2.2.0 of Kodgen brings a few bug fixes and new small features.

New

  • The StructClassInfo class now contains a flag isImportExport to determine whether a parsed struct/class is imported or exported.
  • It is now possible to select the C++ version used during the file parsing phase. Only c++17 and c++20 are available for now. The version is settable from the C++ API or from the TOML file. See the wiki page for more information.

Updates

  • The EntityMacros.h file generation pattern has changed to to make sure that the entity macros are always when necessary. Having a project with different macros within the same compilation unit was not supported before (and now is).

Fixes

  • The StructClassTree is correctly updated when there are dllImport / dllExport symbols on a struct/class.

v2.1.0

20 Nov 16:01
Compare
Choose a tag to compare

Update

  • Deprecate ParsingSettings::shouldParseAllEntities. Instead, the flag has been split into 9 different flags (1 for each type of entity) for better granularity, as requested by #2 for namespaces. With that change, it is also possible to control whether enum values should all be parsed or not. The new flags are available from both C++ and the TOML settings file:
    • shouldParseAllNamespaces
    • shouldParseAllClasses
    • shouldParseAllStructs
    • shouldParseAllVariables
    • shouldParseAllFields
    • shouldParseAllFunctions
    • shouldParseAllMethods
    • shouldParseAllEnums
    • shouldParseAllEnumValues

Fix

  • Crash when the CodeGenManager was run with a CodeGenUnit with no registered code generation module.
  • [Macro extension] Invalid file footer macro generation when the source filename had specific characters such as dashes, spaces or dots. All generated macros are now sanitized in the base implementation and invalid characters are replaced by underscores. The macro generation methods are still virtual and can be overriden for more specific behaviours.

v2.0.0

20 Nov 15:50
Compare
Choose a tag to compare

This new release updates pretty much everything in the code generator system.
The new implementation is focused on versatility and makes custom code generation easy. It is also possible to make a generator use different code generation modules in a few lines.

I haven't kept track of every single change I did since I pretty much reworked everything, so you can consider this new version as a whole new code generator library.

I still have a bunch of other major changes in mind that might bring this library to 3.0.0. Beyond them, I want to make it possible to generate code anywhere from any entity, and not be restricted by the location of the generating entity (for example, if we want to insert generated code at a very specific location in the generated file from any entity). This is probably the greatest limitation in the current implementation.
However, I will probably not have much free time right away so I plan to maintain the current version (v2.x.x) until then.

v1.1.0

06 Aug 16:34
Compare
Choose a tag to compare

Add

  • Documentation in all header files
  • New simple property: ParseAllNested
  • Support for nested structs/classes/enums and namespaces parsing
  • New FileParser setting: shouldParseAllEntities
  • New FileGenerator setting: entityMacrosFilename
  • ILogger interface
  • Complete README

Update