Skip to content

Fix build with new VS, GCC and XCode and update external dependencies#160

Draft
egorodet wants to merge 32 commits into
masterfrom
bugfix/fix-build-with-new-compilers
Draft

Fix build with new VS, GCC and XCode and update external dependencies#160
egorodet wants to merge 32 commits into
masterfrom
bugfix/fix-build-with-new-compilers

Conversation

@egorodet

Copy link
Copy Markdown
Member

No description provided.

@egorodet egorodet requested a review from Copilot June 27, 2026 20:01
@coderabbitai

coderabbitai Bot commented Jun 27, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 4c912358-46db-4643-8cfb-b765bfa5c480

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch bugfix/fix-build-with-new-compilers

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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;
Comment on lines +268 to 272
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);
Comment on lines +29 to 30
elseif(ARM64_V8A OR ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "ARM64")
set(${OUT_ARCH} "arm64" PARENT_SCOPE)
Comment thread Externals/README.md
Comment thread .idea/cmake.xml
Comment on lines +5 to +8
<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=&quot;ON&quot; -DMETHANE_CHECKS_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_RHI_PIMPL_INLINE_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_PRECOMPILED_HEADERS_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_CODE_COVERAGE_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_COMMAND_DEBUG_GROUPS_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_GFX_VULKAN_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_GPU_INSTRUMENTATION_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_ITT_INSTRUMENTATION_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_ITT_METADATA_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_LOGGING_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_OPEN_IMAGE_IO_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_RUN_TESTS_DURING_BUILD:BOOL=&quot;OFF&quot; -DMETHANE_SCOPE_TIMERS_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_SHADERS_CODEVIEW_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_TESTS_BUILD_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_TRACY_PROFILING_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_TRACY_PROFILING_ON_DEMAND:BOOL=&quot;OFF&quot; -DMETHANE_UNITY_BUILD_ENABLED:BOOL=&quot;ON&quot; -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=&quot;ON&quot; -DMETHANE_CHECKS_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_RHI_PIMPL_INLINE_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_PRECOMPILED_HEADERS_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_CODE_COVERAGE_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_COMMAND_DEBUG_GROUPS_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_GFX_VULKAN_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_GPU_INSTRUMENTATION_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_ITT_INSTRUMENTATION_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_ITT_METADATA_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_LOGGING_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_OPEN_IMAGE_IO_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_RUN_TESTS_DURING_BUILD:BOOL=&quot;OFF&quot; -DMETHANE_SCOPE_TIMERS_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_SHADERS_CODEVIEW_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_TESTS_BUILD_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_TRACY_PROFILING_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_TRACY_PROFILING_ON_DEMAND:BOOL=&quot;OFF&quot; -DMETHANE_UNITY_BUILD_ENABLED:BOOL=&quot;ON&quot; -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=&quot;ON&quot; -DMETHANE_CHECKS_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_PRECOMPILED_HEADERS_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_RHI_PIMPL_INLINE_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_CODE_COVERAGE_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_COMMAND_DEBUG_GROUPS_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_GFX_VULKAN_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_GPU_INSTRUMENTATION_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_ITT_INSTRUMENTATION_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_ITT_METADATA_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_LOGGING_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_OPEN_IMAGE_IO_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_RUN_TESTS_DURING_BUILD:BOOL=&quot;OFF&quot; -DMETHANE_SCOPE_TIMERS_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_SHADERS_CODEVIEW_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_TESTS_BUILD_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_TRACY_PROFILING_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_TRACY_PROFILING_ON_DEMAND:BOOL=&quot;ON&quot; -DMETHANE_UNITY_BUILD_ENABLED:BOOL=&quot;ON&quot; -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=&quot;ON&quot; -DMETHANE_CHECKS_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_RHI_PIMPL_INLINE_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_PRECOMPILED_HEADERS_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_CODE_COVERAGE_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_COMMAND_DEBUG_GROUPS_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_GFX_VULKAN_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_GPU_INSTRUMENTATION_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_ITT_INSTRUMENTATION_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_ITT_METADATA_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_LOGGING_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_OPEN_IMAGE_IO_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_RUN_TESTS_DURING_BUILD:BOOL=&quot;OFF&quot; -DMETHANE_SCOPE_TIMERS_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_SHADERS_CODEVIEW_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_TESTS_BUILD_ENABLED:BOOL=&quot;ON&quot; -DMETHANE_TRACY_PROFILING_ENABLED:BOOL=&quot;OFF&quot; -DMETHANE_TRACY_PROFILING_ON_DEMAND:BOOL=&quot;OFF&quot; -DMETHANE_UNITY_BUILD_ENABLED:BOOL=&quot;ON&quot; -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" />
@github-actions

github-actions Bot commented Jun 27, 2026

Copy link
Copy Markdown

Win64_VK_Release Test Results

     9 files  +     9       9 suites  +9   3s ⏱️ +3s
 3 901 tests + 3 901   3 901 ✅ + 3 901  0 💤 ±0  0 ❌ ±0 
