Skip to content
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

Ensure APIs are exposed in the simple interop extensions. #72

Merged
merged 5 commits into from Jun 14, 2019

Conversation

Projects
None yet
2 participants
@tannergooding
Copy link
Member

commented Jun 14, 2019

This resolves #33.

This does a few steps:

  1. It moves the generated bindings into the ClangSharp.Interop namespace
  2. It merges the wrappers and extensions folders into a Interop.Extensions folder
  3. It goes through the clang class and ensures the APIs are properly exposed where relevant.

In a follow up PR, I am going to take the friendly wrappers which try to mirror the Clang C++ Type hierarchy (i.e. the files under https://github.com/microsoft/ClangSharp/tree/master/sources/ClangSharp.PInvokeGenerator/Cursors and https://github.com/microsoft/ClangSharp/tree/master/sources/ClangSharp.PInvokeGenerator/Types) and move them into ClangSharp proper.
-- This will involve making them public and ensuring the appropriate checks exist where needed.

@tannergooding

This comment has been minimized.

Copy link
Member Author

commented Jun 14, 2019

After the follow up PR I mentioned above, I think we should be good to publish an updated preview package for both ClangSharp and ClangSharpPInvokeGenerator (the latter of which I want to do as a global tool: #46).

This will basically just give you:

  • If you import ClangSharp, you get the friendly/safe object oriented wrapper that should "just work"
  • If you import ClangSharp.Interop, you have your choice between the raw unsafe API, and the simple abstraction layer that removes the "unsafe" bits.
@tannergooding

This comment has been minimized.

Copy link
Member Author

commented Jun 14, 2019

It's also worth noting that there are 5 APIs which aren't exposed in the "simple wrapper". This is because they are more "global" methods and don't operate on any wrapper type.

These are:

  • enableStackTraces
  • executeOnThread
  • getClangVersion
  • toggleCrashRecovery
  • getBuildSessionTimestamp

@tannergooding tannergooding merged commit bc44fd7 into microsoft:master Jun 14, 2019

10 checks passed

license/cla All CLA requirements met.
Details
microsoft.ClangSharp Build #20190614.2 succeeded
Details
microsoft.ClangSharp (macos_1014 debug_x64) macos_1014 debug_x64 succeeded
Details
microsoft.ClangSharp (macos_1014 release_x64) macos_1014 release_x64 succeeded
Details
microsoft.ClangSharp (ubuntu_1604 debug_x64) ubuntu_1604 debug_x64 succeeded
Details
microsoft.ClangSharp (ubuntu_1604 release_x64) ubuntu_1604 release_x64 succeeded
Details
microsoft.ClangSharp (windows debug_x64) windows debug_x64 succeeded
Details
microsoft.ClangSharp (windows debug_x86) windows debug_x86 succeeded
Details
microsoft.ClangSharp (windows release_x64) windows release_x64 succeeded
Details
microsoft.ClangSharp (windows release_x86) windows release_x86 succeeded
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.