Windows ARM build
This commit is contained in:
committed by
Megamouse
parent
8188c45b9d
commit
7e9e0f56fb
@@ -2,6 +2,9 @@
|
|||||||
|
|
||||||
git config --global --add safe.directory '*'
|
git config --global --add safe.directory '*'
|
||||||
|
|
||||||
|
CPU_ARCH="${1:-x86_64}"
|
||||||
|
MSYS2="${2:-clang64}"
|
||||||
|
|
||||||
# Pull all the submodules except some
|
# Pull all the submodules except some
|
||||||
# Note: Tried to use git submodule status, but it takes over 20 seconds
|
# Note: Tried to use git submodule status, but it takes over 20 seconds
|
||||||
# shellcheck disable=SC2046
|
# shellcheck disable=SC2046
|
||||||
@@ -23,7 +26,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
cmake .. \
|
cmake .. \
|
||||||
-DCMAKE_PREFIX_PATH=/clang64 \
|
-DCMAKE_PREFIX_PATH=/"${MSYS2}" \
|
||||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||||
-DUSE_NATIVE_INSTRUCTIONS=OFF \
|
-DUSE_NATIVE_INSTRUCTIONS=OFF \
|
||||||
-DUSE_PRECOMPILED_HEADERS=OFF \
|
-DUSE_PRECOMPILED_HEADERS=OFF \
|
||||||
@@ -44,8 +47,8 @@ cmake .. \
|
|||||||
-DUSE_DISCORD_RPC=ON \
|
-DUSE_DISCORD_RPC=ON \
|
||||||
-DOpenGL_GL_PREFERENCE=LEGACY \
|
-DOpenGL_GL_PREFERENCE=LEGACY \
|
||||||
-DWITH_LLVM=ON \
|
-DWITH_LLVM=ON \
|
||||||
-DLLVM_DIR=/clang64/lib/cmake/llvm \
|
-DLLVM_DIR=/"${MSYS2}"/lib/cmake/llvm \
|
||||||
-DVulkan_LIBRARY=/clang64/lib/libvulkan-1.dll.a \
|
-DVulkan_LIBRARY=/"${MSYS2}"/lib/libvulkan-1.dll.a \
|
||||||
-DSTATIC_LINK_LLVM=ON \
|
-DSTATIC_LINK_LLVM=ON \
|
||||||
-DBUILD_RPCS3_TESTS=OFF \
|
-DBUILD_RPCS3_TESTS=OFF \
|
||||||
-DRUN_RPCS3_TESTS=OFF \
|
-DRUN_RPCS3_TESTS=OFF \
|
||||||
@@ -57,5 +60,5 @@ cd ..
|
|||||||
|
|
||||||
# If it compiled succesfully let's deploy.
|
# If it compiled succesfully let's deploy.
|
||||||
if [ "$build_status" -eq 0 ]; then
|
if [ "$build_status" -eq 0 ]; then
|
||||||
.ci/deploy-windows-clang.sh "x86_64"
|
.ci/deploy-windows-clang.sh "${CPU_ARCH}" "${MSYS2}"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -7,12 +7,13 @@
|
|||||||
cd build || exit 1
|
cd build || exit 1
|
||||||
|
|
||||||
CPU_ARCH="${1:-x86_64}"
|
CPU_ARCH="${1:-x86_64}"
|
||||||
|
MSYS2="${2:-clang64}"
|
||||||
|
|
||||||
echo "Deploying rpcs3 windows clang $CPU_ARCH"
|
echo "Deploying rpcs3 windows clang $CPU_ARCH"
|
||||||
|
|
||||||
# BUILD_blablabla is CI specific, so we wrap it for portability
|
# BUILD_blablabla is CI specific, so we wrap it for portability
|
||||||
ARTIFACT_DIR=$(cygpath -u "$BUILD_ARTIFACTSTAGINGDIRECTORY")
|
ARTIFACT_DIR=$(cygpath -u "$BUILD_ARTIFACTSTAGINGDIRECTORY")
|
||||||
MSYS2_CLANG_BIN=$(cygpath -w /clang64/bin)
|
MSYS2_CLANG_BIN=$(cygpath -w /"${MSYS2}"/bin)
|
||||||
MSYS2_USR_BIN=$(cygpath -w /usr/bin)
|
MSYS2_USR_BIN=$(cygpath -w /usr/bin)
|
||||||
|
|
||||||
echo "Installing dependencies of: ./bin/rpcs3.exe (MSYS2 dir is '$MSYS2_CLANG_BIN', usr dir is '$MSYS2_USR_BIN')"
|
echo "Installing dependencies of: ./bin/rpcs3.exe (MSYS2 dir is '$MSYS2_CLANG_BIN', usr dir is '$MSYS2_USR_BIN')"
|
||||||
|
|||||||
+34
-26
@@ -329,16 +329,24 @@ jobs:
|
|||||||
Windows_Build_Clang:
|
Windows_Build_Clang:
|
||||||
# Only run push event on master branch of main repo, but run all PRs
|
# Only run push event on master branch of main repo, but run all PRs
|
||||||
if: github.event_name != 'push' || (github.repository == 'RPCS3/rpcs3' && github.ref_name == 'master')
|
if: github.event_name != 'push' || (github.repository == 'RPCS3/rpcs3' && github.ref_name == 'master')
|
||||||
name: RPCS3 Windows Clang
|
|
||||||
runs-on: windows-2025
|
|
||||||
strategy:
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- msys2: clang64
|
- msys2: clang64
|
||||||
compiler: clang
|
compiler: clang
|
||||||
arch: win64
|
arch: x86_64
|
||||||
|
os: windows-2025
|
||||||
|
name: X64
|
||||||
|
- msys2: clangarm64
|
||||||
|
compiler: clang
|
||||||
|
arch: aarch64
|
||||||
|
os: windows-11-arm
|
||||||
|
name: ARM64
|
||||||
env:
|
env:
|
||||||
CCACHE_DIR: 'C:\ccache'
|
CCACHE_DIR: 'C:\ccache'
|
||||||
|
name: RPCS3 Windows Clang ${{ matrix.arch }}
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@main
|
uses: actions/checkout@main
|
||||||
@@ -352,25 +360,25 @@ jobs:
|
|||||||
update: true
|
update: true
|
||||||
cache: true
|
cache: true
|
||||||
install: |
|
install: |
|
||||||
mingw-w64-clang-x86_64-clang
|
mingw-w64-clang-${{ matrix.arch }}-clang
|
||||||
mingw-w64-clang-x86_64-ccache
|
mingw-w64-clang-${{ matrix.arch }}-ccache
|
||||||
mingw-w64-clang-x86_64-cmake
|
mingw-w64-clang-${{ matrix.arch }}-cmake
|
||||||
mingw-w64-clang-x86_64-lld
|
mingw-w64-clang-${{ matrix.arch }}-lld
|
||||||
mingw-w64-clang-x86_64-ninja
|
mingw-w64-clang-${{ matrix.arch }}-ninja
|
||||||
mingw-w64-clang-x86_64-llvm
|
mingw-w64-clang-${{ matrix.arch }}-llvm
|
||||||
mingw-w64-clang-x86_64-ffmpeg
|
mingw-w64-clang-${{ matrix.arch }}-ffmpeg
|
||||||
mingw-w64-clang-x86_64-opencv
|
mingw-w64-clang-${{ matrix.arch }}-opencv
|
||||||
mingw-w64-clang-x86_64-glew
|
mingw-w64-clang-${{ matrix.arch }}-glew
|
||||||
mingw-w64-clang-x86_64-vulkan
|
mingw-w64-clang-${{ matrix.arch }}-vulkan
|
||||||
mingw-w64-clang-x86_64-vulkan-headers
|
mingw-w64-clang-${{ matrix.arch }}-vulkan-headers
|
||||||
mingw-w64-clang-x86_64-vulkan-loader
|
mingw-w64-clang-${{ matrix.arch }}-vulkan-loader
|
||||||
mingw-w64-clang-x86_64-gtest
|
mingw-w64-clang-${{ matrix.arch }}-gtest
|
||||||
mingw-w64-clang-x86_64-qt6-base
|
mingw-w64-clang-${{ matrix.arch }}-qt6-base
|
||||||
mingw-w64-clang-x86_64-qt6-declarative
|
mingw-w64-clang-${{ matrix.arch }}-qt6-declarative
|
||||||
mingw-w64-clang-x86_64-qt6-multimedia
|
mingw-w64-clang-${{ matrix.arch }}-qt6-multimedia
|
||||||
mingw-w64-clang-x86_64-qt6-svg
|
mingw-w64-clang-${{ matrix.arch }}-qt6-svg
|
||||||
mingw-w64-clang-x86_64-qt6-tools
|
mingw-w64-clang-${{ matrix.arch }}-qt6-tools
|
||||||
mingw-w64-clang-x86_64-qt6-translations
|
mingw-w64-clang-${{ matrix.arch }}-qt6-translations
|
||||||
base-devel
|
base-devel
|
||||||
curl
|
curl
|
||||||
git
|
git
|
||||||
@@ -381,8 +389,8 @@ jobs:
|
|||||||
id: restore-build-ccache
|
id: restore-build-ccache
|
||||||
with:
|
with:
|
||||||
path: ${{ env.CCACHE_DIR }}
|
path: ${{ env.CCACHE_DIR }}
|
||||||
key: ${{ runner.os }}-ccache-${{ matrix.compiler }}-${{ runner.arch }}-${{ github.run_id }}
|
key: ${{ runner.os }}-ccache-${{ matrix.compiler }}-${{ matrix.arch }}-${{ github.run_id }}
|
||||||
restore-keys: ${{ runner.os }}-ccache-${{ matrix.compiler }}-${{ runner.arch }}-
|
restore-keys: ${{ runner.os }}-ccache-${{ matrix.compiler }}-${{ matrix.arch }}-
|
||||||
|
|
||||||
- name: Build RPCS3
|
- name: Build RPCS3
|
||||||
shell: msys2 {0}
|
shell: msys2 {0}
|
||||||
@@ -390,7 +398,7 @@ jobs:
|
|||||||
export CCACHE_DIR=$(cygpath -u "$CCACHE_DIR")
|
export CCACHE_DIR=$(cygpath -u "$CCACHE_DIR")
|
||||||
echo "CCACHE_DIR=$CCACHE_DIR"
|
echo "CCACHE_DIR=$CCACHE_DIR"
|
||||||
.ci/setup-windows-ci-vars.sh ${{ matrix.arch }} ${{ matrix.compiler }}
|
.ci/setup-windows-ci-vars.sh ${{ matrix.arch }} ${{ matrix.compiler }}
|
||||||
.ci/build-windows-clang.sh
|
.ci/build-windows-clang.sh ${{ matrix.arch }} ${{ matrix.msys2 }}
|
||||||
|
|
||||||
- name: Save build Ccache
|
- name: Save build Ccache
|
||||||
if: github.ref == 'refs/heads/master'
|
if: github.ref == 'refs/heads/master'
|
||||||
@@ -402,7 +410,7 @@ jobs:
|
|||||||
- name: Upload artifacts
|
- name: Upload artifacts
|
||||||
uses: actions/upload-artifact@main
|
uses: actions/upload-artifact@main
|
||||||
with:
|
with:
|
||||||
name: RPCS3 for Windows (${{ runner.arch }}, ${{ matrix.compiler }})
|
name: RPCS3 for Windows (${{ matrix.name }}, clang)
|
||||||
path: ${{ env.BUILD_ARTIFACTSTAGINGDIRECTORY }}
|
path: ${{ env.BUILD_ARTIFACTSTAGINGDIRECTORY }}
|
||||||
compression-level: 0
|
compression-level: 0
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
|
|||||||
Reference in New Issue
Block a user