From 245867da3b2e510110ecc17486d0d6334f7670b8 Mon Sep 17 00:00:00 2001 From: Romain BOULLARD Date: Wed, 28 Jan 2026 18:31:29 +0000 Subject: [PATCH 1/2] Update README (#5) Reviewed-on: https://git.romainboullard.com/BigfootDev/Bigfoot/pulls/5 --- README.md | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index ec83174..5a66607 100644 --- a/README.md +++ b/README.md @@ -11,11 +11,9 @@ The goal is to build a multiplatform, API agnostic, 3D engine. Since this is a l ### Requirements 1. [ConanV2](https://conan.io/) -2. [SQLite3 tools](https://www.sqlite.org/download.html) available from the command line 3. [Vulkan SDK](https://www.lunarg.com/vulkan-sdk/) (If you target Vulkan) 4. [CMake](https://cmake.org/) 5. [Git](https://git-scm.com/) -6. [RenderDoc](https://renderdoc.org/) (If you want to use the integrated RenderDoc API) 7. [Python3](https://www.python.org/) #### Additional requirements for Linux @@ -50,16 +48,14 @@ You can customize these scripts to opt-out of some Bigfoot features 'Just' modify these lines to disable them (I promise to one day modify the script to do it from the command line) ``` -bigfoot/*:unity_build=True -o bigfoot/*:build_tests=True -o bigfoot/*:tracy=True -o bigfoot/*:build_tools=True -o bigfoot/*:vulkan=True -o bigfoot/*:build_benchmarks=True -o bigfoot/*:render_doc=True +-o bigfoot/*:build_tests=True -o bigfoot/*:tracy=True -o bigfoot/*:build_tools=True -o bigfoot/*:vulkan=True -o bigfoot/*:build_benchmarks=True ``` -1. unity_build: Enable/Disable [unity builds](https://cmake.org/cmake/help/latest/variable/CMAKE_UNITY_BUILD.html) feature (will slow down compilation times) -2. build_tests: Enable/Disable the tests -3. tracy: Enable/Disable profiling using [Tracy](https://github.com/wolfpld/tracy) -4. build_tools: Enable/Disable the tools (I'd absolutely recommand not disabling this if you are building benchamrks or tests) -5. vulkan: Enable/Disable Vulkan renderer (No point disabling it, since for now only Vulkan is available in Bigfoot) -6. build_benchmarks: Enable/Disable the benchmarks -7. render_doc: Enable/Disable the possitbility to use [RenderDoc](https://renderdoc.org/) API to capture from code +1. build_tests: Enable/Disable the tests +2. tracy: Enable/Disable profiling using [Tracy](https://github.com/wolfpld/tracy) +3. build_tools: Enable/Disable the tools (I'd absolutely recommand not disabling this) +4. vulkan: Enable/Disable Vulkan renderer (No point disabling it, since for now only Vulkan is available in Bigfoot) +5. build_benchmarks: Enable/Disable the benchmarks ### Generating Bigfoot From 6c8979684d64f149b873ac3e43529810da520c27 Mon Sep 17 00:00:00 2001 From: Romain BOULLARD Date: Fri, 30 Jan 2026 15:46:40 +0000 Subject: [PATCH 2/2] StaticAnalysis (#6) Reviewed-on: https://git.romainboullard.com/BigfootDev/Bigfoot/pulls/6 Co-authored-by: Romain BOULLARD Co-committed-by: Romain BOULLARD --- .clang-tidy | 23 +++++++++++ .gitea/workflows/sonarqube.yml | 38 +++++++++++++++++++ .../Sources/Utils/Include/Utils/Version.hpp | 2 +- conanfile.py | 2 +- sonar-project.properties | 11 ++++++ 5 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 .clang-tidy create mode 100644 .gitea/workflows/sonarqube.yml create mode 100644 sonar-project.properties diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 0000000..92f8412 --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,23 @@ +# .clang-tidy +--- +Checks: > + -*, + bugprone-*, + clang-analyzer-*, + cppcoreguidelines-*, + modernize-*, + performance-*, + readability-*, + portability-*, + + -modernize-use-trailing-return-type, + -readability-avoid-const-params-in-decls, + -cppcoreguidelines-macro-usage, + -cppcoreguidelines-avoid-do-while + +HeaderFilterRegex: '^(Bigfoot)/' +ExcludeHeaderFilterRegex: '_generated.*' + +CheckOptions: + - key: readability-implicit-bool-conversion.AllowPointerConditions + value: true \ No newline at end of file diff --git a/.gitea/workflows/sonarqube.yml b/.gitea/workflows/sonarqube.yml new file mode 100644 index 0000000..f5612da --- /dev/null +++ b/.gitea/workflows/sonarqube.yml @@ -0,0 +1,38 @@ +name: Bigfoot + +on: + push: + branches: + - '**' + workflow_dispatch: + +jobs: + build-and-test: + runs-on: ubuntu-latest + timeout-minutes: 120 + container: + image: git.romainboullard.com/bigfootdev/linuxbigfootbuilder:main + name: "Sonarqube" + steps: + - name: Install Node.js + run: apt-get update && apt-get install -y nodejs + + - name: Checkout repository + uses: actions/checkout@v6 + with: + fetch-depth: 0 + submodules: recursive + + - name: Generate + run: | + conan install . --deployer=full_deploy --deployer-folder=build --remote=bigfootpackages -pr:h=clang -pr:b=clang --build=missing -s build_type=Debug -o bigfoot/*:build_tests=True -o bigfoot/*:tracy=False -o bigfoot/*:build_tools=True -o bigfoot/*:vulkan=True -o bigfoot/*:build_benchmarks=True + cmake -S . -B ./build/Debug --toolchain ./build/Debug/generators/conan_toolchain.cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_UNITY_BUILD=Debug -G "Ninja" + + - name: Clang-Tidy + run: run-clang-tidy -p ./build/Debug/ >> tidy_result.txt + + - name: SonarQube Scan + uses: SonarSource/sonarqube-scan-action@v7.0.0 + env: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + SONAR_HOST_URL: ${{ secrets.SONAR_HOST }} \ No newline at end of file diff --git a/Bigfoot/Sources/Utils/Include/Utils/Version.hpp b/Bigfoot/Sources/Utils/Include/Utils/Version.hpp index 2751ec9..68e0bfa 100644 --- a/Bigfoot/Sources/Utils/Include/Utils/Version.hpp +++ b/Bigfoot/Sources/Utils/Include/Utils/Version.hpp @@ -92,7 +92,7 @@ class Version return m_combined; } - [[nodiscard]] operator std::string() const; + operator std::string() const; constexpr Version& operator=(const Version& p_version) = default; diff --git a/conanfile.py b/conanfile.py index 5e7c205..ffad6ab 100644 --- a/conanfile.py +++ b/conanfile.py @@ -65,7 +65,7 @@ class Bigfoot(ConanFile): self.requires("eastl/3.27.01@bigfootdev/main", transitive_headers=True) self.requires("unordered_dense/4.8.1@bigfootdev/main", transitive_headers=True) self.requires("mimalloc/3.1.5@bigfootdev/main", transitive_headers=True) - self.requires("stduuid/1.2.3", transitive_headers=True) + self.requires("stduuid/1.2.3@bigfootdev/main", transitive_headers=True) self.requires("sqlite3/3.51.0@bigfootdev/main", transitive_headers=True) self.requires("cli11/2.6.0") self.requires("rapidhash/3.0@bigfootdev/main", transitive_headers=True) diff --git a/sonar-project.properties b/sonar-project.properties new file mode 100644 index 0000000..9120d71 --- /dev/null +++ b/sonar-project.properties @@ -0,0 +1,11 @@ +sonar.projectKey=Bigfoot + +sonar.projectVersion=0.1.0 + +sonar.sourceEncoding=UTF-8 + +sonar.sources=Bigfoot/Sources +sonar.tests=Bigfoot/Tests + +sonar.cxx.file.suffixes=.hpp,.cpp,.h +sonar.cxx.clangtidy.reportPaths=tidy_result.txt \ No newline at end of file