HexaGen migration Legacy to Mainline #106
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request introduces several updates across the codebase, focusing on upgrading dependencies, refactoring generator code for improved maintainability, and enhancing the configuration and build process. The most significant changes include updating to newer package versions, refactoring generator patches to use a unified parsing result, and improving the function generation logic. Additionally, there are minor enhancements to project files and build output.
Dependency and Target Framework Upgrades
HexaGen.Runtimepackage references to version1.1.22across all relevant projects for consistency and bug fixes. [1] [2] [3] [4] [5] [6] [7] [8]ExampleAndroid.csprojfromnet8.0-androidtonet9.0-androidand bumped AndroidX dependencies to newer versions. [1] [2]HexaGenpackage reference inGenerator.csprojfromHexaGen.Legacyto the latestHexaGenversion, and bumped related dependencies.Generator and Patching Refactor
ImGuiPrePatch,ImGuiDefinitionsPatch,ImGuizmoPrePatch,ImVectorPatch) to use a unifiedParseResultobject instead of directly usingCppCompilation, simplifying the patching interface and improving extensibility. [1] [2] [3] [4] [5]ManualFunctionGenRuleSpanto improve parameter handling, including support for string mappings and the use ofParameterMapping. [1] [2]Configuration and Build Improvements
config.base.jsonfor improved feature support, and mapped new type aliases. [1] [2]Program.csby timing the generation process and displaying the duration in seconds. [1] [2]Code Quality and Maintenance
ImGuiCodeGenerator.csimports, and commented out hardcoded environment variable settings for better portability. [1] [2]Project Structure
Hexa.NET.ImGuizmo.csprojto improve project organization.This pull request updates the HexaGen code generator to use the latest HexaGen APIs, modernizes several patch and generator classes to match new interfaces, and improves configuration and merging logic. The changes focus on upgrading dependencies, adapting to new HexaGen data models, and enhancing the flexibility and maintainabilityThis pull request includes several important updates across the codebase, focusing on upgrading dependencies, improving code generation infrastructure, and making various code and configuration improvements. The main highlights are the migration to newer package versions (notably HexaGen and HexaGen.Runtime), refactoring of the code generation pipeline to support new APIs, and enhancements to the build and patching process.
Dependency and Framework Upgrades:
HexaGenpackage inGenerator/Generator.csprojfromHexaGen.Legacyto the latestHexaGenversion, and upgradedHexaGen.Runtimeto version1.1.22across all relevant projects. [1] [2] [3] [4] [5] [6] [7] [8] [9]ExampleAndroid.csprojtonet9.0-androidand bumpedXamarin.AndroidXdependencies. [1] [2]Code Generation Pipeline Improvements:
ParseResultAPI instead of the olderCppCompilation, aligning with updated HexaGen APIs. [1] [2] [3] [4]ManualFunctionGenRuleSpanto support new mapping and type handling, improving string and span parameter support. [1] [2]MergeOptionsobject, specifically enabling function table merging in both ImGui and backend targets. [1] [2]Build and Configuration Enhancements:
Program.csfor better build feedback. [1] [2]config.base.jsonto support additional ImGui features and types. [1] [2]Code Cleanup and Modernization:
These changes collectively modernize the codebase, improve compatibility with the latest tools and libraries, and enhance the maintainability and extensibility of the code generation pipeline. of the codebase.
Dependency and API Upgrades:
HexaGen.Legacyto the latestHexaGenpackage inGenerator.csprojto leverage new APIs and features.Refactoring for New HexaGen APIs:
CppAstand directCppCompilationparameters with new HexaGen types likeParseResultand updated method signatures in generator and patch classes (ImGuiCodeGenerator,ImGuiDefinitionsPatch,ImGuizmoPrePatch,ImGuiPrePatch,ImVectorPatch,ManualFunctionGenRuleSpan). [1] [2] [3] [4] [5] [6] [7] [8]Configuration and Build Improvements:
Definesfrom hardcoded values in code toconfig.base.json, making build configuration more maintainable and visible. [1] [2]ImTextureIDandImFileHandleinconfig.base.jsonfor better type resolution.Metadata Merging Enhancements:
MergeOptionsobject, enabling fine-grained control (such as merging function tables) inImGuiPostPatchandImGuiBackendsTarget. [1] [2]These changes collectively modernize the codebase, improve maintainability, and align the generator with the latest HexaGen framework.