[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