From 7cb30b8af5c8cd64d6a9264bffc526c5a5ee5894 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 7 Jul 2026 07:31:55 +0000 Subject: [PATCH 1/4] fix: restore Linux and macOS CI builds - Include in Jolt Core.h so uint8_t/uint32_t are available on newer Clang/libc++ combinations used by GitHub Actions runners. - Raise tinyobjloader CMake minimum to 3.5 for compatibility with CMake 4. - Install documented Linux build dependencies (clang, libc++-dev, libxrender-dev). - Pass CMAKE_POLICY_VERSION_MINIMUM in build_macos.sh for legacy CMake projects. - Update GitHub Actions checkout action to v4. Co-authored-by: wenlong li --- .github/workflows/build_linux.yml | 21 ++++++++++++-------- .github/workflows/build_macos.yml | 2 +- .github/workflows/build_windows.yml | 4 ++-- build_macos.sh | 2 +- engine/3rdparty/JoltPhysics/Jolt/Core/Core.h | 1 + engine/3rdparty/tinyobjloader/CMakeLists.txt | 2 +- 6 files changed, 19 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build_linux.yml b/.github/workflows/build_linux.yml index d428d68d8..a256322b9 100644 --- a/.github/workflows/build_linux.yml +++ b/.github/workflows/build_linux.yml @@ -13,18 +13,23 @@ jobs: matrix: configuration: [debug, release] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: submodules: 'true' - name: Install dependencies run: | - sudo apt install libxrandr-dev - sudo apt install libxinerama-dev - sudo apt install libxcursor-dev - sudo apt install libxi-dev - sudo apt install libglvnd-dev - sudo apt install libvulkan-dev + sudo apt-get update + sudo apt-get install -y \ + libxrandr-dev \ + libxrender-dev \ + libxinerama-dev \ + libxcursor-dev \ + libxi-dev \ + libglvnd-dev \ + libvulkan-dev \ + clang \ + libc++-dev - name: Build - run: ./build_linux.sh ${{matrix.configuration}} \ No newline at end of file + run: ./build_linux.sh ${{matrix.configuration}} diff --git a/.github/workflows/build_macos.yml b/.github/workflows/build_macos.yml index 042c70a6c..7d20ed8df 100644 --- a/.github/workflows/build_macos.yml +++ b/.github/workflows/build_macos.yml @@ -13,7 +13,7 @@ jobs: matrix: configuration: [debug, release] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: submodules: 'true' diff --git a/.github/workflows/build_windows.yml b/.github/workflows/build_windows.yml index 47eee1060..87f15e98c 100644 --- a/.github/workflows/build_windows.yml +++ b/.github/workflows/build_windows.yml @@ -14,9 +14,9 @@ jobs: matrix: configuration: [debug, release] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: submodules: 'true' - name: Build - run: ./build_windows.bat ${{matrix.configuration}} \ No newline at end of file + run: ./build_windows.bat ${{matrix.configuration}} diff --git a/build_macos.sh b/build_macos.sh index 457748fb5..ea07cf2f8 100755 --- a/build_macos.sh +++ b/build_macos.sh @@ -26,6 +26,6 @@ else exit 1 fi -cmake -S . -B build -G "Xcode" +cmake -S . -B build -G "Xcode" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 cmake --build build --config "${CONFIG}" diff --git a/engine/3rdparty/JoltPhysics/Jolt/Core/Core.h b/engine/3rdparty/JoltPhysics/Jolt/Core/Core.h index 0821bad61..232e3df28 100644 --- a/engine/3rdparty/JoltPhysics/Jolt/Core/Core.h +++ b/engine/3rdparty/JoltPhysics/Jolt/Core/Core.h @@ -217,6 +217,7 @@ JPH_SUPPRESS_WARNINGS_STD_BEGIN #include #include #include +#include JPH_SUPPRESS_WARNINGS_STD_END #if defined(JPH_USE_SSE) #include diff --git a/engine/3rdparty/tinyobjloader/CMakeLists.txt b/engine/3rdparty/tinyobjloader/CMakeLists.txt index f64b42ce4..9c7d69496 100644 --- a/engine/3rdparty/tinyobjloader/CMakeLists.txt +++ b/engine/3rdparty/tinyobjloader/CMakeLists.txt @@ -2,7 +2,7 @@ #This configures the Cmake system with multiple properties, depending #on the platform and configuration it is set to build in. project(tinyobjloader) -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) set(TINYOBJLOADER_SOVERSION 2) set(TINYOBJLOADER_VERSION 2.0.0-rc.9) From d581ab891bfca3ab9ecd9d0a32443464fb79754a Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 7 Jul 2026 07:37:25 +0000 Subject: [PATCH 2/4] fix: address remaining CI failures on newer Clang toolchains - Include in reflection.cpp for std::find_if. - Suppress -Wnontrivial-memcall for Jolt on Clang (Xcode 26+). Co-authored-by: wenlong li --- engine/3rdparty/CMakeLists.txt | 4 ++++ engine/source/runtime/core/meta/reflection/reflection.cpp | 1 + 2 files changed, 5 insertions(+) diff --git a/engine/3rdparty/CMakeLists.txt b/engine/3rdparty/CMakeLists.txt index 1339bb7da..74b7bfa02 100644 --- a/engine/3rdparty/CMakeLists.txt +++ b/engine/3rdparty/CMakeLists.txt @@ -56,6 +56,10 @@ if(NOT TARGET Jolt) if(COMPILER_CHECK_UNQUALIFIED) target_compile_options(Jolt PRIVATE "-Wno-unqualified-std-cast-call") endif() + check_cxx_compiler_flag("-Wno-nontrivial-memcall" COMPILER_CHECK_NONTRIVIAL_MEMCALL) + if(COMPILER_CHECK_NONTRIVIAL_MEMCALL) + target_compile_options(Jolt PRIVATE "-Wno-nontrivial-memcall") + endif() endif() if(ENABLE_PHYSICS_DEBUG_RENDERER) diff --git a/engine/source/runtime/core/meta/reflection/reflection.cpp b/engine/source/runtime/core/meta/reflection/reflection.cpp index 43193f0f3..cfff8474f 100644 --- a/engine/source/runtime/core/meta/reflection/reflection.cpp +++ b/engine/source/runtime/core/meta/reflection/reflection.cpp @@ -1,4 +1,5 @@ #include "reflection.h" +#include #include #include From 423e6fa36e97b1ef4cf2a7242f999c034be19a42 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 7 Jul 2026 07:42:02 +0000 Subject: [PATCH 3/4] fix: macOS CI build configuration and sol2 optional compatibility - Remove stray leading spaces in build_macos.sh Xcode config names. - Patch sol2 optional::emplace for newer libc++/Clang (Xcode 26+). Co-authored-by: wenlong li --- build_macos.sh | 4 ++-- .../sol2-3.3.0/include/sol/optional_implementation.hpp | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/build_macos.sh b/build_macos.sh index ea07cf2f8..8055d7b39 100755 --- a/build_macos.sh +++ b/build_macos.sh @@ -13,9 +13,9 @@ fi if test \( \( -n "$1" \) -a \( "$1" = "debug" \) \);then - CONFIG=" Debug" + CONFIG="Debug" elif test \( \( -n "$1" \) -a \( "$1" = "release" \) \);then - CONFIG=" Release" + CONFIG="Release" else echo "The config \"$1\" is not supported!" echo "" diff --git a/engine/3rdparty/sol2-3.3.0/include/sol/optional_implementation.hpp b/engine/3rdparty/sol2-3.3.0/include/sol/optional_implementation.hpp index 26f41d0c8..e22226d6b 100644 --- a/engine/3rdparty/sol2-3.3.0/include/sol/optional_implementation.hpp +++ b/engine/3rdparty/sol2-3.3.0/include/sol/optional_implementation.hpp @@ -2191,7 +2191,8 @@ namespace sol { static_assert(std::is_constructible::value, "T must be constructible with Args"); *this = nullopt; - this->construct(std::forward(args)...); + new (static_cast(this)) optional(std::in_place, std::forward(args)...); + return **this; } /// Swaps this optional with the other. From a15cc1f526d8dfe5ce824c4ee35d16f7790b4444 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 7 Jul 2026 07:47:15 +0000 Subject: [PATCH 4/4] fix: include cstdio before VMA for snprintf on newer Clang Co-authored-by: wenlong li --- .../runtime/function/render/interface/vulkan/vulkan_vma.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/engine/source/runtime/function/render/interface/vulkan/vulkan_vma.cpp b/engine/source/runtime/function/render/interface/vulkan/vulkan_vma.cpp index 9e00edf45..61752a83e 100644 --- a/engine/source/runtime/function/render/interface/vulkan/vulkan_vma.cpp +++ b/engine/source/runtime/function/render/interface/vulkan/vulkan_vma.cpp @@ -1,4 +1,5 @@ #define VMA_IMPLEMENTATION 1 #define VMA_STATIC_VULKAN_FUNCTIONS 0 #define VMA_DYNAMIC_VULKAN_FUNCTIONS 1 +#include #include "vk_mem_alloc.h" \ No newline at end of file