From 928b72ab36a4b924c792d3ac304fb1c6d00ee6e7 Mon Sep 17 00:00:00 2001 From: Tres Finocchiaro Date: Wed, 30 Apr 2025 15:26:35 -0400 Subject: [PATCH] Add Windows arm64 builds (#7848) * Add Windows arm64 builds --- .github/workflows/build.yml | 65 +++++++++++++++++++++ .github/workflows/deps-msys2-clangarm64.txt | 25 ++++++++ 2 files changed, 90 insertions(+) create mode 100644 .github/workflows/deps-msys2-clangarm64.txt diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9c812fd9b..5a5a25613 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -421,3 +421,68 @@ jobs: ccache --show-stats --verbose env: CCACHE_MAXSIZE: 500MB + msys2: + name: windows-arm64 + runs-on: windows-11-arm + defaults: + run: + shell: msys2 {0} + env: + CMAKE_OPTS: >- + -DCMAKE_BUILD_TYPE=RelWithDebInfo + -DUSE_COMPILE_CACHE=ON + -DCPACK_NSIS_EXECUTABLE=/clang64/bin/makensis.exe + CCACHE_MAXSIZE: 0 + CCACHE_NOCOMPRESS: 1 + MAKEFLAGS: -j2 + steps: + - name: Check out + uses: actions/checkout@v3 + with: + fetch-depth: 0 + submodules: recursive + - name: Cache msys2 dependencies + id: cache-deps + uses: actions/cache@v3 + with: + key: windows-arm64-${{ hashFiles('.github/workflows/deps-msys2-clangarm64.txt') }} + restore-keys: | + windows-arm64- + path: \msys64\var\cache\pacman\pkg + - name: Install msys2 + uses: msys2/setup-msys2@v2 + with: + msystem: CLANGARM64 + update: true + - name: Install dependencies + run: pacman --needed --noconfirm -S - < .github/workflows/deps-msys2-clangarm64.txt + - name: Cache ccache data + uses: actions/cache@v3 + with: + key: ccache-${{ github.job }}-${{ github.ref }}-${{ github.run_id }} + restore-keys: | + ccache-${{ github.job }}-${{ github.ref }}- + ccache-${{ github.job }}- + path: ~\AppData\Local\ccache + - name: Configure + run: | + /clang64/bin/ccache.exe --zero-stats + cmake -B build $CMAKE_OPTS + - name: Build + run: cmake --build build + - name: Package + run: cmake --build build --target package + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: windows-arm64 + path: build\lmms-*.exe + - name: Trim ccache and print statistics + run: | + /clang64/bin/ccache.exe --cleanup + echo "[ccache config]" + /clang64/bin/ccache.exe --show-config + echo "[ccache stats]" + /clang64/bin/ccache.exe --show-stats --verbose + env: + CCACHE_MAXSIZE: 500MB diff --git a/.github/workflows/deps-msys2-clangarm64.txt b/.github/workflows/deps-msys2-clangarm64.txt new file mode 100644 index 000000000..c3feb0264 --- /dev/null +++ b/.github/workflows/deps-msys2-clangarm64.txt @@ -0,0 +1,25 @@ +base +base-devel +filesystem +git +mingw-w64-clang-aarch64-SDL2 +mingw-w64-clang-aarch64-ccache +mingw-w64-clang-aarch64-clang +mingw-w64-clang-aarch64-cmake +mingw-w64-clang-aarch64-fftw +mingw-w64-clang-aarch64-fltk +mingw-w64-clang-aarch64-fluidsynth +mingw-w64-clang-aarch64-libgig +mingw-w64-clang-aarch64-libsamplerate +mingw-w64-clang-aarch64-libsndfile +mingw-w64-clang-aarch64-lilv +mingw-w64-clang-aarch64-lv2 +mingw-w64-clang-aarch64-qt5-base +mingw-w64-clang-aarch64-qt5-svg +mingw-w64-clang-aarch64-suil +mingw-w64-clang-aarch64-stk +mingw-w64-clang-x86_64-nsis +mingw-w64-clang-x86_64-ccache +msys2-runtime +perl-List-MoreUtils +perl-XML-Parser \ No newline at end of file