Fix build with new VS, GCC and XCode and update external dependencies#160
Fix build with new VS, GCC and XCode and update external dependencies#160egorodet wants to merge 32 commits into
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
This PR updates build configuration and external dependencies to keep MethaneKit building on newer toolchains (Visual Studio 2026, newer GCC/Xcode) and refreshes several third-party packages. It also adjusts Vulkan and IDE/build preset configuration to match the updated environment.
Changes:
- Add Visual Studio 2026 CMake presets and update CI workflows to use them.
- Update multiple external dependencies (Vulkan-Headers, Taskflow, Catch2, FMT, etc.) and fix include paths for newer HLSL++ layout.
- Apply targeted build fixes in Vulkan code paths and platform/build scripts (plus version patch bump to 0.8.2).
Reviewed changes
Copilot reviewed 31 out of 35 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| Modules/Platform/AppView/CMakeLists.txt | Fixes CMake conditional structure for Linux branch. |
| Modules/Graphics/RHI/Vulkan/Sources/Methane/Graphics/Vulkan/System.cpp | Adjusts debug callback types/printing with newer Vulkan-Hpp headers. |
| Modules/Graphics/RHI/Vulkan/Sources/Methane/Graphics/Vulkan/RenderContext.cpp | Changes swapchain image acquire timeout behavior (needs follow-up fixes). |
| Modules/Graphics/Primitives/Sources/Methane/Graphics/SkyBox.cpp | Updates HLSL++ include path to new directory layout. |
| Modules/Graphics/Camera/Include/Methane/Graphics/Camera.h | Updates HLSL++ include paths. |
| Modules/Data/Types/Include/Methane/Data/Vector.hpp | Updates HLSL++ include paths. |
| Externals/VulkanHeaders.cmake | Pins Vulkan-Headers to a newer Vulkan SDK tag/version. |
| Externals/TaskFlow.cmake | Updates Taskflow version and removes non-MSVC warning suppression options. |
| Externals/README.md | Updates documented versions for multiple dependencies (one mismatch noted). |
| Externals/MagicEnum.cmake | Updates magic_enum version. |
| Externals/IttApi.cmake | Updates ittapi version. |
| Externals/HLSLpp.cmake | Updates HLSL++ tag/version. |
| Externals/FTXUI.cmake | Updates FTXUI version. |
| Externals/FMT.cmake | Updates fmt tag/version. |
| Externals/DirectXTex.cmake | Updates DirectXTex tag/version. |
| Externals/DirectXShaderCompilerBinary.cmake | Switches DXC binary package pinning to a specific git tag (version commented). |
| Externals/DirectXHeaders.cmake | Updates DirectX-Headers version. |
| Externals/CPM.cmake | Updates CPM.cmake bootstrap version + hash. |
| Externals/CMakeModules.cmake | Updates pinned commit for MethanePowered/CMakeModules. |
| Externals/CLI11.cmake | Updates CLI11 version. |
| Externals/Catch2.cmake | Updates Catch2 version. |
| CMakePresets.json | Adds extensive VS2026 configure/build presets and scan presets. |
| CMakeLists.txt | Bumps Methane patch version to 0.8.2. |
| CMake/MethaneModules.cmake | Adjusts target-arch detection for ARM64 (needs follow-up fix). |
| Build/Windows/Build.bat | Defaults to VS2026 generator and updates CLI option to select VS2022. |
| Build/Unix/Build.sh | Bumps patch version to 0.8.2. |
| Build/README.md | Updates build documentation for VS2026 and Metal Toolchain download. |
| Apps/08-ConsoleCompute/ConsoleApp.cpp | Adds <condition_variable> include used by updated code. |
| .idea/misc.xml | Updates CLion project settings. |
| .idea/MethaneKit.iml | Simplifies/updates IntelliJ module definition. |
| .idea/editor.xml | Adds IDE inspection/code style settings file. |
| .idea/cmake.xml | Updates CLion CMake profiles (now includes machine-specific absolute paths). |
| .github/workflows/ci-sonar-scan.yml | Updates patch version env var and bumps setup-ninja action major version. |
| .github/workflows/ci-codeql-scan.yml | Switches Windows CodeQL preset to VS2026. |
| .github/workflows/ci-build.yml | Switches Windows CI presets to VS2026 and bumps patch version env var. |
Files not reviewed (4)
- .idea/MethaneKit.iml: Generated file
- .idea/cmake.xml: Generated file
- .idea/editor.xml: Generated file
- .idea/misc.xml: Generated file
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| namespace Methane::Graphics::Vulkan | ||
| { | ||
|
|
||
| static constexpr uint32_t g_image_acquire_timeout_ns = 5U * 1000000000U; |
| switch (const vk::Result image_acquire_result = m_vk_device.acquireNextImageKHR(GetNativeSwapchain(), | ||
| g_image_acquire_timeout_ns, | ||
| curr_frame_sync.vk_unique_semaphore.get(), | ||
| curr_frame_sync.vk_unique_fence.get(), | ||
| &next_image_index); |
| elseif(ARM64_V8A OR ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "ARM64") | ||
| set(${OUT_ARCH} "arm64" PARENT_SCOPE) |
| <configuration PROFILE_NAME="Win64 DX Debug" ENABLED="true" GENERATION_DIR="Build/Output/CLion/Win64-DX/Debug" CONFIG_NAME="Debug" GENERATION_OPTIONS="-G Ninja -DMETHANE_APPS_BUILD_ENABLED:BOOL="ON" -DMETHANE_CHECKS_ENABLED:BOOL="ON" -DMETHANE_RHI_PIMPL_INLINE_ENABLED:BOOL="OFF" -DMETHANE_PRECOMPILED_HEADERS_ENABLED:BOOL="OFF" -DMETHANE_CODE_COVERAGE_ENABLED:BOOL="OFF" -DMETHANE_COMMAND_DEBUG_GROUPS_ENABLED:BOOL="ON" -DMETHANE_GFX_VULKAN_ENABLED:BOOL="OFF" -DMETHANE_GPU_INSTRUMENTATION_ENABLED:BOOL="OFF" -DMETHANE_ITT_INSTRUMENTATION_ENABLED:BOOL="OFF" -DMETHANE_ITT_METADATA_ENABLED:BOOL="OFF" -DMETHANE_LOGGING_ENABLED:BOOL="OFF" -DMETHANE_OPEN_IMAGE_IO_ENABLED:BOOL="OFF" -DMETHANE_RUN_TESTS_DURING_BUILD:BOOL="OFF" -DMETHANE_SCOPE_TIMERS_ENABLED:BOOL="OFF" -DMETHANE_SHADERS_CODEVIEW_ENABLED:BOOL="ON" -DMETHANE_TESTS_BUILD_ENABLED:BOOL="ON" -DMETHANE_TRACY_PROFILING_ENABLED:BOOL="OFF" -DMETHANE_TRACY_PROFILING_ON_DEMAND:BOOL="OFF" -DMETHANE_UNITY_BUILD_ENABLED:BOOL="ON" -DCPM_SOURCE_CACHE=d:\Git\MethanePowered\ExternalsCache -DCMAKE_INSTALL_PREFIX=d:\Git\MethanePowered\MethaneKit\Build\Output\CLion\Win64-DX\Debug\Install" BUILD_OPTIONS="--parallel 16" /> | ||
| <configuration PROFILE_NAME="Win64 DX Release" ENABLED="true" GENERATION_DIR="Build/Output/CLion/Win64-DX/Release" CONFIG_NAME="Release" GENERATION_OPTIONS="-G Ninja -DMETHANE_APPS_BUILD_ENABLED:BOOL="ON" -DMETHANE_CHECKS_ENABLED:BOOL="ON" -DMETHANE_RHI_PIMPL_INLINE_ENABLED:BOOL="ON" -DMETHANE_PRECOMPILED_HEADERS_ENABLED:BOOL="ON" -DMETHANE_CODE_COVERAGE_ENABLED:BOOL="OFF" -DMETHANE_COMMAND_DEBUG_GROUPS_ENABLED:BOOL="ON" -DMETHANE_GFX_VULKAN_ENABLED:BOOL="OFF" -DMETHANE_GPU_INSTRUMENTATION_ENABLED:BOOL="OFF" -DMETHANE_ITT_INSTRUMENTATION_ENABLED:BOOL="ON" -DMETHANE_ITT_METADATA_ENABLED:BOOL="OFF" -DMETHANE_LOGGING_ENABLED:BOOL="OFF" -DMETHANE_OPEN_IMAGE_IO_ENABLED:BOOL="OFF" -DMETHANE_RUN_TESTS_DURING_BUILD:BOOL="OFF" -DMETHANE_SCOPE_TIMERS_ENABLED:BOOL="OFF" -DMETHANE_SHADERS_CODEVIEW_ENABLED:BOOL="ON" -DMETHANE_TESTS_BUILD_ENABLED:BOOL="ON" -DMETHANE_TRACY_PROFILING_ENABLED:BOOL="OFF" -DMETHANE_TRACY_PROFILING_ON_DEMAND:BOOL="OFF" -DMETHANE_UNITY_BUILD_ENABLED:BOOL="ON" -DCPM_SOURCE_CACHE=d:\Git\MethanePowered\ExternalsCache -DCMAKE_INSTALL_PREFIX=d:\Git\MethanePowered\MethaneKit\Build\Output\CLion\Win64-DX\Release\Install" BUILD_OPTIONS="--parallel 16" /> | ||
| <configuration PROFILE_NAME="Win64 DX Profile" ENABLED="true" GENERATION_DIR="Build/Output/CLion/Win64-DX/Profile" CONFIG_NAME="RelWithDebInfo" GENERATION_OPTIONS="-G Ninja -DMETHANE_APPS_BUILD_ENABLED:BOOL="ON" -DMETHANE_CHECKS_ENABLED:BOOL="ON" -DMETHANE_PRECOMPILED_HEADERS_ENABLED:BOOL="ON" -DMETHANE_RHI_PIMPL_INLINE_ENABLED:BOOL="ON" -DMETHANE_CODE_COVERAGE_ENABLED:BOOL="OFF" -DMETHANE_COMMAND_DEBUG_GROUPS_ENABLED:BOOL="ON" -DMETHANE_GFX_VULKAN_ENABLED:BOOL="OFF" -DMETHANE_GPU_INSTRUMENTATION_ENABLED:BOOL="ON" -DMETHANE_ITT_INSTRUMENTATION_ENABLED:BOOL="ON" -DMETHANE_ITT_METADATA_ENABLED:BOOL="ON" -DMETHANE_LOGGING_ENABLED:BOOL="OFF" -DMETHANE_OPEN_IMAGE_IO_ENABLED:BOOL="OFF" -DMETHANE_RUN_TESTS_DURING_BUILD:BOOL="OFF" -DMETHANE_SCOPE_TIMERS_ENABLED:BOOL="ON" -DMETHANE_SHADERS_CODEVIEW_ENABLED:BOOL="ON" -DMETHANE_TESTS_BUILD_ENABLED:BOOL="ON" -DMETHANE_TRACY_PROFILING_ENABLED:BOOL="ON" -DMETHANE_TRACY_PROFILING_ON_DEMAND:BOOL="ON" -DMETHANE_UNITY_BUILD_ENABLED:BOOL="ON" -DCPM_SOURCE_CACHE=d:\Git\MethanePowered\ExternalsCache -DCMAKE_INSTALL_PREFIX=d:\Git\MethanePowered\MethaneKit\Build\Output\CLion\Win64-DX\Profile\Install" BUILD_OPTIONS="--parallel 16" /> | ||
| <configuration PROFILE_NAME="Win64 VK Debug" ENABLED="true" GENERATION_DIR="Build/Output/CLion/Win64-VK/Debug" CONFIG_NAME="Debug" GENERATION_OPTIONS="-G Ninja -DMETHANE_APPS_BUILD_ENABLED:BOOL="ON" -DMETHANE_CHECKS_ENABLED:BOOL="ON" -DMETHANE_RHI_PIMPL_INLINE_ENABLED:BOOL="OFF" -DMETHANE_PRECOMPILED_HEADERS_ENABLED:BOOL="OFF" -DMETHANE_CODE_COVERAGE_ENABLED:BOOL="OFF" -DMETHANE_COMMAND_DEBUG_GROUPS_ENABLED:BOOL="ON" -DMETHANE_GFX_VULKAN_ENABLED:BOOL="ON" -DMETHANE_GPU_INSTRUMENTATION_ENABLED:BOOL="OFF" -DMETHANE_ITT_INSTRUMENTATION_ENABLED:BOOL="OFF" -DMETHANE_ITT_METADATA_ENABLED:BOOL="OFF" -DMETHANE_LOGGING_ENABLED:BOOL="OFF" -DMETHANE_OPEN_IMAGE_IO_ENABLED:BOOL="OFF" -DMETHANE_RUN_TESTS_DURING_BUILD:BOOL="OFF" -DMETHANE_SCOPE_TIMERS_ENABLED:BOOL="OFF" -DMETHANE_SHADERS_CODEVIEW_ENABLED:BOOL="ON" -DMETHANE_TESTS_BUILD_ENABLED:BOOL="ON" -DMETHANE_TRACY_PROFILING_ENABLED:BOOL="OFF" -DMETHANE_TRACY_PROFILING_ON_DEMAND:BOOL="OFF" -DMETHANE_UNITY_BUILD_ENABLED:BOOL="ON" -DCPM_SOURCE_CACHE=d:\Git\MethanePowered\ExternalsCache -DCMAKE_INSTALL_PREFIX=d:\Git\MethanePowered\MethaneKit\Build\Output\CLion\Win64-VK\Debug\Install" BUILD_OPTIONS="--parallel 16" /> |
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #160 +/- ##
==========================================
+ Coverage 44.12% 47.44% +3.32%
==========================================
Files 388 393 +5
Lines 17709 19548 +1839
Branches 1034 1884 +850
==========================================
+ Hits 7812 9272 +1460
- Misses 9897 10095 +198
- Partials 0 181 +181
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. |
…test result files passing to sonar scanner
…jC-Arc is enabled
|
|
|



No description provided.