[Clang][CMake] use CMakePushCheckState (#138783)

The previous approach of using list(REMOVE ...) would remove *all*
occurences of the given item, not just the one appended above.
This commit is contained in:
jeremyd2019 2025-05-07 12:17:54 -07:00 committed by GitHub
parent 39beeb8eaa
commit 74c0422cfe
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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