Add tool for combining macOS builds into universal build #208
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Apple clang supports building for multiple architectures at once, e.g.
-arch arm64 -arch x86_64
. However, some projects make configuration decisions based on the Meson host CPU type, and thus need to build separately for arm64 and x86_64. We'll handle this by configuring and building twice, and then combining the two bdist artifacts outside of Meson.Add a tool that walks multiple bdist archives, runs
lipo
to combine Mach-O binaries, adds all architecture-specific relocation files, verifies that all other files are identical between builds, and produces a new tarball. Filesystem metadata for duplicated items is taken from the first input specified on the command line.Update the Direct workflow to emit Meson-produced bdist archives, including a universal archive on macOS. Include both architectures in the latter's filename for clarity, since toolchain support for deprecated architectures historically hasn't lasted forever.