Skip to content

[3.0] COM Binding Transformation #2406

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 41 commits into
base: develop/3.0
Choose a base branch
from

Conversation

curin
Copy link
Contributor

@curin curin commented Dec 31, 2024

Summary of the PR

Adds the necessary enhancements to allow for easy to use COM bindings and any changes required to get Microsoft Bindings building.

-Adds TransformCOM mod to implement in place ComPtr transformations in all COM classes
-Adds DisableWarnings mod to disable warnings in all files for a job in order to avoid build errors from unavoidable or ignorable errors
-Adds several additions to ClangScraper to disable caching and remove generated files from the output.
-Adds some QOL improvements such as --only and csv list support to silk touch

@Perksey Perksey changed the base branch from main to develop/3.0 December 31, 2024 15:04
@curin curin marked this pull request as ready for review January 10, 2025 02:25
@curin curin requested a review from a team as a code owner January 10, 2025 02:25
@curin
Copy link
Contributor Author

curin commented Jan 10, 2025

@Perksey Ready for Review

Copy link
Member

@Perksey Perksey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work! It's cool to see this come together :)

Some notes...

@Perksey
Copy link
Member

Perksey commented Jan 12, 2025

Obviously note the CI errors as well if you haven't already.

Copy link
Member

@Perksey Perksey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry this review is a bit all over the place, I wrote things as I saw them so comments may not be placed at their root causes.

Glad to see this moving along nicely.

Perksey and others added 21 commits February 15, 2025 18:33
-also support for csv lists in --only and --skip
-Setup to run using new mod system properly
-Added pointer member accessor to member accessor conversion
-Added Logging
per Mod Performance
-Added early out
-fix duplicate call
-Add INativeGuid
-fixed some broken using from TerraFX files
-Allowed BaseType to be specified for ComTypes
-Added several files for override due to issue in generation
-allowed for multiple COM base types
-allowed for addition of manual COM types
-added several manual overrides
-added all manual files necessary for compilation
Fixed some manual warnings as well
This reverts commit 0a1bd47.
-using globbing instead of regex
-removed an unnecessary restriction on interface finding
-updates single line code to expression bodies
Co-authored-by: Dylan Perks <[email protected]>
for rollback purposes
moved to internal Native struct
INativeInterface and IComInterface added to represent all interfaces and Com interfaces, respectively.
- IComInterface is a child of INativeInterface and INativeGuid
-and fixing issues with how it works
added manual file importer
added a progress bar in some cases for QoL
moved rename function into NameUtils
Added per job file logs
fixed up the progress bar system to be cleaner
@curin curin force-pushed the develop/3/com-bindings-refactor branch from 6c6d633 to fe2f36c Compare February 16, 2025 00:05
Also split some common classes out into core
Benefit of the doubt is expected and will now be accounted for
also fix for CI issues
Copy link
Member

@Perksey Perksey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm really getting excited at this point now, and really happy with the progress on this PR. Yes I know there's 30 comments, but most of these are fairly small (in my opinion) and don't call into question conceptual/large ways of doing things as previous reviews have. Thanks for keeping with it!

curin and others added 6 commits March 13, 2025 18:50
added prettify names
handled renaming HString and HResult properly
Added injected name remapping for clang scrapper
Added injected generator options for clang scrapper
also set warnings as error back to true
Bool -> MaybeBool<int>
Keep UnmanagedCallersOnly attributes
Mark JobContext as Experimental
Removed unnecessary warning disable from tests
- made both JobContext and ProgressService internal
- Added missing HResult functions
Copy link
Member

@Perksey Perksey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Running out of things to say tbh! Really great work. I know there's a lot of stuff that we can look at improving in the future, but this is a really great start and honestly I'm so chuffed at the idea of having full Windows SDK bindings in PREVIEW 1!!! (pending the next namespace change PR ofc)

Copy link
Member

@Perksey Perksey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Happy to approve once the rest of the bindings are checked in

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In Progress
Development

Successfully merging this pull request may close these issues.

2 participants