mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-26 17:16:07 +00:00

D144994 adds modules to libc++. In order to test them some newer and additional tools are required. CMake 3.26 This is in combination with Clang 16 or newer makes it possible to conveniently build modules with CMake. Unfortunately CMake 3.26 in our setup has an issue with unused linker flags. This causes libunwind not to compile at all. D145596 contains a quick-fix which is in the module patch. The patch D142957 and followups will contain a proper fix. Therefore install CMake 3.26 in a separate location, allowing to test the module patch in the CI. Ninja 1.11 Building modules requires dynamic rules, which requires this version. This is a CMake 3.26 requirement to use modules. Note that without using modules CMake still accepts older Ninja versions. clang-scan-deps (in the tools package) This tool is used by CMake to get the module dependencies. Note strictly this currently will only be used for Clang 16 and Clang 17. Clang 15 and Clang 14 are not needed. They are installed to keep updating to Clang 18 and later easier. (In the future we might not test modular build with all Clang versions, however at the moment the feature is still in development in both Clang and libc++ so it would be good to detect regressions.) Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D146822