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

Link macOS with AudioUnit, CoreAudio, IOKit frameworks #2434

Merged
merged 1 commit into from
Feb 1, 2022

Conversation

JanCVanB
Copy link
Sponsor Collaborator

@JanCVanB JanCVanB commented Jan 31, 2022

AudioUnit & CoreAudio are necessary to get
Bevy's "hello world" example
working inside a Roc platform.

IOKit is necessary to get
Bevy's "breakout" example
working inside a Roc platform.

Credit to @hafiz for discovering this solution.

AudioUnit & CoreAudio are necessary to get
[Bevy](https://docs.rs/bevy/latest/bevy/)'s "hello world" example
working inside a Roc platform.

IOKit is necessary to get
[Bevy](https://docs.rs/bevy/latest/bevy/)'s "breakout" example
working inside a Roc platform.

Credit to @hafiz for discovering this solution.
@JanCVanB JanCVanB added the macos macOS-specific issues label Jan 31, 2022
@JanCVanB
Copy link
Sponsor Collaborator Author

This solves #2432

@JanCVanB
Copy link
Sponsor Collaborator Author

What's the long-term strategy for this list of linked frameworks? As third-party platforms encounter new framework requirements, they will be added here? Are there any downsides to adding any/every framework? Should there be a config file for customizing which frameworks are linked, so that platform developers don't need to diverge from trunk?

@ayazhafiz
Copy link
Sponsor Member

Should there be a config file for customizing which frameworks are linked, so that platform developers don't need to diverge from trunk?

I feel like this is a better solution. What about a section in Package-Config.roc that lists extra linker options per OS? (Ideally we'd have a way to sanitize/verify them as well.) Maybe that should be done is this PR, or a prereq.

@rtfeldman
Copy link
Sponsor Contributor

The surgical linker makes all of this unnecessary (because it makes the host responsible for this type of linking, not the Roc compiler), so I think that's the best long-term solution! 😄

@JanCVanB
Copy link
Sponsor Collaborator Author

Ah, that sounds good. So then is this PR fine for the short term?

@rtfeldman
Copy link
Sponsor Contributor

Totally! It'll be awhile before the surgical linker is ready to replace the current system. 😄

@JanCVanB
Copy link
Sponsor Collaborator Author

JanCVanB commented Feb 1, 2022

Sweet, then I just need PR approval.

Copy link
Sponsor Contributor

@rtfeldman rtfeldman left a comment

Choose a reason for hiding this comment

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

Looks good! 🎉

@rtfeldman rtfeldman merged commit a957b7b into trunk Feb 1, 2022
@rtfeldman rtfeldman deleted the link_mac_libraries_for_bevy branch February 1, 2022 13:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
macos macOS-specific issues
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants