Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 31 additions & 42 deletions .github/workflows/build_android.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,27 @@
name: Android (arm64-v8a, API level 33)
name: Android

on:
push:
branches:
branches:
- "*"
tags:
- "*"

pull_request:
branches:
branches:
- "*"

jobs:
build-shared:
name: Shared Library
runs-on: ubuntu-latest
name: "Libs: ${{ matrix.libs }}, ABI: ${{ matrix.abi }}, Platform: ${{ matrix.platform-version }}, Build OS: ${{ matrix.runs-on }}"
runs-on: ${{ matrix.runs-on }}
strategy:
fail-fast: false
matrix:
libs: ['shared', 'static']
abi: ['arm64-v8a', 'armeabi-v7a', 'x86_64']
platform-version: ['33']
runs-on: ['ubuntu-24.04']

steps:
- uses: actions/checkout@v4
Expand All @@ -27,41 +34,23 @@ jobs:
sudo apt-get install -y ninja-build

- name: Configure Build
run: cmake -G "Ninja Multi-Config" -S "${{ github.workspace }}" -B "${{ github.workspace }}/cmake-build" -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake" -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" -DANDROID_PLATFORM=33 -DANDROID_ABI=arm64-v8a -DCMAKE_VERBOSE_MAKEFILE=YES -DBUILD_SHARED_LIBS=ON -DBUILD_TESTING=NO -DENABLE_SDL_UI=OFF

- name: Build Debug
run: cmake --build "${{ github.workspace }}/cmake-build" --config "Debug" --parallel

- name: Build Release
run: cmake --build "${{ github.workspace }}/cmake-build" --config "Release" --parallel

- name: Install
run: |
cmake --build "${{ github.workspace }}/cmake-build" --config "Debug" --target install
cmake --build "${{ github.workspace }}/cmake-build" --config "Release" --target install

- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: projectm-android-shared-latest
path: install/*

build-static:
name: Static Library
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'

- name: Install Packages
run: |
sudo apt-get update
sudo apt-get install -y libgl1-mesa-dev mesa-common-dev libsdl2-dev libglm-dev libgtest-dev libgmock-dev ninja-build

- name: Configure Build
run: cmake -G "Ninja Multi-Config" -S "${{ github.workspace }}" -B "${{ github.workspace }}/cmake-build" -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake" -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" -DANDROID_PLATFORM=33 -DANDROID_ABI=arm64-v8a -DCMAKE_VERBOSE_MAKEFILE=YES -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTING=NO -DENABLE_SDL_UI=OFF
if [ "${{ matrix.libs }}" == "shared" ]; then
shared_libs=ON
else
shared_libs=OFF
fi
cmake -G "Ninja Multi-Config" \
-S "${{ github.workspace }}" \
-B "${{ github.workspace }}/cmake-build" \
-DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake" \
-DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" \
-DANDROID_PLATFORM="${{ matrix.platform-version }}" \
-DANDROID_ABI="${{ matrix.abi }}" \
-DCMAKE_VERBOSE_MAKEFILE=YES \
-DBUILD_SHARED_LIBS="${shared_libs}" \
-DBUILD_TESTING=NO \
-DENABLE_SDL_UI=OFF

- name: Build Debug
run: cmake --build "${{ github.workspace }}/cmake-build" --config "Debug" --parallel
Expand All @@ -77,5 +66,5 @@ jobs:
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: projectm-android-static-latest
path: install/*
name: projectm-android-${{ matrix.libs }}-${{ matrix.abi }}-api${{ matrix.platform-version }}
path: install/*
31 changes: 23 additions & 8 deletions .github/workflows/build_emscripten.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,27 @@ name: Emscripten

on:
push:
branches:
branches:
- "*"
tags:
- "*"

pull_request:
branches:
branches:
- "*"

jobs:
build:
name: Static Library
runs-on: ubuntu-latest
name: "Libs: ${{ matrix.libs }}, FS Lib: ${{ matrix.fslib }}, SDK: ${{ matrix.emsdk-version }}, Arch: WASM, Build OS: ${{ matrix.runs-on }}"
runs-on: ${{ matrix.runs-on }}
strategy:
fail-fast: false
matrix:
include:
- libs: static
fslib: stl
emsdk-version: 3.1.53
runs-on: ubuntu-24.04

steps:
- uses: actions/checkout@v4
Expand All @@ -25,7 +33,7 @@ jobs:
uses: mymindstorm/setup-emsdk@v14
with:
# Make sure to set a version number!
version: 3.1.53
version: ${{ matrix.emsdk-version }}
# This is the name of the cache folder.
# The cache folder will be placed in the build directory,
# so make sure it doesn't conflict with anything!
Expand All @@ -45,7 +53,14 @@ jobs:
cd ${{ github.workspace }}/build-gtest && ./setup.sh && ./build-emscripten.sh

- name: Configure Build
run: emcmake cmake -G "Unix Makefiles" -S "${{ github.workspace }}" -B "${{ github.workspace }}/cmake-build" -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" -DCMAKE_VERBOSE_MAKEFILE=YES -DBUILD_TESTING=YES -DGTest_DIR="${{ github.workspace }}/build-gtest/dist/emscripten/lib/lib/cmake/GTest"
run: |
emcmake cmake -G "Unix Makefiles" \
-S "${{ github.workspace }}" \
-B "${{ github.workspace }}/cmake-build" \
-DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" \
-DCMAKE_VERBOSE_MAKEFILE=YES \
-DBUILD_TESTING=YES \
-DGTest_DIR="${{ github.workspace }}/build-gtest/dist/emscripten/lib/lib/cmake/GTest"

- name: Build Debug
run: emmake cmake --build "${{ github.workspace }}/cmake-build" --parallel
Expand All @@ -65,5 +80,5 @@ jobs:
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: projectm-emscripten-static-latest
name: projectm-emscripten-${{ matrix.libs }}-emsdk-${{ matrix.emsdk-version }}
path: install/*
92 changes: 46 additions & 46 deletions .github/workflows/build_linux.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,26 @@
name: Ubuntu Linux (x86_64)
name: Linux

on:
push:
branches:
branches:
- "*"
tags:
- "*"

pull_request:
branches:
branches:
- "*"

jobs:
build-shared:
name: Shared Library
runs-on: ubuntu-latest
name: "Libs: ${{ matrix.libs }}, FS Lib: ${{ matrix.fslib }}, Build OS: ${{ matrix.runs-on }}"
runs-on: ${{ matrix.runs-on }}
strategy:
fail-fast: false
matrix:
libs: ['shared', 'static']
fslib: ['stl', 'boost']
runs-on: ['ubuntu-24.04', 'ubuntu-22.04']

steps:
- uses: actions/checkout@v4
Expand All @@ -24,47 +30,41 @@ jobs:
- name: Install Packages
run: |
sudo apt-get update
sudo apt-get install -y libgl1-mesa-dev mesa-common-dev libsdl2-dev libglm-dev libgtest-dev libgmock-dev ninja-build

- name: Configure Build
run: cmake -G "Ninja Multi-Config" -S "${{ github.workspace }}" -B "${{ github.workspace }}/cmake-build" -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" -DCMAKE_VERBOSE_MAKEFILE=YES -DBUILD_SHARED_LIBS=ON -DBUILD_TESTING=YES

- name: Build Debug
run: cmake --build "${{ github.workspace }}/cmake-build" --config "Debug" --parallel

- name: Run Unit Tests
run: ctest --test-dir "${{ github.workspace }}/cmake-build" --verbose --build-config "Debug"

- name: Build Release
run: cmake --build "${{ github.workspace }}/cmake-build" --config "Release" --parallel

- name: Install
sudo apt-get install --yes --no-install-recommends \
libgl1-mesa-dev \
mesa-common-dev \
libsdl2-dev \
libglm-dev \
libgtest-dev \
libgmock-dev \
ninja-build

- name: Install boost-filesystem-dev
if: "${{ contains(matrix.fslib, 'boost') }}"
run: |
cmake --build "${{ github.workspace }}/cmake-build" --config "Debug" --target install
cmake --build "${{ github.workspace }}/cmake-build" --config "Release" --target install

- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: projectm-linux-shared-latest
path: install/*

build-static:
name: Static Library
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'

- name: Install Packages
run: |
sudo apt-get update
sudo apt-get install -y libgl1-mesa-dev mesa-common-dev libsdl2-dev libglm-dev libgtest-dev libgmock-dev ninja-build
sudo apt-get install --yes --no-install-recommends \
libboost-filesystem-dev

- name: Configure Build
run: cmake -G "Ninja Multi-Config" -S "${{ github.workspace }}" -B "${{ github.workspace }}/cmake-build" -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" -DCMAKE_VERBOSE_MAKEFILE=YES -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTING=YES
run: |
if [ "${{ matrix.libs }}" == "shared" ]; then
shared_libs=ON
else
shared_libs=OFF
fi
if [ "${{ matrix.fslib }}" == "boost" ]; then
use_boost=ON
else
use_boost=OFF
fi
cmake -G "Ninja Multi-Config" \
-S "${{ github.workspace }}" \
-B "${{ github.workspace }}/cmake-build" \
-DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" \
-DCMAKE_VERBOSE_MAKEFILE=YES \
-DBUILD_SHARED_LIBS="${shared_libs}" \
-DENABLE_BOOST_FILESYSTEM="${use_boost}" \
-DBUILD_TESTING=YES

- name: Build Debug
run: cmake --build "${{ github.workspace }}/cmake-build" --config "Debug" --parallel
Expand All @@ -83,5 +83,5 @@ jobs:
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: projectm-linux-static-latest
path: install/*
name: projectm-linux-${{ matrix.libs }}-${{ matrix.fslib }}-${{ matrix.runs-on }}
path: install/*
Loading
Loading