Skip to content

Commit 28206c2

Browse files
authored
Merge pull request ceph#62622 from tchaikov/cmake-disable-deprecated-warning
cmake: disable deprecated warning when building googletest Reviewed-by: Casey Bodley <[email protected]>
2 parents 574e3c9 + 27e9d56 commit 28206c2

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

cmake/modules/CephChecks.cmake

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,20 @@ else(NOT CMAKE_CROSSCOMPILING)
150150
message(STATUS "Assuming unaligned access is supported")
151151
endif(NOT CMAKE_CROSSCOMPILING)
152152

153+
# Clang warns on deprecated specialization used in system
154+
# headers. but libstdc++-12 uses deprecated get_temporary_buffer<>
155+
# to implement templated stable_sort(), which is turn used by
156+
# googletest. see https://github.com/llvm/llvm-project/issues/76515
157+
# Let's detect it, so we can disable -Wdeprecated-declarations when
158+
# building googletest.
159+
cmake_push_check_state(RESET)
160+
set(CMAKE_REQUIRED_FLAGS "-Werror=deprecated-declarations")
161+
check_cxx_source_compiles("
162+
#include <algorithm>
163+
int main() { std::stable_sort((int *)0, (int*)0); }
164+
" COMPILER_IGNORES_DEPRECATED_DECL_IN_SYSTEM_HEADERS)
165+
cmake_pop_check_state()
166+
153167
set(version_script_source "v1 { }; v2 { } v1;")
154168
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/version_script.txt "${version_script_source}")
155169
cmake_push_check_state(RESET)

src/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -767,6 +767,12 @@ if(WITH_TESTS)
767767
find_package(GTest 1.13.0 REQUIRED)
768768
find_package(GMock REQUIRED)
769769
else()
770+
if(NOT COMPILER_IGNORES_DEPRECATED_DECL_IN_SYSTEM_HEADERS)
771+
# See https://github.com/llvm/llvm-project/issues/76515
772+
set_property(DIRECTORY googletest
773+
APPEND "-Wno-deprecated-declarations"
774+
PROPERTY COMPILE_OPTIONS)
775+
endif()
770776
set(INSTALL_GTEST OFF CACHE BOOL "" FORCE)
771777
add_subdirectory(googletest)
772778
add_library(GMock::GMock ALIAS gmock)

0 commit comments

Comments
 (0)