Skip to content

Handle multiple windows at 60fps #145

Handle multiple windows at 60fps

Handle multiple windows at 60fps #145

Workflow file for this run

name: Build
on:
push:
paths:
- 'src/**'
- 'CMakeLists.txt'
- 'assets/**'
- 'dependencies/**'
- '.github/workflows/**'
branches:
- master
- sdl
workflow_dispatch:
jobs:
build-ubuntu:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
build_type: [ Release ]
c_compiler: [ gcc ]
cpp_compiler: [ g++ ]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update && sudo apt-get install -y cmake libsfml-dev libudev-dev libopenal-dev libvorbis-dev libflac-dev libxrandr-dev libxcursor-dev libgtk-3-dev
- name: Setup SSH key and Install submodules
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
run: |
mkdir -p ~/.ssh
echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan github.com >> ~/.ssh/known_hosts
git submodule update --init --recursive
- name: Configure CMake
run: |
mkdir -p build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
- name: Build CMake
run: |
cd build
cmake --build . --config Release
- name: Collect executable and assets
run: |
mkdir -p output
ls build
ls build/bin
# cp build/bin/8ChocChip output/
# cp -r build/bin/assets output/
- name: Upload executable
uses: actions/upload-artifact@v4
with:
name: build-artifacts-linux
path: build/bin/
build-windows:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
build_type: [Release]
c_compiler: [gcc]
cpp_compiler: [g++]
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive
ssh-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: Set up SSH
run: |
mkdir -p ~/.ssh
echo "$env:SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan github.com >> ~/.ssh/known_hosts
- name: Set reusable strings
id: strings
shell: bash
run: |
echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT"
- name: Configure CMake
run: |
mkdir -p build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -D CMAKE_SYSTEM_VERSION=10.0.26100.0
- name: Build CMake
run: |
cd build
cmake --build . --config Release
- name: Search for .dll and .lib files
run: |
echo "Searching for .dll and .lib files..."
Get-ChildItem -Path . -Recurse -Include *.dll,*.lib | ForEach-Object { $_.FullName } | Out-File -FilePath found_files.txt
- name: Output Results
if: success()
run: |
echo "Found the following .dll and .lib files:"
cat found_files.txt
- name: Collect executable and assets
run: |
mkdir -p output
dir build
dir build/bin
dir build/bin/Release
cp build/dependencies/nativefiledialog/src/Release/* build/bin/Release
cp build/out/Release/libconfig++.* build/bin/Release
# cp build/src/Release/* build/bin/
# cp build/src/Release/assets/* build/bin/assets
# cp -r assets output/
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-artifacts-windows
path: build/bin/Release
- name: Test
working-directory: ${{ steps.strings.outputs.build-output-dir }}
run: ctest --build-config ${{ matrix.build_type }}
# build-macos:
# runs-on: macos-latest
# steps:
# - name: Checkout code
# uses: actions/checkout@v2
# - name: Install dependencies
# run: brew update && brew install cmake sfml
# - name: Configure and build
# run: |
# mkdir build && cd build
# cmake ..
# cmake --build .
# - name: Upload executable
# uses: actions/upload-artifact@v2
# with:
# name: macos-executable
# path: build/src/8ChocChip