optimize differentiate alpha performance (#16) #68
This file contains 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 Binaries | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- '**' | |
jobs: | |
build-gcc: | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- name: x86 | |
compiler: https://geometrydash.eu/_other/TDM-GCC-32.zip | |
additional: -DLINK_UNICOWS=1 | |
- name: x64 | |
compiler: https://geometrydash.eu/_other/TDM-GCC-64.zip | |
name: Build ${{ matrix.config.name }} | |
runs-on: windows-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install TDM GCC 5.1.0 | |
run: | | |
curl ${{ matrix.config.compiler }} -o compiler.zip -L | |
7z x compiler.zip -o"C:/TDM-GCC-5.1.0" | |
- name: Install Ninja | |
run: | | |
choco install ninja | |
- name: Configure & Build | |
run: | | |
$env:PATH = "C:/TDM-GCC-5.1.0/bin;" + $env:PATH | |
cmake ${{ matrix.config.additional }} -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_C_COMPILER=C:/TDM-GCC-5.1.0/bin/gcc.exe -DCMAKE_CXX_COMPILER=C:/TDM-GCC-5.1.0/bin/g++.exe -G Ninja -B build -S . | |
cmake --build build --config Release | |
- name: Move build to release folder | |
run: | | |
mkdir release | |
mv build/CppShot.exe release/cppshot.exe | |
- name: Grab Windows 98/2000 compatibility DLL | |
if: matrix.config.name == 'x86' | |
run: | | |
curl https://github.com/Cvolton/CppShot/releases/download/v0.4/gdiplus.dll -o release/gdiplus.dll -L | |
curl https://geometrydash.eu/_other/unicows.dll -o release/unicows.dll -L | |
- name: Copy used licenses | |
run: | | |
cp C:/TDM-GCC-5.1.0/COPYING.winpthreads.txt ./release/ | |
- name: Upload release build | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cppshot-${{ matrix.config.name }} | |
path: ./release/ | |
build-clang: | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- name: arm32 | |
compiler: https://github.com/mstorsjo/llvm-mingw/releases/download/20241001/llvm-mingw-20241001-ucrt-x86_64.zip | |
name: Build ${{ matrix.config.name }} | |
runs-on: windows-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install llvm-mingw | |
run: | | |
curl ${{ matrix.config.compiler }} -o compiler.zip -L | |
7z x compiler.zip -o"C:/llvm" | |
- name: Install Ninja | |
run: | | |
choco install ninja | |
- name: Configure & Build | |
run: | | |
$env:PATH = "C:/llvm/llvm-mingw-20241001-ucrt-x86_64/bin;" + $env:PATH | |
cmake -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_C_COMPILER="C:\llvm\llvm-mingw-20241001-ucrt-x86_64\bin\armv7-w64-mingw32-gcc.exe" -DCMAKE_CXX_COMPILER="C:\llvm\llvm-mingw-20241001-ucrt-x86_64\bin\armv7-w64-mingw32-g++.exe" -DCMAKE_LINKER="C:\llvm\llvm-mingw-20241001-ucrt-x86_64\bin\armv7-w64-mingw32-ld.exe" -DCMAKE_RC_COMPILER="C:\\llvm\\llvm-mingw-20241001-ucrt-x86_64\\bin\\llvm-rc.exe" -G Ninja -B build -S . | |
cmake --build build --config Release | |
- name: Move build to release folder | |
run: | | |
mkdir release | |
mv build/CppShot.exe release/cppshot.exe | |
- name: Copy used redistributables | |
run: | | |
cp "C:\Program Files (x86)\windows kits\10\Redist\10.0.19041.0\ucrt\DLLs\arm\*" ./release/ | |
- name: Upload release build | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cppshot-${{ matrix.config.name }} | |
path: ./release/ | |
build-msvc: | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- name: arm64 | |
platform: arm64 | |
name: Build ${{ matrix.config.name }} | |
runs-on: windows-2019 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Configure & Build | |
run: | | |
cmake -G "Visual Studio 16 2019" -B build -DCMAKE_BUILD_TYPE=Release -A ${{ matrix.config.platform }} -S . | |
cmake --build build --config Release | |
- name: Upload release build | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cppshot-${{ matrix.config.name }} | |
path: ./build/Release/ |