-
Notifications
You must be signed in to change notification settings - Fork 39
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
Split icrate
into one crate per framework
#592
Conversation
1108f8a
to
ff6a3e8
Compare
9c65311
to
d91dab1
Compare
I tried this branch out with a very basic NSApplication, one NSWindow, slightly custom NSEvent, example and could only get it to compile (and run) after performing the following find and replaces over the generated files: Not sure if that part in the "header-translator" has to be updated as this branch is WIP or if I setup something incorrectly. I also needed to remove the function feature restrictions for certain cross-framework restricted functions such as:
This branch did seem to build faster on my 2010 iMac compared to the master branch! |
The development here has been... quite haphazard. Will try to get it into a better state soon! But I suspect that the issue you've been hitting is that git doesn't really like changing the path of a submodule, so you have to somehow tell it to re-initialize it - which I did manually by moving some directories, but there probably is a proper way of doing it. |
0f15037
to
809205f
Compare
6ddb264
to
8e55a4c
Compare
Additionally: - Add helper module `objc2::__framework_prelude` with common imports. - Make `block2` an optional dependency. - Make most framework crates except `objc2-foundation` optional. - Move framework changelog to `objc2::topics::about_generated::changelog`. - Add full list of crates in `objc2::topics::about_generated::list`. - Document cargo features in `objc2::topics::about_generated::cargo_features`.
Fixes #537.
Fixes #558.
Fixes #482.
Required for #408.
This should also improve compile times a bit, as Cargo can parallelize it much more, and it doesn't suffer from long download times.
The submodule path has been changed, in case git doesn't really show it you can view madsmtm/objc2-generated@cf34428 for the changed commit.
I'm fairly sure that the way we've chosen to do features won't turn into a breaking change, at the very least,
#import <WebKit/WebView.h>
makes the same, if not more types available to Objective-C, so it really shouldn't.TODO:
Rename features to not contain the framework nameWill do this in a follow-up PR.icrate
Set up something to release these cratesWill do this in a follow-up PR.