From 6bb3380a7f3517794cc6c74798af0a1bfb565618 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Tue, 25 Mar 2025 00:10:04 +0200 Subject: [PATCH] [libcxx] [test] Fix restoring LLVM_DIR and Clang_DIR In 664f345cd53d1f624d94f9889a1c9fff803e3391, a fix was introduced, attempting to restore LLVM_DIR and Clang_DIR after doing find_package(Clang). However, 6775285e7695f2d45cf455f5d31b2c9fa9362d3d added a return if the clangTidy target wasn't found. If this is hit, we don't restore LLVM_DIR and Clang_DIR, which causes strange effects if CMake is rerun a second time. Move the code for restoring LLVM_DIR and Clang_DIR to directly after the find_package calls, to make sure they are restored, regardless of the find_package outcome. --- libcxx/test/tools/clang_tidy_checks/CMakeLists.txt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libcxx/test/tools/clang_tidy_checks/CMakeLists.txt b/libcxx/test/tools/clang_tidy_checks/CMakeLists.txt index f8b523ec0ba93..5797a32974820 100644 --- a/libcxx/test/tools/clang_tidy_checks/CMakeLists.txt +++ b/libcxx/test/tools/clang_tidy_checks/CMakeLists.txt @@ -8,6 +8,10 @@ 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}) + +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) + if(NOT Clang_FOUND) message(STATUS "Clang-tidy tests are disabled since the " "Clang development package is unavailable.") @@ -19,9 +23,6 @@ if(NOT TARGET clangTidy) return() endif() -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) - message(STATUS "Found system-installed LLVM ${LLVM_PACKAGE_VERSION} with headers in ${LLVM_INCLUDE_DIRS}") set(CMAKE_CXX_STANDARD 20)