Repository navigation
Conversation
Contributor
Author
sharadhr
force-pushed
the
ci/cmake-update-macos
branch
from
September 27, 2026 13:33
69314e5 to
1846819
Compare
Contributor
Author
|
@asuessenbach, with this PR, to use CMake 4.5 stable, mark this ready for review. After this, we can then un-draft, review, and consider merging #2667. |
Contributor
|
... that is: this PR is ready for review? |
Contributor
Author
|
Not yet! As mentioned this still uses the nightly CMake version. CMake 4.5 should land in the next couple of weeks and I will update this PR correspondingly. The bulk of the PR will remain unchanged however, so if you want to look at it anyway, there won't be any change to the rest of the code. |
sharadhr
force-pushed
the
ci/cmake-update-macos
branch
3 times, most recently
from
October 19, 2026 08:10
d696a1d to
1491189
Compare
sharadhr
force-pushed
the
ci/cmake-update-macos
branch
from
October 27, 2026 22:23
1491189 to
ddd4463
Compare
- simplify modules flags for macOS; pass in JSON flag in CI and test
Make VULKAN_HPP_BUILD_CXX_MODULE depend solely on CMAKE_CXX_STDLIB_MODULES_JSON, which CMake sets after project() when the generator, compiler, and standard library support `import std`. Projects with an unsupported toolchain (e.g. GCC < 15, Apple Clang, Visual Studio generators) are therefore unaffected. Earlier CMake versions only set it when their experimental `import std` support is enabled. When available, the module is enabled by default, and may be disabled with -D VULKAN_HPP_BUILD_CXX_MODULE=OFF. CI now uses a CMake 4.5 nightly, so the tests no longer pass VULKAN_HPP_BUILD_CXX_MODULE explicitly.
CMake 4.5 reports import std support for toolchains that cannot build the module, such as clang-cl 19 with the MSVC STL, so the module was enabled by default on runners that only test the headers. Set VULKAN_HPP_BUILD_CXX_MODULE explicitly for every configure step.
Setting VULKAN_HPP_BUILD_CXX_MODULE for every configure step broke the macOS module runner: only the tests step selects Homebrew LLVM there, so the generator step tried to build the module with AppleClang, which cannot scan for module dependencies. The generator and plain samples steps do not need the module, so disable it there explicitly rather than relying on detection, which also enables it for toolchains that cannot build it (e.g. clang-cl 19 with the MSVC STL). The tests step enables it only on module runners again.
CMake 4.5.0 has been released, so install it with lukka/get-cmake (`latest`) rather than downloading a pinned nightly.
sharadhr
force-pushed
the
ci/cmake-update-macos
branch
from
November 13, 2026 20:59
ddd4463 to
2fcd443
Compare
sharadhr
marked this pull request as ready for review
November 13, 2026 21:18
Contributor
Author
|
Ready for review, now that CMake 4.5.0 is released. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
With CMake 4.5.0, we finally remove the experimental status of
import std;and ofmodule vulkan;as a whole. Here the documentation, the CI, and the CMake lists code have all been rewritten to support the new functionality.Additionally, the toolchains and CI have all been updated to follow CMake best practices for setting the standard module library path, instead of doing questionable stuff with
sedon CMake's vendored source files.Resolves #2689 and #2747 as well.