From 65ae304a24406cc58a199e63cb6d4a621b7a2507 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Be=C3=9Fler?=
Date: Tue, 30 Dec 2025 14:24:27 +0100
Subject: [PATCH 01/15] Restructured workflow
---
.github/workflows/main.yml | 93 +++++++++++++++++++++++++-------------
1 file changed, 62 insertions(+), 31 deletions(-)
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index c577f58841..08855db299 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -8,7 +8,8 @@ on:
release:
types: [published]
jobs:
- build:
+ ##############################
+ build-linux:
runs-on: ubuntu-24.04
steps:
# Note: some steps require the checkout in the root directory
@@ -40,12 +41,6 @@ jobs:
with:
comment_title: Compilation
compile_result_file: build/make-output.txt
- - name: Create debian package
- if: ${{github.event_name == 'push' || github.event_name == 'release'}}
- shell: bash
- run: |
- cd build
- cpack
- name: Run unit tests
if: ${{github.event_name == 'push' || github.event_name == 'pull_request'}}
shell: bash
@@ -59,12 +54,71 @@ jobs:
junit_files: "gtest-regen.xml"
action_fail: true
action_fail_on_inconclusive: true
- #####
+ - name: Upload test results
+ uses: actions/upload-artifact@v4
+ with:
+ name: test results
+ path: ./gtest-regen.xml
+ ##############################
+ debian-package:
+ runs-on: ubuntu-24.04
+ steps:
+ - uses: actions/checkout@v3
+ - name: Create debian package
+ if: ${{github.event_name == 'push' || github.event_name == 'release'}}
+ shell: bash
+ run: |
+ sudo apt-get update -y -qq
+ sudo apt-get install libgl-dev \
+ libboost-thread-dev libboost-system-dev libboost-date-time-dev libboost-filesystem-dev \
+ libboost-regex-dev libboost-timer-dev \
+ libassimp-dev libopenal-dev libdevil-dev libfreetype-dev libbullet-dev \
+ libglew-dev libglu1-mesa-dev libgl1-mesa-dev \
+ libavcodec-dev libavformat-dev libavutil-dev libswscale-dev \
+ libpng-dev libalut-dev \
+ qtbase5-dev libgtest-dev \
+ doxygen graphviz \
+ nlohmann-json3-dev
+ mkdir build
+ cd build
+ cmake ../ -DCMAKE_BUILD_TYPE=Release
+ cpack
+ - name: Release debian package
+ if: github.event_name == 'release'
+ shell: bash
+ env:
+ GITHUB_TOKEN: ${{ github.TOKEN }}
+ run: |
+ gh release upload ${{github.event.release.tag_name}} ./build/regen-*.deb
+ - name: Upload debian package
+ if: github.event_name == 'push'
+ uses: actions/upload-artifact@v4
+ with:
+ name: debian package
+ path: ./build/regen-*.deb
+ ##############################
+ doxygen:
+ runs-on: ubuntu-24.04
+ steps:
+ - uses: actions/checkout@v3
- name: Run doxygen
if: ${{github.event_name == 'push' || github.event_name == 'release'}}
shell: bash
run: |
+ sudo apt-get update -y -qq
+ sudo apt-get install libgl-dev \
+ libboost-thread-dev libboost-system-dev libboost-date-time-dev libboost-filesystem-dev \
+ libboost-regex-dev libboost-timer-dev \
+ libassimp-dev libopenal-dev libdevil-dev libfreetype-dev libbullet-dev \
+ libglew-dev libglu1-mesa-dev libgl1-mesa-dev \
+ libavcodec-dev libavformat-dev libavutil-dev libswscale-dev \
+ libpng-dev libalut-dev \
+ qtbase5-dev libgtest-dev \
+ doxygen graphviz \
+ nlohmann-json3-dev
+ mkdir build
cd build
+ cmake ../ -DCMAKE_BUILD_TYPE=Release
cmake --build . --target doc
cp -r ../img regen/doc/html/
- name: Extract version tag
@@ -88,26 +142,3 @@ jobs:
BRANCH: gh-pages
# The folder the action should deploy.
FOLDER: build/regen/doc/html
- # The folder in the target branch
- TARGET_FOLDER: ${{ env.REGEN_DOCU_VERSION }}
- CLEAN: true
- SINGLE_COMMIT: true
- #####
- - name: Release debian package
- if: github.event_name == 'release'
- shell: bash
- env:
- GITHUB_TOKEN: ${{ github.TOKEN }}
- run: |
- gh release upload ${{github.event.release.tag_name}} ./build/regen-*.deb
- - name: Upload debian package
- if: github.event_name == 'push'
- uses: actions/upload-artifact@v4
- with:
- name: debian package
- path: ./build/regen-*.deb
- - name: Upload test results
- uses: actions/upload-artifact@v4
- with:
- name: test results
- path: ./gtest-regen.xml
From 6b2718ba68519f9c06c13e703a734fd9b32b1e32 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Be=C3=9Fler?=
Date: Tue, 30 Dec 2025 15:02:16 +0100
Subject: [PATCH 02/15] Added -j$(nproc)
---
.github/workflows/main.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 08855db299..ab10c977e9 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -31,7 +31,7 @@ jobs:
mkdir build
cd build
cmake ../ -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON -DBUILD_VIDEO_PLAYER=ON
- make 2> >(tee "make-output.txt")
+ make -j$(nproc) 2> >(tee "make-output.txt")
- name: Annotate compilation warnings/errors
if: ${{github.event_name == 'pull_request'}}
uses: JacobDomagala/CompileResult@master
From 67057edc30c0cef32aaba94fd2dd43efeae0fbcf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Be=C3=9Fler?=
Date: Tue, 30 Dec 2025 15:10:29 +0100
Subject: [PATCH 03/15] CI improvements
---
.github/workflows/main.yml | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index ab10c977e9..2d67726030 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -17,6 +17,7 @@ jobs:
- name: Build REGEN workspace
shell: bash
run: |
+ set -euo pipefail
sudo apt-get update -y -qq
sudo apt-get install libgl-dev \
libboost-thread-dev libboost-system-dev libboost-date-time-dev libboost-filesystem-dev \
@@ -61,6 +62,7 @@ jobs:
path: ./gtest-regen.xml
##############################
debian-package:
+ needs: build-linux
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v3
@@ -68,6 +70,7 @@ jobs:
if: ${{github.event_name == 'push' || github.event_name == 'release'}}
shell: bash
run: |
+ set -euo pipefail
sudo apt-get update -y -qq
sudo apt-get install libgl-dev \
libboost-thread-dev libboost-system-dev libboost-date-time-dev libboost-filesystem-dev \
@@ -98,6 +101,7 @@ jobs:
path: ./build/regen-*.deb
##############################
doxygen:
+ needs: build-linux
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v3
@@ -105,6 +109,7 @@ jobs:
if: ${{github.event_name == 'push' || github.event_name == 'release'}}
shell: bash
run: |
+ set -euo pipefail
sudo apt-get update -y -qq
sudo apt-get install libgl-dev \
libboost-thread-dev libboost-system-dev libboost-date-time-dev libboost-filesystem-dev \
From ff4dd1398223661ff1efb6e4f140699b4f5f5d38 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Be=C3=9Fler?=
Date: Tue, 30 Dec 2025 15:29:42 +0100
Subject: [PATCH 04/15] Do not use -mfpmath=sse with apple
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9284168bcf..bb7c009730 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -75,7 +75,7 @@ endif()
# given in the books "Effective C++" and "More Effective C++"
# add_definitions( -Weffc++ )
-if(UNIX) # gcc options
+if(UNIX AND NOT APPLE)
add_definitions( -mfpmath=sse -march=native )
endif()
From 5dd254f9fce76b3fcd6133f006a5268a8bee3eb1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Be=C3=9Fler?=
Date: Wed, 31 Dec 2025 13:35:01 +0100
Subject: [PATCH 05/15] Added more badges
---
README.md | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/README.md b/README.md
index 0880beb1db..57a0ebe785 100644
--- a/README.md
+++ b/README.md
@@ -11,6 +11,11 @@

+
+[](https://daniel86.github.io/regen/)
+
+
+
`regen` -- **Real-time Graphics Engine** -- is a modular OpenGL-based C++ engine designed for research and experimentation in real-time rendering, GPU compute, and virtual world simulation.
From 8950bfef383dc662f276d45a75190f6a279613dc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Be=C3=9Fler?=
Date: Wed, 31 Dec 2025 16:05:23 +0100
Subject: [PATCH 06/15] Added missing include
---
regen/shader/includer.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/regen/shader/includer.h b/regen/shader/includer.h
index fc0ea12a88..5be3ec9a50 100644
--- a/regen/shader/includer.h
+++ b/regen/shader/includer.h
@@ -6,6 +6,7 @@
#include
#include