Skip to content

Commit 4933fc3

Browse files
committed
Add more workflows on Linux to test boost-filesystem
1 parent 537add3 commit 4933fc3

File tree

5 files changed

+231
-182
lines changed

5 files changed

+231
-182
lines changed
Lines changed: 36 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,27 @@
1-
name: Android (arm64-v8a, API level 33)
1+
name: Android
22

33
on:
44
push:
5-
branches:
5+
branches:
66
- "*"
77
tags:
88
- "*"
9-
9+
1010
pull_request:
11-
branches:
11+
branches:
1212
- "*"
1313

1414
jobs:
1515
build-shared:
16-
name: Shared Library
17-
runs-on: ubuntu-latest
16+
name: "Libs: ${{ matrix.libs }}, ABI: ${{ matrix.abi }}, Platform: ${{ matrix.platform-version }}, Build OS: ${{ matrix.runs-on }}"
17+
runs-on: ${{ matrix.runs-on }}
18+
strategy:
19+
fail-fast: false
20+
matrix:
21+
libs: ['shared', 'static']
22+
abi: ['arm64-v8a', 'armeabi-v7a', 'x86_64']
23+
platform-version: ['33']
24+
runs-on: ['ubuntu-24.04']
1825

1926
steps:
2027
- uses: actions/checkout@v4
@@ -25,57 +32,39 @@ jobs:
2532
run: |
2633
sudo apt-get update
2734
sudo apt-get install -y ninja-build
28-
35+
#
2936
- name: Configure Build
30-
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
31-
32-
- name: Build Debug
33-
run: cmake --build "${{ github.workspace }}/cmake-build" --config "Debug" --parallel
34-
35-
- name: Build Release
36-
run: cmake --build "${{ github.workspace }}/cmake-build" --config "Release" --parallel
37-
38-
- name: Install
39-
run: |
40-
cmake --build "${{ github.workspace }}/cmake-build" --config "Debug" --target install
41-
cmake --build "${{ github.workspace }}/cmake-build" --config "Release" --target install
42-
43-
- name: Upload Artifact
44-
uses: actions/upload-artifact@v4
45-
with:
46-
name: projectm-android-shared-latest
47-
path: install/*
48-
49-
build-static:
50-
name: Static Library
51-
runs-on: ubuntu-latest
52-
53-
steps:
54-
- uses: actions/checkout@v4
55-
with:
56-
submodules: 'recursive'
57-
58-
- name: Install Packages
5937
run: |
60-
sudo apt-get update
61-
sudo apt-get install -y libgl1-mesa-dev mesa-common-dev libsdl2-dev libglm-dev libgtest-dev libgmock-dev ninja-build
62-
63-
- name: Configure Build
64-
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
65-
38+
if [ "${{ matrix.libs }}" == "shared" ]; then
39+
shared_libs=ON
40+
else
41+
shared_libs=OFF
42+
fi
43+
cmake -G "Ninja Multi-Config" \
44+
-S "${{ github.workspace }}" \
45+
-B "${{ github.workspace }}/cmake-build" \
46+
-DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake" \
47+
-DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" \
48+
-DANDROID_PLATFORM="${{ matrix.platform-version }}" \
49+
-DANDROID_ABI="${{ matrix.abi }}" \
50+
-DCMAKE_VERBOSE_MAKEFILE=YES \
51+
-DBUILD_SHARED_LIBS="${shared_libs}" \
52+
-DBUILD_TESTING=NO \
53+
-DENABLE_SDL_UI=OFF
54+
#
6655
- name: Build Debug
6756
run: cmake --build "${{ github.workspace }}/cmake-build" --config "Debug" --parallel
68-
57+
#
6958
- name: Build Release
7059
run: cmake --build "${{ github.workspace }}/cmake-build" --config "Release" --parallel
71-
60+
#
7261
- name: Install
7362
run: |
7463
cmake --build "${{ github.workspace }}/cmake-build" --config "Debug" --target install
7564
cmake --build "${{ github.workspace }}/cmake-build" --config "Release" --target install
76-
65+
#
7766
- name: Upload Artifact
7867
uses: actions/upload-artifact@v4
7968
with:
80-
name: projectm-android-static-latest
81-
path: install/*
69+
name: projectm-android-${{ matrix.libs }}-${{ matrix.abi }}-api${{ matrix.platform-version }}
70+
path: install/*

.github/workflows/build_emscripten.yml

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,27 @@ name: Emscripten
22

33
on:
44
push:
5-
branches:
5+
branches:
66
- "*"
77
tags:
88
- "*"
9-
9+
1010
pull_request:
11-
branches:
11+
branches:
1212
- "*"
1313

1414
jobs:
1515
build:
16-
name: Static Library
17-
runs-on: ubuntu-latest
16+
name: "Libs: ${{ matrix.libs }}, FS Lib: ${{ matrix.fslib }}, SDK: ${{ matrix.emsdk-version }}, Arch: WASM, Build OS: ${{ matrix.runs-on }}"
17+
runs-on: ${{ matrix.runs-on }}
18+
strategy:
19+
fail-fast: false
20+
matrix:
21+
include:
22+
- libs: static
23+
fslib: stl
24+
emsdk-version: 3.1.53
25+
runs-on: ubuntu-24.04
1826

1927
steps:
2028
- uses: actions/checkout@v4
@@ -25,7 +33,7 @@ jobs:
2533
uses: mymindstorm/setup-emsdk@v14
2634
with:
2735
# Make sure to set a version number!
28-
version: 3.1.53
36+
version: ${{ matrix.emsdk-version }}
2937
# This is the name of the cache folder.
3038
# The cache folder will be placed in the build directory,
3139
# so make sure it doesn't conflict with anything!
@@ -45,7 +53,14 @@ jobs:
4553
cd ${{ github.workspace }}/build-gtest && ./setup.sh && ./build-emscripten.sh
4654
4755
- name: Configure Build
48-
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"
56+
run: |
57+
emcmake cmake -G "Unix Makefiles" \
58+
-S "${{ github.workspace }}" \
59+
-B "${{ github.workspace }}/cmake-build" \
60+
-DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" \
61+
-DCMAKE_VERBOSE_MAKEFILE=YES \
62+
-DBUILD_TESTING=YES \
63+
-DGTest_DIR="${{ github.workspace }}/build-gtest/dist/emscripten/lib/lib/cmake/GTest"
4964
5065
- name: Build Debug
5166
run: emmake cmake --build "${{ github.workspace }}/cmake-build" --parallel
@@ -65,5 +80,5 @@ jobs:
6580
- name: Upload Artifact
6681
uses: actions/upload-artifact@v4
6782
with:
68-
name: projectm-emscripten-static-latest
83+
name: projectm-emscripten-${{ matrix.libs }}-emsdk-${{ matrix.emsdk-version }}
6984
path: install/*

.github/workflows/build_linux.yml

Lines changed: 46 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,26 @@
1-
name: Ubuntu Linux (x86_64)
1+
name: Linux
22

33
on:
44
push:
5-
branches:
5+
branches:
66
- "*"
77
tags:
88
- "*"
9-
9+
1010
pull_request:
11-
branches:
11+
branches:
1212
- "*"
1313

1414
jobs:
1515
build-shared:
16-
name: Shared Library
17-
runs-on: ubuntu-latest
16+
name: "Libs: ${{ matrix.libs }}, FS Lib: ${{ matrix.fslib }}, Build OS: ${{ matrix.runs-on }}"
17+
runs-on: ${{ matrix.runs-on }}
18+
strategy:
19+
fail-fast: false
20+
matrix:
21+
libs: ['shared', 'static']
22+
fslib: ['stl', 'boost']
23+
runs-on: ['ubuntu-24.04', 'ubuntu-22.04']
1824

1925
steps:
2026
- uses: actions/checkout@v4
@@ -24,47 +30,41 @@ jobs:
2430
- name: Install Packages
2531
run: |
2632
sudo apt-get update
27-
sudo apt-get install -y libgl1-mesa-dev mesa-common-dev libsdl2-dev libglm-dev libgtest-dev libgmock-dev ninja-build
28-
29-
- name: Configure Build
30-
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
31-
32-
- name: Build Debug
33-
run: cmake --build "${{ github.workspace }}/cmake-build" --config "Debug" --parallel
34-
35-
- name: Run Unit Tests
36-
run: ctest --test-dir "${{ github.workspace }}/cmake-build" --verbose --build-config "Debug"
37-
38-
- name: Build Release
39-
run: cmake --build "${{ github.workspace }}/cmake-build" --config "Release" --parallel
40-
41-
- name: Install
33+
sudo apt-get install --yes --no-install-recommends \
34+
libgl1-mesa-dev \
35+
mesa-common-dev \
36+
libsdl2-dev \
37+
libglm-dev \
38+
libgtest-dev \
39+
libgmock-dev \
40+
ninja-build
41+
42+
- name: Install boost-filesystem-dev
43+
if: "${{ contains(matrix.fslib, 'boost') }}"
4244
run: |
43-
cmake --build "${{ github.workspace }}/cmake-build" --config "Debug" --target install
44-
cmake --build "${{ github.workspace }}/cmake-build" --config "Release" --target install
45-
46-
- name: Upload Artifact
47-
uses: actions/upload-artifact@v4
48-
with:
49-
name: projectm-linux-shared-latest
50-
path: install/*
51-
52-
build-static:
53-
name: Static Library
54-
runs-on: ubuntu-latest
55-
56-
steps:
57-
- uses: actions/checkout@v4
58-
with:
59-
submodules: 'recursive'
60-
61-
- name: Install Packages
62-
run: |
63-
sudo apt-get update
64-
sudo apt-get install -y libgl1-mesa-dev mesa-common-dev libsdl2-dev libglm-dev libgtest-dev libgmock-dev ninja-build
45+
sudo apt-get install --yes --no-install-recommends \
46+
libboost-filesystem-dev
6547
6648
- name: Configure Build
67-
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
49+
run: |
50+
if [ "${{ matrix.libs }}" == "shared" ]; then
51+
shared_libs=ON
52+
else
53+
shared_libs=OFF
54+
fi
55+
if [ "${{ matrix.fslib }}" == "boost" ]; then
56+
use_boost=ON
57+
else
58+
use_boost=OFF
59+
fi
60+
cmake -G "Ninja Multi-Config" \
61+
-S "${{ github.workspace }}" \
62+
-B "${{ github.workspace }}/cmake-build" \
63+
-DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" \
64+
-DCMAKE_VERBOSE_MAKEFILE=YES \
65+
-DBUILD_SHARED_LIBS="${shared_libs}" \
66+
-DENABLE_BOOST_FILESYSTEM="${use_boost}" \
67+
-DBUILD_TESTING=YES
6868
6969
- name: Build Debug
7070
run: cmake --build "${{ github.workspace }}/cmake-build" --config "Debug" --parallel
@@ -83,5 +83,5 @@ jobs:
8383
- name: Upload Artifact
8484
uses: actions/upload-artifact@v4
8585
with:
86-
name: projectm-linux-static-latest
87-
path: install/*
86+
name: projectm-linux-${{ matrix.libs }}-${{ matrix.fslib }}-${{ matrix.runs-on }}
87+
path: install/*

0 commit comments

Comments
 (0)