Skip to content

Arm64 Build #269

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 26 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: C/C++ CI

on: [push, pull_request]
on: [push, pull_request, workflow_dispatch]

env:
# Only used for the cache key. Increment version to force clean build.
Expand All @@ -24,12 +24,34 @@ jobs:
pip3 install --user scons
scons platform=linux target=editor generate_bindings=yes -j $(nproc)
ldd demo/addons/godot-git-plugin/linux/*.so
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: libgit_plugin.linux.x86_64.editor.so-${{ github.sha }}
if-no-files-found: error
path: |
demo/
linux-arm:
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Setup Godot build cache
uses: ./godot-cpp/.github/actions/godot-cache
with:
cache-name: linux-arm
continue-on-error: true
- name: build-linux-editor-arm
run: |
pip3 install --user scons
scons platform=linux target=editor generate_bindings=yes -j $(nproc)
ldd demo/addons/godot-git-plugin/linux/*.so
- uses: actions/upload-artifact@v4
with:
name: libgit_plugin.linux.aarch64.editor.so-${{ github.sha }}
if-no-files-found: error
path: |
demo/

windows-x64:
runs-on: windows-2019
Expand All @@ -51,7 +73,7 @@ jobs:
pip3 install --user scons
scons platform=windows target=editor generate_bindings=yes -j $env:NUMBER_OF_PROCESSORS
dumpbin /dependents .\demo\addons\godot-git-plugin\win64\*.dll
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: libgit_plugin.windows.x86_64.editor.dll-${{ github.sha }}
if-no-files-found: error
Expand All @@ -73,7 +95,7 @@ jobs:
brew install scons
scons platform=macos target=editor generate_bindings=yes macos_arch=universal use_llvm=yes macos_deployment_target=10.13 -j $(sysctl -n hw.logicalcpu)
otool -L demo/addons/godot-git-plugin/macos/*.dylib
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: libgit_plugin.macos.universal.editor.dylib-${{ github.sha }}
if-no-files-found: error
Expand Down
17 changes: 13 additions & 4 deletions SConstruct
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
#!/usr/bin/env python

import os
import platform

EnsureSConsVersion(3, 0, 0)
EnsurePythonVersion(3, 5)

opts = Variables([], ARGUMENTS)

env = Environment(ENV=os.environ)
aarch64 = "aarch" in platform.machine()

# Define our options
opts.Add(PathVariable("target_path",
Expand All @@ -20,10 +22,17 @@ opts.Add(PathVariable("macos_openssl_static_ssl", "Path to OpenSSL libssl.a libr
os.path.join(os.path.abspath(os.getcwd()), "thirdparty/openssl/libssl.a"), PathVariable.PathAccept))
opts.Add(PathVariable("macos_openssl_static_crypto", "Path to OpenSSL libcrypto.a library - only used in macOS builds.",
os.path.join(os.path.abspath(os.getcwd()), "thirdparty/openssl/libcrypto.a"), PathVariable.PathAccept))
opts.Add(PathVariable("linux_openssl_static_ssl", "Path to OpenSSL libssl.a library - only used in Linux builds.",
"/usr/lib/x86_64-linux-gnu/libssl.a", PathVariable.PathAccept))
opts.Add(PathVariable("linux_openssl_static_crypto", "Path to OpenSSL libcrypto.a library - only used in Linux builds.",
"/usr/lib/x86_64-linux-gnu/libcrypto.a", PathVariable.PathAccept))

if aarch64:
opts.Add(PathVariable("linux_openssl_static_crypto", "Path to OpenSSL libcrypto.a library - only used in Linux builds.",
"/usr/lib/aarch64-linux-gnu/libcrypto.a", PathVariable.PathAccept))
opts.Add(PathVariable("linux_openssl_static_ssl", "Path to OpenSSL libssl.a library - only used in Linux builds.",
"/usr/lib/aarch64-linux-gnu/libssl.a", PathVariable.PathAccept))
else:
opts.Add(PathVariable("linux_openssl_static_ssl", "Path to OpenSSL libssl.a library - only used in Linux builds.",
"/usr/lib/x86_64-linux-gnu/libssl.a", PathVariable.PathAccept))
opts.Add(PathVariable("linux_openssl_static_crypto", "Path to OpenSSL libcrypto.a library - only used in Linux builds.",
"/usr/lib/x86_64-linux-gnu/libcrypto.a", PathVariable.PathAccept))

# Updates the environment with the option variables.
opts.Update(env)
Expand Down