diff --git a/libcxx/cmake/caches/Generic-module-std-cxx26.cmake b/libcxx/cmake/caches/Generic-module-std-cxx26.cmake new file mode 100644 --- /dev/null +++ b/libcxx/cmake/caches/Generic-module-std-cxx26.cmake @@ -0,0 +1,3 @@ +set(LIBCXX_ENABLE_STD_MODULES ON CACHE BOOL "") +set(LIBCXX_TEST_PARAMS "enable_modules=std;std=c++26" CACHE STRING "") +set(LIBCXXABI_TEST_PARAMS "std=c++26" CACHE STRING "") diff --git a/libcxx/utils/ci/buildkite-pipeline.yml b/libcxx/utils/ci/buildkite-pipeline.yml --- a/libcxx/utils/ci/buildkite-pipeline.yml +++ b/libcxx/utils/ci/buildkite-pipeline.yml @@ -146,8 +146,8 @@ limit: 2 timeout_in_minutes: 120 - - label: "C++23 Module std" - command: "libcxx/utils/ci/run-buildbot generic-module-std-cxx23" + - label: "C++26 Module std" + command: "libcxx/utils/ci/run-buildbot generic-module-std-cxx26" artifact_paths: - "**/test-results.xml" - "**/*.abilist" @@ -208,6 +208,27 @@ # - wait + - label: "C++23 Module std" + command: "libcxx/utils/ci/run-buildbot generic-module-std-cxx23" + artifact_paths: + - "**/test-results.xml" + - "**/*.abilist" + env: + # Note modules require and absolute path for clang-scan-deps + # https://github.com/llvm/llvm-project/issues/61006 + CC: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang" + CXX: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang++" + CMAKE: "/opt/bin/cmake" + ENABLE_CLANG_TIDY: "On" + agents: + queue: "libcxx-builders" + os: "linux" + retry: + automatic: + - exit_status: -1 # Agent was lost + limit: 2 + timeout_in_minutes: 120 + - label: "C++23" command: "libcxx/utils/ci/run-buildbot generic-cxx23" artifact_paths: diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot --- a/libcxx/utils/ci/run-buildbot +++ b/libcxx/utils/ci/run-buildbot @@ -419,6 +419,12 @@ check-runtimes check-abi-list ;; +generic-module-std-cxx26) + clean + generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-module-std-cxx26.cmake" + check-runtimes + check-abi-list +;; # # Parts removed # diff --git a/libcxx/utils/libcxx/test/dsl.py b/libcxx/utils/libcxx/test/dsl.py --- a/libcxx/utils/libcxx/test/dsl.py +++ b/libcxx/utils/libcxx/test/dsl.py @@ -443,11 +443,7 @@ std = _getSubstitution('%{cxx_std}', config) if std == 'cxx26': - # This fails to work properly. It might be due to - # CMAKE_CXX_STANDARD 26 - # does not work in CMake 3.26, it requires the upcomming CMake 3.27. - # TODO MODULES test whether this is fixed with CMake 3.27. - std = '17' + std = '26' elif std == 'cxx23': std = '23' else: