Releases: jsoysouvanh/Kodgen
v2.2.0
The version 2.2.0 of Kodgen brings a few bug fixes and new small features.
New
- The
StructClassInfo
class now contains a flagisImportExport
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
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
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
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
- Internal parsing architecture
- Properties and PropertyRules system