From 0c380bb4f2f41679ef32db2b9358cf127257d1fb Mon Sep 17 00:00:00 2001 From: Jeremy Drake Date: Tue, 6 May 2025 16:54:24 -0700 Subject: [PATCH] [Clang][CMake] use CMakePushCheckState The previous approach of using list(REMOVE ...) would remove *all* occurences of the given item, not just the one appended above. --- clang/CMakeLists.txt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt index c3f30e2a8e9c0..f12712f55fb96 100644 --- a/clang/CMakeLists.txt +++ b/clang/CMakeLists.txt @@ -183,18 +183,17 @@ check_include_file(sys/resource.h CLANG_HAVE_RLIMITS) # This check requires _GNU_SOURCE on linux check_include_file(dlfcn.h CLANG_HAVE_DLFCN_H) if( CLANG_HAVE_DLFCN_H ) + include(CMakePushCheckState) include(CheckLibraryExists) include(CheckSymbolExists) check_library_exists(dl dlopen "" HAVE_LIBDL) + cmake_push_check_state() if( HAVE_LIBDL ) list(APPEND CMAKE_REQUIRED_LIBRARIES dl) endif() list(APPEND CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE) check_symbol_exists(dladdr dlfcn.h CLANG_HAVE_DLADDR) - list(REMOVE_ITEM CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE) - if( HAVE_LIBDL ) - list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES dl) - endif() + cmake_pop_check_state() endif() set(CLANG_RESOURCE_DIR "" CACHE STRING