-
Notifications
You must be signed in to change notification settings - Fork 227
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
Mac: Provide universal binaries for x86_64 & arm64e #2790
Comments
So is opus the problem? We should understand if it's a Qt bug or opus doesn't support the config option. |
opus doesn't know about For testing if this path is usable at all, it might make sense to drop the opus performance improvements. If this works, we could look at finding a way to include those properly for such multi-arch builds. I don't think |
After having a closer look, I don't see a sane way of passing certain flags/defines for specific archs only (well, clang supports I suspect the better way forward would be running two standard builds. This could be done in a single CI job which would save all the resources for preparation steps.
Result:
The final step would be to move it to |
The following build is supposed to contain a universal binary which runs both on Intel and M1 Macs: Could someone please test that build? Pinging @ashstrahle @PeRAux @josephschito for M1 Please report back the following details:
If we have positive feedback, I'll submit a (cleaned up) PR based on hoffie@autobuild/mac-universal-arm64. Thanks in advance! |
@ashstrahle Thanks!
Do you remember if this is just as bad or better compared to previous M1 -dev releases? |
Much easier - less hackery. |
This combines the x86_64 and arm64e CI jobs into a single job in order to have both binary results at hand. It then uses `lipo` to combine those two binaries in a single universal binary which runs on both architectures. This increases user-friendliness as users no longer have to worry about downloading the proper build for their architecture. Fixes: jamulussoftware#2790
This combines the x86_64 and arm64e CI jobs into a single job in order to have both binary results at hand. It then uses `lipo` to combine those two binaries in a single universal binary which runs on both architectures. This increases user-friendliness as users no longer have to worry about downloading the proper build for their architecture. Fixes: jamulussoftware#2790
This combines the x86_64 and arm64e CI jobs into a single job in order to have both binary results at hand. It then uses `lipo` to combine those two binaries in a single universal binary which runs on both architectures. This increases user-friendliness as users no longer have to worry about downloading the proper build for their architecture. Fixes: jamulussoftware#2790
What is the current behaviour and why should it be changed?
#2357 introduced native M1 releases. It would be more user-friendly if we packaged both x86_64 and arm64e builds into a single universal binary. This is possible using
lipo
, but the details have to be figured out.https://developer.apple.com/documentation/apple-silicon/building-a-universal-macos-binary
Describe possible approaches
A first attempt of putting both archs into
QMAKE_APPLE_DEVICE_ARCHS
has been done in #2357, but it failed due to arch-specific code paths.If we can't get that to work, it will either need moving both build runs into a single CI job or will require another CI job which takes the artifacts from the previous steps and combines them. The former sounds more realistical, especially considerung the .dmg generation.
Has this feature been discussed and generally agreed?
See #2357
The text was updated successfully, but these errors were encountered: