-
Notifications
You must be signed in to change notification settings - Fork 25
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
Shared object for macos and linux #71
Conversation
I'm opening as draft to get some early feedback |
I think this should be behind cargo feature. CI isn't happy about change, but that might not be PR issue. |
ok, so both macos and linux is passing on CI after 2bc03f1. There was an issue with linking libs that was causing test failure in both system. |
Okay, so now we have everything behind a feature flag. This won't break the current behavior anymore. I plan to send a separate PR for Windows, as it might take some time for me to get my hands on a Windows system. Meanwhile, we can review this PR. cc @sagudev |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We definitely need CI testing for this
I have yet to do full review.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If I understand this PR correctly, it only introduces dylib building but not reusing it right?
Indeed, this PR introduces the building of dylib, providing the option to use dylib in other projects if wanted. By |
Both. |
okey, we are not reusing it anywhere, at least not in this PR. maybe i am missing something, but specifically for macos and linux, I did not come across a case where we would want to reuse the shared object. I noticed that, It is different for mozjs, where i am having to use shared object within mozjs |
On linux and mac we only use translator from angle which is very small, but on windows we actually build the real stuff (dx9 backend) which is big, there we already have build_dlls feature which is needed for GL support in other parts of servo on windows. I thought the whole point of creating shared objects was to reuse them to have faster compilation on servo. What is point of shared objects if not this (on linux and mac)? |
@sagudev i think we are on same page. so this is how i was planning to go with it:
|
@sagudev, would you like me to change anything in this PR? |
7745eb1
to
1779b7d
Compare
I think reusing should be done as part of mozangle (but this is could be done as follow up). |
I do not have write access to this repo, so somebody else will need to merge this. |
Are you sure? You're part of the Developers team, which has write access. |
This PR produces shared objects for macOS and Linux. It was successfully tested on macOS.
See servo/servo#30593
TODO:
.so
,.dylib
Co-authored-by: Mukilan Thiyagarajan [[email protected]]