Build for ARM Macs

This commit is contained in:
Struma 2020-12-12 08:38:46 -05:00 committed by zzoro
parent e497d5a4d9
commit dffbe682f1
7 changed files with 1183 additions and 15 deletions

View file

@ -1,3 +1,4 @@
build-*/
downloads/
*.lock.json
*.dmg

View file

@ -5,4 +5,4 @@ brew "mm-common"
brew "cmake"
brew "automake"
brew "autoconf"
brew "nasm"
brew "pkg-config"

View file

@ -1,6 +1,6 @@
#!/usr/bin/ruby
# Simple script that takes all libraries in the build directories
# Dirty script that takes all libraries in the build directories
# and dumps out fat binaries to use in xcode
# Will probably have to extend it a bit to do iOS if I ever get that
@ -36,3 +36,8 @@ armfiles.length.times{|i|
lipo(armfiles[i], linkedfile)
end
}
src_includes = BUILD_ARM.sub(/lib$/, "include")
dst = DESTINATION.sub(/lib$/, "include")
FileUtils.ln_s(src_includes, dst) if !Dir.exists?(dst)
FileUtils.ln_s(File.join(BUILD_ARM, "sigc++-2.0"), DESTINATION)

View file

@ -1,29 +1,33 @@
This folder contains an experimental Xcode project that will build mkxp-z and all of its dependencies.
To get all dependencies, run:
Currently, building mkxp-z for ARM requires an ARM Mac on hand.
This is primarily because libsigc++ doesn't properly cross-compile when you ask it to.
To get all dependencies, cd to the `Dependencies` folder and run:
```sh
# From the project's root;
# This will download all the required tools
# for building the dependencies
cd macos/Dependencies
brew bundle install
brew bundle
# Intel Macs
make -f .Intel everything
make everything -f .Intel
# Apple Silicon Macs
make -f .AppleSilicon everything
# ARM Macs
make everything -f .AppleSilicon
# Make individual targets
make -f .Intel ruby sdl2 objfw
# Create universal libraries (For the universal build)
make everything -f .AppleSilicon
arch -x86_64 make everything -f .Intel
./make_macuniversal.command
# Use your own Ruby, and build everything else (for Intel Macs)
make -f .Intel configure-ruby RUBY_PATH="Path to Ruby" RUBY_FLAGS="extra configure arguments"
make -f .Intel deps-core
make configure-ruby -f .Intel RUBY_PATH="Path to Ruby" RUBY_FLAGS="extra configure arguments"
make deps-core -f .Intel
```
Afterwards, simply open the Xcode project and hit Command+B.
Afterwards, simply open the Xcode project, select the scheme you'd like to use
and hit Command+B.
If you built a version of ruby >= 2, change the MRI_VERSION build setting to match.

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1220"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "3BC65CC92584EDC60063AFF1"
BuildableName = "mkxp-z.app"
BlueprintName = "Mac App (M1)"
ReferencedContainer = "container:mkxp-z.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "3BC65CC92584EDC60063AFF1"
BuildableName = "mkxp-z.app"
BlueprintName = "Mac App (M1)"
ReferencedContainer = "container:mkxp-z.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "3BC65CC92584EDC60063AFF1"
BuildableName = "mkxp-z.app"
BlueprintName = "Mac App (M1)"
ReferencedContainer = "container:mkxp-z.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View file

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1220"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "3BC65D8A2584F3AD0063AFF1"
BuildableName = "Mac App.app"
BlueprintName = "Mac App"
ReferencedContainer = "container:mkxp-z.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "3BC65D8A2584F3AD0063AFF1"
BuildableName = "Mac App.app"
BlueprintName = "Mac App"
ReferencedContainer = "container:mkxp-z.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "3BC65D8A2584F3AD0063AFF1"
BuildableName = "Mac App.app"
BlueprintName = "Mac App"
ReferencedContainer = "container:mkxp-z.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>