As part of introducing support for binary modules on mobile, we need to revert the previous practice of statically linking the Python standard library.
This restructures the format of the support packages to only include:
Python.xcframework, a multi-platform static library; and
A copy of the Python standard library, as a standalone folder. This folder contains a lib-dynload subfolder that contains the binary modules for the standard library. On iOS/tvOS/watchOS, there are 2 binaries for each module - one for the "on metal" version, and one for the "on simulator" version. The simulator modules are "fat", containing both x86_64 and ARM64 binaries (same as is done on macOS).
XZ/BZip2/OpenSSL are not included in the distributed support package any more, as they are statically linked into their corresponding binary modules, and are therefore not needed for compilation of the final app.
As part of introducing support for binary modules on mobile, we need to revert the previous practice of statically linking the Python standard library.
This restructures the format of the support packages to only include:
lib-dynload
subfolder that contains the binary modules for the standard library. On iOS/tvOS/watchOS, there are 2 binaries for each module - one for the "on metal" version, and one for the "on simulator" version. The simulator modules are "fat", containing both x86_64 and ARM64 binaries (same as is done on macOS).XZ/BZip2/OpenSSL are not included in the distributed support package any more, as they are statically linked into their corresponding binary modules, and are therefore not needed for compilation of the final app.
Refs beeware/briefcase#471.
PR Checklist: