Merge pull request #637 from Faless/osx/3.x_universal
commit
8366761930
|
@ -108,7 +108,7 @@ jobs:
|
||||||
|
|
||||||
macos:
|
macos:
|
||||||
name: Build (macOS, Clang)
|
name: Build (macOS, Clang)
|
||||||
runs-on: macos-10.15
|
runs-on: macos-11
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
|
@ -133,45 +133,18 @@ jobs:
|
||||||
- name: Upload artifact
|
- name: Upload artifact
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: godot-cpp-macos-x86_64-release
|
name: godot-cpp-macos-universal-release
|
||||||
path: bin/libgodot-cpp.osx.release.64.a
|
path: bin/libgodot-cpp.osx.release.64.a
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
|
|
||||||
- name: Build test GDNative library
|
- name: Build test GDNative library
|
||||||
run: |
|
run: |
|
||||||
scons target=release platform=osx bits=64 -j $(sysctl -n hw.logicalcpu) -C test
|
scons target=release platform=osx bits=64 macos_arch=universal -j $(sysctl -n hw.logicalcpu) -C test
|
||||||
|
|
||||||
- name: Run test GDNative library
|
- name: Run test GDNative library
|
||||||
run: |
|
run: |
|
||||||
./Godot.app/Contents/MacOS/Godot --path test -s script.gd
|
./Godot.app/Contents/MacOS/Godot --path test -s script.gd
|
||||||
|
|
||||||
macos-arm64:
|
|
||||||
name: Build (macOS, Clang, cross-compile arm64)
|
|
||||||
runs-on: macos-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
submodules: recursive
|
|
||||||
|
|
||||||
- name: Set up Python (for SCons)
|
|
||||||
uses: actions/setup-python@v2
|
|
||||||
with:
|
|
||||||
python-version: '3.x'
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
python -m pip install scons
|
|
||||||
|
|
||||||
- name: Build godot-cpp
|
|
||||||
run: |
|
|
||||||
# The default SDK in github the actions environemnt seems to have problems compiling for arm64.
|
|
||||||
# Use the latest 11.x SDK.
|
|
||||||
SDK_BASE=/Library/Developer/CommandLineTools/SDKs
|
|
||||||
SDK_VER=$(ls $SDK_BASE | grep "MacOSX11." | sort -r | head -n1)
|
|
||||||
echo $SDK_BASE/$SDK_VER/
|
|
||||||
scons target=release generate_bindings=yes macos_arch=arm64 macos_deployment_target=10.15 macos_sdk_path="$SDK_BASE/$SDK_VER/" -j $(sysctl -n hw.logicalcpu)
|
|
||||||
|
|
||||||
static-checks:
|
static-checks:
|
||||||
name: Static Checks (clang-format)
|
name: Static Checks (clang-format)
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
|
|
17
SConstruct
17
SConstruct
|
@ -151,8 +151,8 @@ opts.Add(
|
||||||
opts.Add(EnumVariable(
|
opts.Add(EnumVariable(
|
||||||
'macos_arch',
|
'macos_arch',
|
||||||
'Target macOS architecture',
|
'Target macOS architecture',
|
||||||
'x86_64',
|
'universal',
|
||||||
['x86_64', 'arm64']
|
['universal', 'x86_64', 'arm64']
|
||||||
))
|
))
|
||||||
opts.Add(EnumVariable(
|
opts.Add(EnumVariable(
|
||||||
'ios_arch',
|
'ios_arch',
|
||||||
|
@ -228,7 +228,14 @@ elif env['platform'] == 'osx':
|
||||||
'Only 64-bit builds are supported for the macOS target.'
|
'Only 64-bit builds are supported for the macOS target.'
|
||||||
)
|
)
|
||||||
|
|
||||||
env.Append(CCFLAGS=['-std=c++14', '-arch', env['macos_arch']])
|
if env["macos_arch"] == "universal":
|
||||||
|
env.Append(LINKFLAGS=["-arch", "x86_64", "-arch", "arm64"])
|
||||||
|
env.Append(CCFLAGS=["-arch", "x86_64", "-arch", "arm64"])
|
||||||
|
else:
|
||||||
|
env.Append(LINKFLAGS=["-arch", env["macos_arch"]])
|
||||||
|
env.Append(CCFLAGS=["-arch", env["macos_arch"]])
|
||||||
|
|
||||||
|
env.Append(CCFLAGS=['-std=c++14'])
|
||||||
|
|
||||||
if env['macos_deployment_target'] != 'default':
|
if env['macos_deployment_target'] != 'default':
|
||||||
env.Append(CCFLAGS=['-mmacosx-version-min=' + env['macos_deployment_target']])
|
env.Append(CCFLAGS=['-mmacosx-version-min=' + env['macos_deployment_target']])
|
||||||
|
@ -239,8 +246,6 @@ elif env['platform'] == 'osx':
|
||||||
env.Append(LINKFLAGS=['-isysroot', env['macos_sdk_path']])
|
env.Append(LINKFLAGS=['-isysroot', env['macos_sdk_path']])
|
||||||
|
|
||||||
env.Append(LINKFLAGS=[
|
env.Append(LINKFLAGS=[
|
||||||
'-arch',
|
|
||||||
env['macos_arch'],
|
|
||||||
'-framework',
|
'-framework',
|
||||||
'Cocoa',
|
'Cocoa',
|
||||||
'-Wl,-undefined,dynamic_lookup',
|
'-Wl,-undefined,dynamic_lookup',
|
||||||
|
@ -472,7 +477,7 @@ if env['platform'] == 'android':
|
||||||
elif env['platform'] == 'ios':
|
elif env['platform'] == 'ios':
|
||||||
arch_suffix = env['ios_arch']
|
arch_suffix = env['ios_arch']
|
||||||
elif env['platform'] == 'osx':
|
elif env['platform'] == 'osx':
|
||||||
if env['macos_arch'] != 'x86_64':
|
if env['macos_arch'] != 'universal':
|
||||||
arch_suffix = env['macos_arch']
|
arch_suffix = env['macos_arch']
|
||||||
elif env['platform'] == 'javascript':
|
elif env['platform'] == 'javascript':
|
||||||
arch_suffix = 'wasm'
|
arch_suffix = 'wasm'
|
||||||
|
|
Loading…
Reference in New Issue