From 8e781406e01239ce82f40868fd408156209414b9 Mon Sep 17 00:00:00 2001 From: Romain BOULLARD Date: Wed, 15 Apr 2026 10:55:20 +0200 Subject: [PATCH] SDK update --- .gitea/workflows/ci.yaml | 2 - Linux/BigfootBuilder/Dockerfile | 32 ------------ Linux/BigfootBuilder/conanfile.py | 56 -------------------- Linux/CPPBuilder/Dockerfile | 87 ++++++++++++++++++++++--------- 4 files changed, 61 insertions(+), 116 deletions(-) delete mode 100644 Linux/BigfootBuilder/Dockerfile delete mode 100644 Linux/BigfootBuilder/conanfile.py diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 333093e..626a0df 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -75,8 +75,6 @@ jobs: tags: ${{ env.CPP_BUILDER_TAG }}:${{ env.BRANCH_NAME_LOWER }} build-args: | BASE_BUILDER=${{ env.BASE_BUILDER_TAG }}:${{ env.BRANCH_NAME_LOWER }} - - build-bigfoot-builder: runs-on: ubuntu-latest timeout-minutes: 360 needs: build-cpp-builder diff --git a/Linux/BigfootBuilder/Dockerfile b/Linux/BigfootBuilder/Dockerfile deleted file mode 100644 index 9d43ad2..0000000 --- a/Linux/BigfootBuilder/Dockerfile +++ /dev/null @@ -1,32 +0,0 @@ -ARG BASE_BUILDER - -FROM $BASE_BUILDER - -ARG CONAN_RELEASE_PROFILE -ARG CONAN_RELWITHDEBINFO_PROFILE -ARG CONAN_DEBUG_PROFILE - -RUN apt-get update \ - && apt-get install -y \ - xvfb \ - \ - # LunarG Vulkan repo (modern keyring method) - && wget -qO- https://packages.lunarg.com/lunarg-signing-key-pub.asc \ - | gpg --dearmor -o /usr/share/keyrings/lunarg-archive-keyring.gpg \ - \ - && echo "deb [signed-by=/usr/share/keyrings/lunarg-archive-keyring.gpg] https://packages.lunarg.com/vulkan/1.4.313 noble main" \ - > /etc/apt/sources.list.d/lunarg-vulkan.list \ - \ - && apt-get update \ - && apt-get install -y vulkan-sdk \ - \ - # Cleanup - && rm -rf /var/lib/apt/lists/* - -COPY conanfile.py BigfootDependencies/conanfile.py - -RUN ccache --zero-stats \ - && conan install ./BigfootDependencies --remote=bigfootpackages --build="*" -pr:h=${CONAN_RELEASE_PROFILE} -pr:b=${CONAN_RELEASE_PROFILE} -s build_type=Release \ - && conan install ./BigfootDependencies --remote=bigfootpackages --build="*" -pr:h=${CONAN_RELWITHDEBINFO_PROFILE} -pr:b=${CONAN_RELWITHDEBINFO_PROFILE} -s build_type=RelWithDebInfo \ - && conan install ./BigfootDependencies --remote=bigfootpackages --build="*" -pr:h=${CONAN_DEBUG_PROFILE} -pr:b=${CONAN_DEBUG_PROFILE} -s build_type=Debug \ - && ccache --show-stats \ No newline at end of file diff --git a/Linux/BigfootBuilder/conanfile.py b/Linux/BigfootBuilder/conanfile.py deleted file mode 100644 index 859d6b4..0000000 --- a/Linux/BigfootBuilder/conanfile.py +++ /dev/null @@ -1,56 +0,0 @@ -from conan import ConanFile - -class RequirementsConan(ConanFile): - name = "Requirements" - - def configure(self): - self.options['mimalloc'].override = True - self.options['mimalloc'].shared = True - - self.options['stduuid'].with_cxx20_span = True - self.options['flatbuffers'].header_only = True - - self.options["tracy"].on_demand = True - - self.options["spirv-cross"].exceptions = False - - self.options["benchmark"].enable_exceptions = False - self.options["benchmark"].enable_lto = True - - def requirements(self): - self.requires(f"eastl/3.27.01@bigfootdev/main") - self.requires(f"unordered_dense/4.8.1@bigfootdev/main") - self.requires(f"mimalloc/3.1.5@bigfootdev/main") - self.requires(f"stduuid/1.2.3@bigfootdev/main") - self.requires(f"sqlite3/3.51.0@bigfootdev/main") - self.requires("cli11/2.6.0") - self.requires(f"rapidhash/3.0@bigfootdev/main") - self.requires("effolkronium-random/1.5.0") - self.requires(f"flatbuffers/25.12.19@bigfootdev/main") - - self.requires("quill/11.0.2") - self.requires("tracy/0.12.2") - self.requires("cpptrace/1.0.4") - - self.requires("glm/1.0.1") - self.requires(f"lodepng/cci.20250727@bigfootdev/main") - self.requires("imgui/1.92.5-docking") - - self.requires("glfw/3.4") - - self.requires("vulkan-headers/1.4.313.0") - self.requires(f"vulkan-validationlayers/1.4.313.0@bigfootdev/main") - self.requires("spirv-cross/1.4.313.0") - self.requires(f"vulkan-memory-allocator/3.3.0@bigfootdev/main") - - self.requires("gtest/1.17.0") - self.requires(f"pixelmatch-cpp17/1.0.3@bigfootdev/main") - - self.requires("stb/cci.20240531", override=True) - self.requires(f"shaderc/2025.3@bigfootdev/main") - self.requires("assimp/6.0.2") - self.requires(f"meshoptimizer/1.0@bigfootdev/main") - self.requires("libsquish/1.15") - - self.requires("benchmark/1.9.4") - diff --git a/Linux/CPPBuilder/Dockerfile b/Linux/CPPBuilder/Dockerfile index 496d910..a79000d 100644 --- a/Linux/CPPBuilder/Dockerfile +++ b/Linux/CPPBuilder/Dockerfile @@ -4,34 +4,63 @@ ARG BASE_BUILDER # Base image FROM $BASE_BUILDER -# Environment variables for ccache and pipx -ENV CCACHE_DIR=/ccache \ - CCACHE_COMPRESS=1 \ - CCACHE_MAXSIZE=10G \ - CCACHE_COMPILERCHECK=content \ - PATH=/root/.local/bin:$PATH - -# Install system dependencies, clang, and pipx +# Install system dependencies RUN apt-get update && apt-get install -y \ + # Build tools build-essential \ - cppcheck \ - ccache \ + gcc \ + g++ \ cmake \ ninja-build \ - git \ + bison \ pkg-config \ + git \ + ccache \ + cppcheck \ wget \ lsb-release \ software-properties-common \ pipx \ - && rm -rf /var/lib/apt/lists/* \ - \ - # Install LLVM 21 - && wget https://apt.llvm.org/llvm.sh -O /tmp/llvm.sh \ + python-is-python3 \ + python3-jsonschema \ + ocaml-core \ + \ + # Libraries + libglm-dev \ + libpng-dev \ + libxml2-dev \ + liblz4-dev \ + libzstd-dev \ + libpciaccess0 \ + \ + # X11 / XCB + libx11-dev \ + libx11-xcb-dev \ + libxcb-dri3-0 \ + libxcb-dri3-dev \ + libxcb-present0 \ + libxcb-keysyms1-dev \ + libxcb-randr0-dev \ + libxcb-ewmh-dev \ + \ + # Wayland + libwayland-dev \ + wayland-protocols \ + \ + # Misc display + libxrandr-dev \ + \ + # Qt + qtbase5-dev \ + qt6-base-dev \ + && rm -rf /var/lib/apt/lists/* + +ENV PATH="/root/.local/bin:${PATH}" + +# Install LLVM 20 and symlink tools +RUN wget https://apt.llvm.org/llvm.sh -O /tmp/llvm.sh \ && chmod +x /tmp/llvm.sh \ && /tmp/llvm.sh 20 all \ - \ - # Symlinks for clang 21 tools && ln -sf /usr/bin/clang-20 /usr/bin/clang \ && ln -sf /usr/bin/clang++-20 /usr/bin/clang++ \ && ln -sf /usr/bin/llvm-profdata-20 /usr/bin/llvm-profdata \ @@ -42,9 +71,7 @@ RUN apt-get update && apt-get install -y \ && ln -sf /usr/bin/llvm-ar-20 /usr/bin/llvm-ar \ && ln -sf /usr/bin/llvm-nm-20 /usr/bin/llvm-nm \ && ln -sf /usr/bin/llvm-ranlib-20 /usr/bin/llvm-ranlib \ - \ - # Reset ccache stats - && ccache --zero-stats + && rm -f /tmp/llvm.sh RUN VERSION=1.2.0; \ curl -sSL "https://github.com/facebook/infer/releases/download/v$VERSION/infer-linux-x86_64-v$VERSION.tar.xz" \ @@ -52,8 +79,7 @@ RUN VERSION=1.2.0; \ ln -s "/opt/infer-linux-x86_64-v$VERSION/bin/infer" /usr/bin/infer # Install pipx and Conan -RUN pipx ensurepath \ - && pipx install conan \ +RUN pipx install conan \ && pipx install gcovr # Build and install mold @@ -61,8 +87,6 @@ RUN git clone --branch v2.40.4 https://github.com/rui314/mold.git /tmp/mold \ && cd /tmp/mold \ && cmake . -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_COMPILER=clang++ \ - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ - -DCMAKE_C_COMPILER_LAUNCHER=ccache \ -B build \ && cmake --build build -j$(nproc) \ && cmake --install build \ @@ -73,5 +97,16 @@ RUN conan config install https://git.romainboullard.com/BigfootDev/ConanProfiles && conan remote add bigfootpackages https://conan.romainboullard.com/artifactory/api/conan/BigfootPackages \ && conan remote disable conancenter -# Show ccache stats (optional, for debugging) -RUN ccache --show-stats \ No newline at end of file +# Install Vulkan SDK 1.4.341.0 +RUN wget -q https://sdk.lunarg.com/sdk/download/1.4.341.0/linux/vulkansdk-linux-x86_64-1.4.341.0.tar.xz \ + -O /tmp/vulkansdk.tar.xz \ + && mkdir -p /opt/vulkan \ + && tar -xf /tmp/vulkansdk.tar.xz -C /opt/vulkan \ + && rm /tmp/vulkansdk.tar.xz + +ENV VULKAN_SDK=/opt/vulkan/1.4.341.0/x86_64 +ENV PATH="${VULKAN_SDK}/bin:${PATH}" +ENV LD_LIBRARY_PATH="${VULKAN_SDK}/lib:${LD_LIBRARY_PATH}" +ENV VK_LAYER_PATH="${VULKAN_SDK}/share/vulkan/explicit_layer.d" +ENV VK_ADD_LAYER_PATH="${VULKAN_SDK}/share/vulkan/explicit_layer.d" +ENV PKG_CONFIG_PATH="${VULKAN_SDK}/lib/pkgconfig/:${PKG_CONFIG_PATH}" \ No newline at end of file