mirror of
https://github.com/libretro/FBNeo.git
synced 2026-11-07 02:55:59 -10:00
github actions: cross-compile arm64 builds
This commit is contained in:
1 parent
dcc157bd04
commit
c89fdfe3ab
3 files changed
+22
-20
No files matched your search
@@ -24,6 +24,8 @@ env:
|
||||
WINDOWS_X86_32_DEBUG_ARTIFACT: windows-x86_32-debug
|
||||
WINDOWS_X86_32_DEBUG_ARTIFACT_PATH: windows-x86_32-debug.txt
|
||||
WINDOWS_X86_32_DEBUG_ARCHIVE_ARTIFACT: windows-x86_32-debug-archive
|
||||
# Forced version (future versions might drop ARMv8.0 support ?)
|
||||
LLVM_MINGW_VERSION: "20261020"
|
||||
WINDOWS_ARM64_ARTIFACT: windows-arm64
|
||||
WINDOWS_ARM64_ARTIFACT_PATH: windows-arm64.txt
|
||||
WINDOWS_ARM64_ARCHIVE_ARTIFACT: windows-arm64-archive
|
||||
@@ -264,24 +266,24 @@ jobs:
|
||||
|
||||
build_windows_arm64:
|
||||
name: Build (Windows ARM64)
|
||||
runs-on: windows-11-arm
|
||||
runs-on: ubuntu-latest
|
||||
continue-on-error: true
|
||||
defaults:
|
||||
run:
|
||||
shell: msys2 {0}
|
||||
shell: bash {0}
|
||||
steps:
|
||||
- name: Install dependencies
|
||||
uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
update: true
|
||||
install: msys2-devel base-devel mingw-w64-clang-aarch64-toolchain zip wget perl
|
||||
msystem: CLANGARM64
|
||||
run: |
|
||||
name=llvm-mingw-${LLVM_MINGW_VERSION}-ucrt-ubuntu-22.04-x86_64
|
||||
curl -fsSL https://github.com/mstorsjo/llvm-mingw/releases/download/${LLVM_MINGW_VERSION}/${name}.tar.xz | tar -xJ -C $HOME
|
||||
echo "$HOME/${name}/bin" >> $GITHUB_PATH
|
||||
- name: Clone
|
||||
uses: actions/checkout@v4
|
||||
- name: Build
|
||||
id: create_windows_arm64_archive
|
||||
run: |
|
||||
make -j$(nproc) mingwarm64 SKIPDEPEND=1 RELEASEBUILD=1
|
||||
set -e
|
||||
make -j$(nproc) mingwccarm64 SKIPDEPEND=1 RELEASEBUILD=1
|
||||
archive_file="${{ env.WINDOWS_ARM64_ARTIFACT }}.zip"
|
||||
echo "archive_file=${archive_file}" >> $GITHUB_OUTPUT
|
||||
zip --junk-paths "${archive_file}" fbneoarm64.exe src/license.txt fbahelpfilesrc/fbneo.chm whatsnew.html
|
||||
@@ -303,24 +305,24 @@ jobs:
|
||||
|
||||
build_windows_arm64_debug:
|
||||
name: Build (Windows ARM64 Debug)
|
||||
runs-on: windows-11-arm
|
||||
runs-on: ubuntu-latest
|
||||
continue-on-error: true
|
||||
defaults:
|
||||
run:
|
||||
shell: msys2 {0}
|
||||
shell: bash {0}
|
||||
steps:
|
||||
- name: Install dependencies
|
||||
uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
update: true
|
||||
install: msys2-devel base-devel mingw-w64-clang-aarch64-toolchain zip wget perl
|
||||
msystem: CLANGARM64
|
||||
run: |
|
||||
name=llvm-mingw-${LLVM_MINGW_VERSION}-ucrt-ubuntu-22.04-x86_64
|
||||
curl -fsSL https://github.com/mstorsjo/llvm-mingw/releases/download/${LLVM_MINGW_VERSION}/${name}.tar.xz | tar -xJ -C $HOME
|
||||
echo "$HOME/${name}/bin" >> $GITHUB_PATH
|
||||
- name: Clone
|
||||
uses: actions/checkout@v4
|
||||
- name: Build
|
||||
id: create_windows_arm64_debug_archive
|
||||
run: |
|
||||
make -j$(nproc) mingwarm64 SKIPDEPEND=1
|
||||
set -e
|
||||
make -j$(nproc) mingwccarm64 SKIPDEPEND=1
|
||||
archive_file="${{ env.WINDOWS_ARM64_DEBUG_ARTIFACT }}.zip"
|
||||
echo "archive_file=${archive_file}" >> $GITHUB_OUTPUT
|
||||
zip --junk-paths "${archive_file}" fbneoarm64d.exe src/license.txt fbahelpfilesrc/fbneo.chm whatsnew.html
|
||||
|
||||
@@ -103,6 +103,7 @@ mingwcc64: FORCE
|
||||
@$(MAKE) -s -f makefile.mingw BUILD_X64_EXE=1 GCC510=1 BORKYCRT=1 HOST_CC=gcc HOST_CXX=g++ CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ WINDRES=x86_64-w64-mingw32-windres
|
||||
|
||||
# Native Windows ARM64 build with MSYS2 (CLANGARM64 environment)
|
||||
# note: MSYS2 can't produce binaries for ARMv8.0
|
||||
mingwarm64: FORCE
|
||||
@$(MAKE) -s -f makefile.mingw BUILD_ARM64_EXE=1 GCC510=1 BORKYCRT=1
|
||||
|
||||
|
||||
+3
-4
@@ -276,21 +276,20 @@ endif
|
||||
|
||||
ifdef GCC510
|
||||
ifdef BUILD_ARM64_EXE
|
||||
GCCOPTFLAGS =
|
||||
# keep ARMv8.0 compatibility (MSYS2 supports only ARMv8.1 and will ignore this)
|
||||
GCCOPTFLAGS = -march=armv8-a
|
||||
else
|
||||
GCCOPTFLAGS = -ffloat-store -fforce-addr -finline-limit=1200 -fthread-jumps -fexpensive-optimizations
|
||||
GCCOPTFLAGS = -ffloat-store -fforce-addr -finline-limit=1200 -fthread-jumps -fexpensive-optimizations -mwindows
|
||||
endif
|
||||
|
||||
CFLAGS = -pipe \
|
||||
-std=gnu99 -O3 $(GCCOPTFLAGS) \
|
||||
-mwindows \
|
||||
-Wall -Wno-long-long -Wno-sign-compare -Wno-uninitialized -Wno-unused \
|
||||
-Wno-sequence-point -Wno-pedantic \
|
||||
$(DEF) $(incdir)
|
||||
|
||||
CXXFLAGS = -pipe \
|
||||
-std=gnu++11 -O3 $(GCCOPTFLAGS) \
|
||||
-mwindows \
|
||||
-fcheck-new \
|
||||
-Wall -W -pedantic -Wshadow -Wno-long-long -Wno-write-strings \
|
||||
-Wunknown-pragmas -Wundef -Wno-conversion -Wno-missing-braces -Wno-multichar \
|
||||
|
||||
Reference in new issue
Block a user