[libcxx-commits] [libcxx] [libc++][CMake] Removes LIBCXX_ENABLE_CLANG_TIDY. (PR #85262)
Mark de Wever via libcxx-commits
libcxx-commits at lists.llvm.org
Mon Mar 18 06:32:26 PDT 2024
https://github.com/mordante updated https://github.com/llvm/llvm-project/pull/85262
>From 0bd45dd19bb18e390cb2fb75c35ca6bd2559d910 Mon Sep 17 00:00:00 2001
From: Mark de Wever <koraq at xs4all.nl>
Date: Thu, 14 Mar 2024 17:30:32 +0100
Subject: [PATCH] [libc++][CMake] Removes LIBCXX_ENABLE_CLANG_TIDY.
The clang-tidy selection in CMake was refactored in
https://github.com/llvm/llvm-project/pull/81362. During review it was
suggested to remove this CMake option.
---
libcxx/CMakeLists.txt | 5 -----
libcxx/docs/ReleaseNotes/19.rst | 4 +++-
libcxx/test/tools/CMakeLists.txt | 12 ++++--------
.../test/tools/clang_tidy_checks/CMakeLists.txt | 17 ++++++++++++-----
libcxx/utils/ci/buildkite-pipeline.yml | 1 -
libcxx/utils/ci/run-buildbot | 8 --------
6 files changed, 19 insertions(+), 28 deletions(-)
diff --git a/libcxx/CMakeLists.txt b/libcxx/CMakeLists.txt
index e565c47c76687a..043d5a8295c1a6 100644
--- a/libcxx/CMakeLists.txt
+++ b/libcxx/CMakeLists.txt
@@ -123,7 +123,6 @@ option(LIBCXX_ENABLE_VENDOR_AVAILABILITY_ANNOTATIONS
to provide compile-time errors when using features unavailable on some version of
the shared library they shipped should turn this on and see `include/__availability`
for more details." OFF)
-option(LIBCXX_ENABLE_CLANG_TIDY "Whether to compile and run clang-tidy checks" OFF)
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set(LIBCXX_DEFAULT_TEST_CONFIG "llvm-libc++-shared-gcc.cfg.in")
@@ -863,10 +862,6 @@ add_subdirectory(modules)
set(LIBCXX_TEST_DEPS "cxx_experimental")
-if (LIBCXX_ENABLE_CLANG_TIDY)
- list(APPEND LIBCXX_TEST_DEPS cxx-tidy)
-endif()
-
list(APPEND LIBCXX_TEST_DEPS generate-cxx-modules)
if (LIBCXX_INCLUDE_BENCHMARKS)
diff --git a/libcxx/docs/ReleaseNotes/19.rst b/libcxx/docs/ReleaseNotes/19.rst
index 2b62a36ca8e5cd..1a3806a551f657 100644
--- a/libcxx/docs/ReleaseNotes/19.rst
+++ b/libcxx/docs/ReleaseNotes/19.rst
@@ -80,7 +80,6 @@ Deprecations and Removals
libatomic is not available. If you are one such user, please reach out to the libc++ developers so we can collaborate
on a path for supporting atomics properly on freestanding platforms.
-
Upcoming Deprecations and Removals
----------------------------------
@@ -105,3 +104,6 @@ Build System Changes
- The ``LIBCXX_EXECUTOR`` and ``LIBCXXABI_EXECUTOR`` CMake variables have been removed. Please
set ``LIBCXX_TEST_PARAMS`` to ``executor=<...>`` instead.
+
+- The Cmake variable ``LIBCXX_ENABLE_CLANG_TIDY`` has been removed. The build system has been changed
+ to automatically detect the presence of ``clang-tidy`` and the required ``Clang`` libraries.
diff --git a/libcxx/test/tools/CMakeLists.txt b/libcxx/test/tools/CMakeLists.txt
index e30ad6cdd8201f..6d99c53ad46d9f 100644
--- a/libcxx/test/tools/CMakeLists.txt
+++ b/libcxx/test/tools/CMakeLists.txt
@@ -1,12 +1,8 @@
set(LIBCXX_TEST_TOOLS_PATH ${CMAKE_CURRENT_BINARY_DIR} PARENT_SCOPE)
-# TODO: Remove LIBCXX_ENABLE_CLANG_TIDY
-if(LIBCXX_ENABLE_CLANG_TIDY)
- if(NOT CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
- message(STATUS "Clang-tidy can only be used when building libc++ with "
- "a clang compiler.")
- return()
- endif()
- add_subdirectory(clang_tidy_checks)
+if(NOT CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
+ message(STATUS "Clang-tidy tests are disabled due to non-clang based compiler.")
+ return()
endif()
+add_subdirectory(clang_tidy_checks)
diff --git a/libcxx/test/tools/clang_tidy_checks/CMakeLists.txt b/libcxx/test/tools/clang_tidy_checks/CMakeLists.txt
index 74905a0c3ed1c4..2e5d8aa2fce74b 100644
--- a/libcxx/test/tools/clang_tidy_checks/CMakeLists.txt
+++ b/libcxx/test/tools/clang_tidy_checks/CMakeLists.txt
@@ -9,6 +9,17 @@ set(Clang_DIR_SAVE ${Clang_DIR})
# versions must match. Otherwise there likely will be ODR-violations. This had
# led to crashes and incorrect output of the clang-tidy based checks.
find_package(Clang ${CMAKE_CXX_COMPILER_VERSION})
+if(NOT Clang_FOUND)
+ message(STATUS "Clang-tidy tests are disabled since the "
+ "Clang development package is unavailable.")
+ return()
+endif()
+if(NOT TARGET clangTidy)
+ message(STATUS "Clang-tidy tests are disabled since the "
+ "Clang development package has no clangTidy target.")
+ return()
+endif()
+message(STATUS "Clang-tidy tests are enabled.")
set(SOURCES
abi_tag_on_virtual.cpp
@@ -22,11 +33,7 @@ set(SOURCES
libcpp_module.cpp
)
-if(NOT Clang_FOUND)
- message(STATUS "Could not find a suitable version of the Clang development package;
- custom libc++ clang-tidy checks will not be available.")
- return()
-endif()
+list(APPEND LIBCXX_TEST_DEPS cxx-tidy)
set(LLVM_DIR "${LLVM_DIR_SAVE}" CACHE PATH "The directory containing a CMake configuration file for LLVM." FORCE)
set(Clang_DIR "${Clang_DIR_SAVE}" CACHE PATH "The directory containing a CMake configuration file for Clang." FORCE)
diff --git a/libcxx/utils/ci/buildkite-pipeline.yml b/libcxx/utils/ci/buildkite-pipeline.yml
index e42262620d5fb0..0761b40c784d42 100644
--- a/libcxx/utils/ci/buildkite-pipeline.yml
+++ b/libcxx/utils/ci/buildkite-pipeline.yml
@@ -43,7 +43,6 @@ definitions:
environment_definitions:
_common_env: &common_env
- ENABLE_CLANG_TIDY: "On"
LLVM_SYMBOLIZER_PATH: "/usr/bin/llvm-symbolizer-${LLVM_HEAD_VERSION}"
CLANG_CRASH_DIAGNOSTICS_DIR: "crash_diagnostics"
CC: clang-${LLVM_HEAD_VERSION}
diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot
index 2905745355b68e..10b0ed607bce79 100755
--- a/libcxx/utils/ci/run-buildbot
+++ b/libcxx/utils/ci/run-buildbot
@@ -44,9 +44,6 @@ CMAKE The CMake binary to use. This variable is optional.
CLANG_FORMAT The clang-format binary to use when generating the format
ignore list.
-ENABLE_CLANG_TIDY Whether to compile and run clang-tidy checks. This variable
- is optional.
-
EOF
}
@@ -111,10 +108,6 @@ function clean() {
rm -rf "${BUILD_DIR}"
}
-if [ -z "${ENABLE_CLANG_TIDY}" ]; then
- ENABLE_CLANG_TIDY=Off
-fi
-
function generate-cmake-base() {
echo "--- Generating CMake"
${CMAKE} \
@@ -126,7 +119,6 @@ function generate-cmake-base() {
-DLIBCXX_ENABLE_WERROR=YES \
-DLIBCXXABI_ENABLE_WERROR=YES \
-DLIBUNWIND_ENABLE_WERROR=YES \
- -DLIBCXX_ENABLE_CLANG_TIDY=${ENABLE_CLANG_TIDY} \
-DLLVM_LIT_ARGS="-sv --xunit-xml-output test-results.xml --timeout=1500 --time-tests" \
"${@}"
}
More information about the libcxx-commits
mailing list