port: cmake: fix stdc++ linking on windows; restore the icon #793
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: C/C++ CI | |
on: | |
push: | |
branches: [ "port" ] | |
pull_request: | |
branches: [ "port" ] | |
workflow_dispatch: | |
jobs: | |
build-i686-windows: | |
runs-on: windows-latest | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- name: Install MSYS2 | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: MINGW32 | |
update: true | |
install: >- | |
git | |
make | |
mingw-w64-i686-toolchain | |
mingw-w64-i686-SDL2 | |
mingw-w64-i686-zlib | |
mingw-w64-i686-cmake | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Build pd.i686.exe | |
run: cmake -G"Unix Makefiles" -Bbuild . && cmake --build build -j | |
- name: Build pd.pal.i686.exe | |
run: cmake -G"Unix Makefiles" -Bbuild_pal -DROMID=pal-final . && cmake --build build_pal -j | |
- name: Build pd.jpn.i686.exe | |
run: cmake -G"Unix Makefiles" -Bbuild_jpn -DROMID=jpn-final . && cmake --build build_jpn -j | |
- name: Prepare artifact for packaging | |
run: | | |
mkdir -p bin/data | |
cp build/pd.i686.exe bin/ | |
cp build_pal/pd.pal.i686.exe bin/ | |
cp build_jpn/pd.jpn.i686.exe bin/ | |
cp /mingw32/bin/{SDL2.dll,zlib1.dll,libgcc_s_dw2-1.dll,libwinpthread-1.dll} bin/ | |
touch bin/data/put_your_rom_here.txt | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: pd-i686-windows | |
path: bin/ | |
retention-days: 0 | |
build-i686-linux: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install dependencies | |
run: | | |
sudo dpkg --add-architecture i386 | |
sudo apt-get update | |
sudo apt-get install git gcc g++ gcc-multilib g++-multilib make libsdl2-dev zlib1g-dev libsdl2-dev:i386 zlib1g-dev:i386 cmake | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Build pd.i686 | |
run: cmake -G"Unix Makefiles" -Bbuild -DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32 . && cmake --build build -j | |
- name: Build pd.pal.i686 | |
run: cmake -G"Unix Makefiles" -Bbuild_pal -DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32 -DROMID=pal-final . && cmake --build build_pal -j | |
- name: Build pd.jpn.i686 | |
run: cmake -G"Unix Makefiles" -Bbuild_jpn -DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32 -DROMID=jpn-final . && cmake --build build_jpn -j | |
- name: Prepare artifact for packaging | |
run: | | |
mkdir -p bin/data | |
cp build/pd.i686 bin/ | |
cp build_pal/pd.pal.i686 bin/ | |
cp build_jpn/pd.jpn.i686 bin/ | |
touch bin/data/put_your_rom_here.txt | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: pd-i686-linux | |
path: bin/ | |
retention-days: 0 | |
build-x86_64-windows: | |
runs-on: windows-latest | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- name: Install MSYS2 | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: MINGW64 | |
update: true | |
install: >- | |
git | |
make | |
mingw-w64-x86_64-toolchain | |
mingw-w64-x86_64-python | |
mingw-w64-x86_64-SDL2 | |
mingw-w64-x86_64-zlib | |
mingw-w64-x86_64-cmake | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Build pd.x86_64.exe | |
run: cmake -G"Unix Makefiles" -Bbuild . && cmake --build build -j | |
- name: Build pd.pal.x86_64.exe | |
run: cmake -G"Unix Makefiles" -Bbuild_pal -DROMID=pal-final . && cmake --build build_pal -j | |
- name: Build pd.jpn.x86_64.exe | |
run: cmake -G"Unix Makefiles" -Bbuild_jpn -DROMID=jpn-final . && cmake --build build_jpn -j | |
- name: Prepare artifact for packaging | |
run: | | |
mkdir -p bin/data | |
cp build/pd.x86_64.exe bin/ | |
cp build_pal/pd.pal.x86_64.exe bin/ | |
cp build_jpn/pd.jpn.x86_64.exe bin/ | |
cp /mingw64/bin/{SDL2.dll,zlib1.dll,libwinpthread-1.dll,libgcc_s_seh-1.dll} bin/ | |
touch bin/data/put_your_rom_here.txt | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: pd-x86_64-windows | |
path: bin/ | |
retention-days: 0 | |
build-x86_64-linux: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install dependencies | |
run: | | |
sudo dpkg --add-architecture amd64 | |
sudo apt-get update | |
sudo apt-get install git gcc g++ gcc-multilib g++-multilib make libsdl2-dev zlib1g-dev libsdl2-2.0-0 cmake | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Build pd.x86_64 | |
run: cmake -G"Unix Makefiles" -Bbuild . && cmake --build build -j | |
- name: Build pd.pal.x86_64 | |
run: cmake -G"Unix Makefiles" -Bbuild_pal -DROMID=pal-final . && cmake --build build_pal -j | |
- name: Build pd.jpn.x86_64 | |
run: cmake -G"Unix Makefiles" -Bbuild_jpn -DROMID=jpn-final . && cmake --build build_jpn -j | |
- name: Prepare artifact for packaging | |
run: | | |
mkdir -p bin/data | |
cp build/pd.x86_64 bin/ | |
cp build_pal/pd.pal.x86_64 bin/ | |
cp build_jpn/pd.jpn.x86_64 bin/ | |
touch bin/data/put_your_rom_here.txt | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: pd-x86_64-linux | |
path: bin/ | |
retention-days: 0 | |
build-flatpak-bundle: | |
name: "Build flatpak bundle" | |
runs-on: ubuntu-latest | |
needs: [build-i686-linux, build-x86_64-linux] | |
container: | |
image: bilelmoussaoui/flatpak-github-actions:freedesktop-23.08 | |
options: --privileged | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: pd-i686-linux | |
path: dist/linux/bin/ | |
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6 | |
with: | |
bundle: io.github.fgsfdsfgs.perfect_dark.flatpak | |
manifest-path: dist/linux/io.github.fgsfdsfgs.perfect_dark.yaml | |
cache-key: flatpak-builder-${{ github.sha }} | |
upload-artifact: true | |
# - name: Build Flatpak bundle | |
# run: | | |
# cd dist/linux/ | |
# flatpak-builder build --force-clean io.github.fgsfdsfgs.perfect_dark.yaml | |
# flatpak build-export export build | |
# flatpak build-bundle export io.github.fgsfdsfgs.perfect_dark.flatpak io.github.fgsfdsfgs.perfect_dark | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: io.github.fgsfdsfgs.perfect_dark.flatpak | |
path: io.github.fgsfdsfgs.perfect_dark.flatpak | |
retention-days: 0 | |
publish-latest-build: | |
runs-on: ubuntu-latest | |
if: github.ref == 'refs/heads/port' | |
needs: [build-i686-windows, build-i686-linux, build-x86_64-windows, build-x86_64-linux, build-flatpak-bundle] | |
permissions: | |
contents: write | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
path: ci-artifacts | |
- name: Publish latest dev-build | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
mkdir ci-release | |
pushd ci-artifacts | |
tar czf ../ci-release/pd-i686-linux.tar.gz pd-i686-linux | |
tar czf ../ci-release/pd-x86_64-linux.tar.gz pd-x86_64-linux | |
zip -r ../ci-release/pd-i686-windows.zip pd-i686-windows | |
zip -r ../ci-release/pd-x86_64-windows.zip pd-x86_64-windows | |
mv io.github.fgsfdsfgs.perfect_dark.flatpak/io.github.fgsfdsfgs.perfect_dark.flatpak ../ci-release/ | |
popd | |
git tag --force ci-dev-build port | |
git push --force origin ci-dev-build | |
gh release upload --clobber ci-dev-build ci-release/* |