Commit Graph

6 Commits

Author SHA1 Message Date
Skyler Saleh
1015cdc265 Apple M1: Improved handling of paths
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.
2021-05-22 15:25:18 -07:00
Skyler Saleh
b72c47f442 Apple M1: Enable CMake cross compilation
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.
2021-05-22 15:25:18 -07:00
Skyler Saleh
9163312779 Apple M1: Support non-Xcode based universal builds
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"
2021-05-22 15:25:18 -07:00
Skyler Saleh
0851693cbe Apple M1: More robust build for universal binaries
- Fixed a typo in the Readme.md
- Made the recursiveMergeBinaries function handle divergent binary file trees
  better.
2021-05-22 15:25:18 -07:00
Skyler Saleh
8cb86e7ae0 Apple M1: Enable hardened runtime
- Fixed error that was causing the hardened runtime from being enabled
- Refactored BuildMacOSUniversalBinary.py based on code style recommendations
2021-05-22 15:25:18 -07:00
Skyler Saleh
948764d37b Apple M1: Build, Analytics, and Memory Management
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
2021-05-22 15:25:17 -07:00