From 641850eb50dfee2ff44bbb7aaf0f9b5621c863fc Mon Sep 17 00:00:00 2001 From: Michael Bradley Date: Sun, 23 Feb 2025 11:58:07 -0500 Subject: [PATCH 01/15] Add draft of build action --- .forgejo/workflows/build.yaml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .forgejo/workflows/build.yaml diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml new file mode 100644 index 0000000..5031756 --- /dev/null +++ b/.forgejo/workflows/build.yaml @@ -0,0 +1,21 @@ +--- +on: [push] + +name: Build + +jobs: + build: + name: Build + runs-on: ubuntu-22.04 + steps: + - name: Check out the code + uses: action/checkout@v4 + - name: Set up the build environment + run: cmake . + - name: Compile the code + run: cmake --build . + - name: Save executable + uses: forgejo/upload-artifact@v4 + with: + name: bin.zip + path: perlin-noise From f9c2ad35878a122792b8d3d6b597818a9327267b Mon Sep 17 00:00:00 2001 From: Michael Bradley Date: Sun, 23 Feb 2025 12:02:30 -0500 Subject: [PATCH 02/15] Fix typo --- .forgejo/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index 5031756..89b956b 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-22.04 steps: - name: Check out the code - uses: action/checkout@v4 + uses: actions/checkout@v4 - name: Set up the build environment run: cmake . - name: Compile the code From 1e601da194e778fd032c0a85050492cc53de59fe Mon Sep 17 00:00:00 2001 From: Michael Bradley Date: Sun, 23 Feb 2025 12:04:52 -0500 Subject: [PATCH 03/15] Install CMake for build --- .forgejo/workflows/build.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index 89b956b..78cc504 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -10,6 +10,10 @@ jobs: steps: - name: Check out the code uses: actions/checkout@v4 + - name: Install the toolchain + run: | + sudo apt-get update + sudo apt-get -y install cmake - name: Set up the build environment run: cmake . - name: Compile the code From 4f4266327f8b74bbe0c062fc4a53ff256d05846e Mon Sep 17 00:00:00 2001 From: Michael Bradley Date: Sun, 23 Feb 2025 12:08:11 -0500 Subject: [PATCH 04/15] Reduce minimum required CMake version --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ff2abe3..93e5e18 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.27) +cmake_minimum_required(VERSION 3.22) project(perlin-shadows) set(CMAKE_CXX_STANDARD 14) @@ -36,4 +36,4 @@ file(READ src/shadow.frag SHADOW_FRAG) file(READ src/shadow.geom SHADOW_GEOM) configure_file(src/point_light.in.h src/point_light.h @ONLY) -target_include_directories(perlin-shadows PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/src") \ No newline at end of file +target_include_directories(perlin-shadows PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/src") From 0d79d1773867ef6b72e0698560b662573ce5731a Mon Sep 17 00:00:00 2001 From: Michael Bradley Date: Sun, 23 Feb 2025 12:43:24 -0500 Subject: [PATCH 05/15] Add GLM headers to build action --- .forgejo/workflows/build.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index 78cc504..dd3f5a0 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -13,11 +13,11 @@ jobs: - name: Install the toolchain run: | sudo apt-get update - sudo apt-get -y install cmake + sudo apt-get -y install cmake libglm-dev - name: Set up the build environment - run: cmake . + run: cmake -S . -B cmake-build-debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON - name: Compile the code - run: cmake --build . + run: cmake --build cmake-build-debug - name: Save executable uses: forgejo/upload-artifact@v4 with: From ef07346fea543b62dd4da4161a91567025289c3f Mon Sep 17 00:00:00 2001 From: Michael Bradley Date: Sun, 23 Feb 2025 12:44:07 -0500 Subject: [PATCH 06/15] Add code formatting check --- .forgejo/workflows/build.yaml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index dd3f5a0..fe2503d 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -4,6 +4,19 @@ on: [push] name: Build jobs: + format: + name: Format + runs-on: ubuntu-22.04 + steps: + - name: Check out the code + uses: actions/checkout@v4 + - name: Install clang-format + run: | + sudo apt-get update + sudo apt-get -y install clang-format + - name: Check the code's formatting + run: "clang-format --dry-run src/*.h src/*.cpp 2>&1 | tee fmt.log; [ ! -s fmt.log ]" + build: name: Build runs-on: ubuntu-22.04 From 9050410879e8bc7d08a817d5ff6946f094f5f9ef Mon Sep 17 00:00:00 2001 From: Michael Bradley Date: Sun, 23 Feb 2025 12:48:44 -0500 Subject: [PATCH 07/15] Add more headers --- .forgejo/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index fe2503d..939a7ba 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -26,7 +26,7 @@ jobs: - name: Install the toolchain run: | sudo apt-get update - sudo apt-get -y install cmake libglm-dev + sudo apt-get -y install cmake libglew-dev libglm-dev libglut-dev - name: Set up the build environment run: cmake -S . -B cmake-build-debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON - name: Compile the code From 0475c9ef932280093659f00227a68cc52ceb3344 Mon Sep 17 00:00:00 2001 From: Michael Bradley Date: Sun, 23 Feb 2025 12:52:01 -0500 Subject: [PATCH 08/15] Temporarily disable format check for brevity --- .forgejo/workflows/build.yaml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index 939a7ba..11cff92 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -4,18 +4,18 @@ on: [push] name: Build jobs: - format: - name: Format - runs-on: ubuntu-22.04 - steps: - - name: Check out the code - uses: actions/checkout@v4 - - name: Install clang-format - run: | - sudo apt-get update - sudo apt-get -y install clang-format - - name: Check the code's formatting - run: "clang-format --dry-run src/*.h src/*.cpp 2>&1 | tee fmt.log; [ ! -s fmt.log ]" + #format: + # name: Format + # runs-on: ubuntu-22.04 + # steps: + # - name: Check out the code + # uses: actions/checkout@v4 + # - name: Install clang-format + # run: | + # sudo apt-get update + # sudo apt-get -y install clang-format + # - name: Check the code's formatting + # run: "clang-format --dry-run src/*.h src/*.cpp 2>&1 | tee fmt.log; [ ! -s fmt.log ]" build: name: Build From 2be2eac1eac51ea88352e8ce3e3df41ea15699bf Mon Sep 17 00:00:00 2001 From: Michael Bradley Date: Sun, 23 Feb 2025 12:52:31 -0500 Subject: [PATCH 09/15] Remove libglut from the image installation --- .forgejo/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index 11cff92..966d374 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -26,7 +26,7 @@ jobs: - name: Install the toolchain run: | sudo apt-get update - sudo apt-get -y install cmake libglew-dev libglm-dev libglut-dev + sudo apt-get -y install cmake libglew-dev libglm-dev - name: Set up the build environment run: cmake -S . -B cmake-build-debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON - name: Compile the code From 5675fea9dea492e18864b0dcfb9188b6f316699f Mon Sep 17 00:00:00 2001 From: Michael Bradley Date: Sun, 23 Feb 2025 12:54:35 -0500 Subject: [PATCH 10/15] Add a GLUT package that will hopefully be there --- .forgejo/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index 966d374..7ca2d56 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -26,7 +26,7 @@ jobs: - name: Install the toolchain run: | sudo apt-get update - sudo apt-get -y install cmake libglew-dev libglm-dev + sudo apt-get -y install cmake freeglut3-dev libglew-dev libglm-dev - name: Set up the build environment run: cmake -S . -B cmake-build-debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON - name: Compile the code From dbc75c99581f0d1a47f0d07e1fd048a420b4d3ef Mon Sep 17 00:00:00 2001 From: Michael Bradley Date: Sun, 23 Feb 2025 12:56:29 -0500 Subject: [PATCH 11/15] Fix executable location --- .forgejo/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index 7ca2d56..0110d38 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -35,4 +35,4 @@ jobs: uses: forgejo/upload-artifact@v4 with: name: bin.zip - path: perlin-noise + path: cmake-build-debug/perlin-noise From 344de31b8155954f9d3f70b2c1f3e52bc712eae5 Mon Sep 17 00:00:00 2001 From: Michael Bradley Date: Sun, 23 Feb 2025 12:57:03 -0500 Subject: [PATCH 12/15] Re-enable formatting check --- .forgejo/workflows/build.yaml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index 0110d38..1e1268a 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -4,18 +4,18 @@ on: [push] name: Build jobs: - #format: - # name: Format - # runs-on: ubuntu-22.04 - # steps: - # - name: Check out the code - # uses: actions/checkout@v4 - # - name: Install clang-format - # run: | - # sudo apt-get update - # sudo apt-get -y install clang-format - # - name: Check the code's formatting - # run: "clang-format --dry-run src/*.h src/*.cpp 2>&1 | tee fmt.log; [ ! -s fmt.log ]" + format: + name: Format + runs-on: ubuntu-22.04 + steps: + - name: Check out the code + uses: actions/checkout@v4 + - name: Install clang-format + run: | + sudo apt-get update + sudo apt-get -y install clang-format + - name: Check the code's formatting + run: "clang-format --dry-run src/*.h src/*.cpp 2>&1 | tee fmt.log; [ ! -s fmt.log ]" build: name: Build From 7f987925b1e393f98257cecf46eaf3ab6b3600ec Mon Sep 17 00:00:00 2001 From: Michael Bradley Date: Sun, 23 Feb 2025 12:58:58 -0500 Subject: [PATCH 13/15] Fix executable name for real this time --- .forgejo/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index 1e1268a..821439b 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -35,4 +35,4 @@ jobs: uses: forgejo/upload-artifact@v4 with: name: bin.zip - path: cmake-build-debug/perlin-noise + path: cmake-build-debug/perlin-shadows From 5d1ca28978c5e649e5f9dd29c5eee670512c021c Mon Sep 17 00:00:00 2001 From: Michael Bradley Date: Sun, 23 Feb 2025 13:23:20 -0500 Subject: [PATCH 14/15] Add linting via clang-tidy --- .forgejo/workflows/build.yaml | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index 821439b..6de6cda 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -15,7 +15,22 @@ jobs: sudo apt-get update sudo apt-get -y install clang-format - name: Check the code's formatting - run: "clang-format --dry-run src/*.h src/*.cpp 2>&1 | tee fmt.log; [ ! -s fmt.log ]" + run: clang-format --dry-run src/*.h src/*.cpp 2>&1 | tee fmt.log; [ ! -s fmt.log ] + + lint: + name: Lint + runs-on: ubuntu-22.04 + steps: + - name: Check out the code + uses: actions/checkout@v4 + - name: Install clang-tidy and the toolchain + run: | + sudo apt-get update + sudo apt-get -y install clang-tidy cmake freeglut3-dev libglew-dev libglm-dev + - name: Set up the build environment + run: cmake -S . -B cmake-build-debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON + - name: Have clang-tidy lint for errors + run: clang-tidy -p cmake-build-cli/ src/*.cpp src/*.h --warnings-as-errors='*' build: name: Build @@ -28,7 +43,7 @@ jobs: sudo apt-get update sudo apt-get -y install cmake freeglut3-dev libglew-dev libglm-dev - name: Set up the build environment - run: cmake -S . -B cmake-build-debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON + run: cmake -S . -B cmake-build-debug - name: Compile the code run: cmake --build cmake-build-debug - name: Save executable From e53cc64dc99d6609d60ff65b227ccffdf9d40529 Mon Sep 17 00:00:00 2001 From: Michael Bradley Date: Sun, 23 Feb 2025 13:25:38 -0500 Subject: [PATCH 15/15] Fix typo in CMake cache --- .forgejo/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index 6de6cda..5448de1 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -30,7 +30,7 @@ jobs: - name: Set up the build environment run: cmake -S . -B cmake-build-debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON - name: Have clang-tidy lint for errors - run: clang-tidy -p cmake-build-cli/ src/*.cpp src/*.h --warnings-as-errors='*' + run: clang-tidy -p cmake-build-debug src/*.cpp src/*.h --warnings-as-errors='*' build: name: Build