summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/build_release.yml15
-rw-r--r--SConstruct12
2 files changed, 25 insertions, 2 deletions
diff --git a/.github/workflows/build_release.yml b/.github/workflows/build_release.yml
index 19a59c9..2ab5787 100644
--- a/.github/workflows/build_release.yml
+++ b/.github/workflows/build_release.yml
@@ -82,6 +82,10 @@ jobs:
arch: 'x64'
sconsflags: 'bits=64'
os: 'macos-latest'
+ - platform: osx
+ arch: 'arm64'
+ sconsflags: 'bits=64 macos_arch=arm64 macos_sdk_path=/Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk/'
+ os: 'macos-10.15'
# Windows
- platform: windows
@@ -155,6 +159,17 @@ jobs:
platform: ${{ matrix.platform }}
archs: ${{ matrix.arch }}
+ - name: Fix godot-cpp revision and file names for OSX arm64 build.
+ if: ${{ matrix.platform == 'osx' && matrix.arch == 'arm64' }}
+ run: |
+ cd godot-cpp
+ git checkout e08ecdc28c5409cb5366027227e996c342dcee93
+ rm -rf src/gen/
+ rm -rf include/gen/
+ mkdir bin
+ ln -s libgodot-cpp.osx.debug.64.a bin/libgodot-cpp.osx.debug.arm64.a
+ ln -s libgodot-cpp.osx.release.64.a bin/libgodot-cpp.osx.release.arm64.a
+
- name: Compilation ${{ matrix.platform }} - ${{ matrix.arch }} - godot-cpp
run: |
scons -C godot-cpp target=debug generate_bindings=yes
diff --git a/SConstruct b/SConstruct
index b6f1603..4fbe324 100644
--- a/SConstruct
+++ b/SConstruct
@@ -70,6 +70,8 @@ opts.Add(
"Path to iPhone toolchain",
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain",
)
+opts.Add("macos_sdk_path", "macOS SDK path", "")
+opts.Add(EnumVariable("macos_arch", "Target macOS architecture", "x86_64", ["x86_64", "arm64"]))
# Update environment (parse options)
opts.Update(env)
@@ -149,9 +151,15 @@ elif target_platform == "osx":
# Only 64-bits is supported for OS X
target_arch = "64"
+ if env["macos_arch"] != "x86_64":
+ target_arch = "arm64"
- env.Append(CCFLAGS=["-std=c++14", "-arch", "x86_64"])
- env.Append(LINKFLAGS=["-arch", "x86_64", "-framework", "Cocoa", "-Wl,-undefined,dynamic_lookup"])
+ env.Append(CCFLAGS=["-std=c++14", "-arch", env["macos_arch"]])
+ env.Append(LINKFLAGS=["-arch", env["macos_arch"], "-framework", "Cocoa", "-Wl,-undefined,dynamic_lookup"])
+
+ if env["macos_sdk_path"]:
+ env.Append(CCFLAGS=["-isysroot", env["macos_sdk_path"]])
+ env.Append(LINKFLAGS=["-isysroot", env["macos_sdk_path"]])
if env["target"] == "debug":
env.Append(CCFLAGS=["-Og", "-g"])