[all-commits] [llvm/llvm-project] d9e3c8: [libc++][modules] Simplifies C++20 module testing.
Mark de Wever via All-commits
all-commits at lists.llvm.org
Tue Aug 22 11:06:46 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: d9e3c85f5703f42b094e8f91e60e2a1af4fac531
https://github.com/llvm/llvm-project/commit/d9e3c85f5703f42b094e8f91e60e2a1af4fac531
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2023-08-22 (Tue, 22 Aug 2023)
Changed paths:
M libcxx/CMakeLists.txt
M libcxx/cmake/caches/Generic-module-std-cxx23.cmake
M libcxx/include/__config_site.in
M libcxx/test/libcxx/module_std.gen.py
M libcxx/test/libcxx/modules_include.gen.py
A libcxx/test/lit.local.cfg
M libcxx/test/std/modules/std.pass.cpp
M libcxx/utils/libcxx/test/dsl.py
M libcxx/utils/libcxx/test/features.py
M libcxx/utils/libcxx/test/params.py
Log Message:
-----------
[libc++][modules] Simplifies C++20 module testing.
The building of the std module has been moved from `params.py` and
`dsl.py` to a `lit.local.cfg` for the entire test suite. In theory this
change allows testing modules in most configurations, except:
- combined with clang modules
- C++ versions that don't support the std module
Currently only C++23 with all parts enabled works.
C++26 is expected to work properly with CMake 3.27. That versions of CMake
knows how to invoke clang using C++26.
The parts disabled modi of libc++ have not been modularized yet.
It still is the goal that in the future CMake will be able to do the work
done in `lit.local.cfg`. Doing this in CMake would require a more mature
libc++ implementation.
Thanks a lot to @ldionne for giving hints how to enable modules in a
`lit.local.cfg`.
Reviewed By: #libc, ldionne
Differential Revision: https://reviews.llvm.org/D157625
More information about the All-commits
mailing list