Adds a new PlatformID for universal builds. This will allow single architecture
builds to be updated through the single architecture path, and universal builds
to be updated with universal builds.
Adds a step to detect when the Intel and arm64 build trees cannot be merged
safely. This can occur when each side has files/folders that are named the same
but are of different types or symlinks that are the same name but need to point
to different locations for each architecture.
Before this change, this would just fail silently.
This commit fixes a regression in 2ba88d5c131636158fe0216b0b1f9787dcc90bdf that
would cause an app bundle to not be resigned after merging the two single
architecture builds.
Also, applies formatting suggestions from Leo Lam
Incorporated changes suggested by Kode54 to use the CMake prefix path, instead
of relying on pkg-config directory paths.
Added the prefix paths from the other architectures build to the CMake ignore
path so that CMake doesn't pick up libraries from the wrong architecture if
they are in the user's search path.
Modify the build script to use CMake's cross compilation infrastructure instead
of running CMake natively in x86_64 and arm64 mode to configure the two project
files. This should fix the builds with CMake executables installed through
homebrew and should pave the way for building universal binaries on x86_64
systems.
This change adds the -G and --build_type arguments to the
BuildMacOSUniversalBinaray.py build script to allow the CMake generator and
build type to be specified for universal binary builds.
The defaults are:
-G "Unix Makefiles"
--build_type "Release"
Analytics:
- Incorporated fix to allow the full set of analytics that was recommended by
spotlightishere
BuildMacOSUniversalBinary:
- The x86_64 slice for a universal binary is now built for 10.12
- The universal binary build script now can be configured though command line
options instead of modifying the script itself.
- os.system calls were replaced with equivalent subprocess calls
- Formatting was reworked to be more PEP 8 compliant
- The script was refactored to make it more modular
- The com.apple.security.cs.disable-library-validation entitlement was removed
Memory Management:
- Changed the JITPageWrite*Execute*() functions to incorporate support for
nesting
Other:
- Fixed several small lint errors
- Fixed doc and formatting mistakes
- Several small refactors to make things clearer