Build chiaki-ng msys2 arm64 Windows #25
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build chiaki-ng msys2 arm64 Windows | |
on: | |
workflow_dispatch: | |
jobs: | |
build-windows_arm64-msys2: | |
name: Build windows msys2 arm version | |
runs-on: windows-11-arm | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- name: Disable autocrlf | |
shell: pwsh | |
run: | | |
git config --global core.autocrlf false | |
git config --global core.eol lf | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- uses: msys2/setup-msys2@v2 | |
with: | |
msystem: clangarm64 | |
update: true | |
install: git | |
pacboy: >- | |
ca-certificates:p | |
cc:p | |
cmake:p | |
curl:p | |
diffutils:p | |
fast_float:p | |
fftw:p | |
hidapi:p | |
json-c:p | |
lcms2:p | |
libdovi:p | |
meson:p | |
miniupnpc:p | |
gcc:p | |
nasm:p | |
ninja:p | |
openssl:p | |
opus:p | |
pkgconf:p | |
protobuf:p | |
python:p | |
python-psutil:p | |
python-glad:p | |
python-jinja:p | |
python-pip:p | |
qt6-base:p | |
qt6-declarative:p | |
qt6-svg:p | |
SDL2:p | |
shaderc:p | |
speexdsp:p | |
spirv-cross:p | |
vulkan:p | |
vulkan-headers:p | |
- name: Install python protobuf and zip, and zip | |
run: | | |
pip install protobuf | |
pacman -S git make unzip --noconfirm | |
- name: Build libbplacebo | |
run: | | |
scripts/build-libplacebo-windows-arm.sh | |
- name: Setup ffmpeg | |
run: | | |
curl -LO https://github.com/streetpea/FFmpeg-Builds/releases/download/latest/ffmpeg-n7.1-latest-winarm64-gpl-shared-7.1.zip | |
unzip ffmpeg-n7.1-latest-winarm64-gpl-shared-7.1.zip | |
cp -a "ffmpeg-n7.1-latest-winarm64-gpl-shared-7.1/bin/." /clangarm64/bin | |
cp -a "ffmpeg-n7.1-latest-winarm64-gpl-shared-7.1/include/." /clangarm64/include | |
cp -a "ffmpeg-n7.1-latest-winarm64-gpl-shared-7.1/lib/." /clangarm64/lib | |
- name: Configure chiaki-ng | |
run: | | |
cmake -S . -B build -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCHIAKI_ENABLE_CLI=OFF | |
- name: Build chiaki-ng | |
run: | | |
cmake --build build --config Release --clean-first --target chiaki | |
- name: Deploy chiaki-ng | |
run: | | |
mkdir chiaki-ng-Win | |
cp build/gui/chiaki.exe chiaki-ng-Win/ | |
export PATH="${{ github.workspace }}/build/third-party/cpp-steam-tools:${PATH}" | |
echo chiaki-ng-Win/chiaki.exe > tmp0.txt | |
while [ -e tmp0.txt ] | |
do | |
cp tmp0.txt tmp.txt | |
rm tmp0.txt | |
sort -u tmp.txt -o tmp.txt | |
ldd $(<tmp.txt) | grep -v ":" | cut -d " " -f3 | grep -iv "system32" | grep -iv "not" | xargs -d $'\n' sh -c 'for arg do if [ -n "$arg" ] && [ ! -e "chiaki-ng-Win/${arg##*/}" ]; then echo "Copied $arg"; cp "$arg" chiaki-ng-Win/ ; echo "$arg" >> tmp0.txt; fi; done' | |
done | |
windeployqt6.exe --no-translations --qtpaths /clangarm64/bin/qtpaths6.exe --qmlimport=/clangarm64/share/qt6/qml/ --qmldir=gui/src/qml --release chiaki-ng-Win/chiaki.exe | |
- name: Compile .ISS to .EXE Installer | |
uses: Minionguyjpro/Inno-Setup-Action@v1.2.2 | |
with: | |
path: "scripts/chiaki-ng.iss" | |
options: /O+ | |
- name: Upload chiaki-ng Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: chiaki-ng-win_arm64-MSYS2-Release.zip | |
path: chiaki-ng-windows-installer.exe | |
if-no-files-found: error | |
retention-days: 7 | |