10 755 runs  +10 755  10 755 ✅ +10 755  0 💤 ±0  0 ❌ ±0 

Results for commit dc14e3b. ± Comparison against base commit 693badc.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Jun 27, 2026

Copy link
Copy Markdown

Win32_VK_Release Test Results

     9 files  +     9       9 suites  +9   3s ⏱️ +3s
 3 901 tests + 3 901   3 901 ✅ + 3 901  0 💤 ±0  0 ❌ ±0 
10 755 runs  +10 755  10 755 ✅ +10 755  0 💤 ±0  0 ❌ ±0 

Results for commit dc14e3b. ± Comparison against base commit 693badc.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Jun 27, 2026

Copy link
Copy Markdown

MacOS_MTL_Release Test Results

     9 files  ±0       9 suites  ±0   7s ⏱️ ±0s
 3 901 tests ±0   3 901 ✅ ±0  0 💤 ±0  0 ❌ ±0 
10 755 runs  ±0  10 755 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit dc14e3b. ± Comparison against base commit 693badc.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Jun 27, 2026

Copy link
Copy Markdown

Ubuntu_VK_Release Test Results

     9 files  ±0       9 suites  ±0   12s ⏱️ -1s
 3 878 tests ±0   3 878 ✅ ±0  0 💤 ±0  0 ❌ ±0 
11 091 runs   - 1  11 091 ✅  - 1  0 💤 ±0  0 ❌ ±0 

Results for commit dc14e3b. ± Comparison against base commit 693badc.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Jun 27, 2026

Copy link
Copy Markdown

MacOS_VK_Release Test Results

     9 files  ±0       9 suites  ±0   7s ⏱️ ±0s
 3 901 tests ±0   3 901 ✅ ±0  0 💤 ±0  0 ❌ ±0 
10 755 runs  ±0  10 755 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit dc14e3b. ± Comparison against base commit 693badc.

♻️ This comment has been updated with latest results.

@github-advanced-security

Copy link
Copy Markdown

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:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

@github-actions

github-actions Bot commented Jun 28, 2026

Copy link
Copy Markdown

Win64_DX_Release Test Results

     9 files  +     9       9 suites  +9   2s ⏱️ +2s
 3 901 tests + 3 901   3 901 ✅ + 3 901  0 💤 ±0  0 ❌ ±0 
10 755 runs  +10 755  10 755 ✅ +10 755  0 💤 ±0  0 ❌ ±0 

Results for commit dc14e3b. ± Comparison against base commit 693badc.

♻️ This comment has been updated with latest results.

@codecov

codecov Bot commented Jun 28, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 10 lines in your changes missing coverage. Please review.
✅ Project coverage is 47.44%. Comparing base (693badc) to head (dc14e3b).
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
.../Sources/Methane/Graphics/Vulkan/RenderContext.cpp 0.00% 7 Missing ⚠️
.../Vulkan/Sources/Methane/Graphics/Vulkan/System.cpp 0.00% 3 Missing ⚠️
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     
Flag Coverage Δ
Linux 37.72% <0.00%> (-<0.01%) ⬇️
Windows 79.28% <ø> (-0.02%) ⬇️
macOS 75.49% <ø> (?)
unittests 47.44% <0.00%> (+3.32%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

@github-actions

github-actions Bot commented Jun 28, 2026

Copy link
Copy Markdown

Win64_DX_SonarScan Test Results

     9 files  ±0       9 suites  ±0   7s ⏱️ -1s
 3 901 tests ±0   3 901 ✅ ±0  0 💤 ±0  0 ❌ ±0 
10 755 runs  ±0  10 755 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit dc14e3b. ± Comparison against base commit 693badc.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Jun 28, 2026

Copy link
Copy Markdown

Win32_DX_Release Test Results

     9 files  +     9       9 suites  +9   3s ⏱️ +3s
 3 901 tests + 3 901   3 901 ✅ + 3 901  0 💤 ±0  0 ❌ ±0 
10 755 runs  +10 755  10 755 ✅ +10 755  0 💤 ±0  0 ❌ ±0 

Results for commit dc14e3b. ± Comparison against base commit 693badc.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Jun 28, 2026

Copy link
Copy Markdown

MacOS_MTL_SonarScan Test Results

     9 files  ±0       9 suites  ±0   6s ⏱️ -1s
 3 901 tests ±0   3 901 ✅ ±0  0 💤 ±0  0 ❌ ±0 
10 755 runs  ±0  10 755 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit dc14e3b. ± Comparison against base commit 693badc.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Jun 29, 2026

Copy link
Copy Markdown

Ubuntu_VK_SonarScan Test Results

     9 files  ±0       9 suites  ±0   2s ⏱️ ±0s
 3 877 tests ±0   3 877 ✅ ±0  0 💤 ±0  0 ❌ ±0 
10 731 runs  ±0  10 731 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit dc14e3b. ± Comparison against base commit 693badc.

♻️ This comment has been updated with latest results.

@sonarqubecloud

Copy link
Copy Markdown

@sonarqubecloud

Copy link
Copy Markdown

@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants