if(NOT APPLE)
CHECK_FUNCTION_EXISTS(fdatasync HAVE_FDATASYNC)
endif()
-CHECK_FUNCTION_EXISTS(strerror_r HAVE_STRERROR_R)
+CHECK_FUNCTION_EXISTS(strerror_r HAVE_Strerror_R)
CHECK_FUNCTION_EXISTS(name_to_handle_at HAVE_NAME_TO_HANDLE_AT)
CHECK_FUNCTION_EXISTS(pipe2 HAVE_PIPE2)
set(CMAKE_REQUIRED_LIBRARIES pthread)
find_package(Threads REQUIRED)
+execute_process(
+ COMMAND ./librarytest.sh ${CMAKE_CXX_COMPILER} ${CMAKE_CXX_FLAGS}
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ OUTPUT_VARIABLE CXX_STDLIB
+ )
+
+if(CXX_STDLIB STREQUAL "libstdc++" OR CXX_STDLIB STREQUAL "libc++")
+ message(STATUS "We are using ${CXX_STDLIB}.")
+else()
+ message(FATAL_ERROR
+ "Unable to determine C++ standard library, got ${CXX_STDLIB}.")
+endif()
+
option(WITH_SELINUX "build SELinux policy" OFF)
if(WITH_SELINUX)
find_file(SELINUX_MAKEFILE selinux/devel/Makefile
--- /dev/null
+#!/bin/sh
+
+CXX=$1
+
+shift
+
+echo "#include <utility>
+#if defined(_LIBCPP_VERSION)
+#define MYRESULT libc++
+#elif defined(__GLIBCXX__)
+#define MYRESULT libstdc++
+#else
+#define MYRESULT unknown
+#endif
+
+HelloFriendsTheAnsWerIs MYRESULT" | ${CXX} -E -xc++ $* - | \
+ grep "HelloFriendsTheAnsWerIs" | cut -f 2 -d ' ' | tr -d '\n'
)
target_link_libraries(ceph_test_admin_socket_output
ceph-common)
-if(CMAKE_CXX_COMPILER_ID STREQUAL GNU)
+if(CXX_STDLIB STREQUAL "libstdc++")
target_link_libraries(ceph_test_admin_socket_output
-lstdc++fs)
-elseif(CMAKE_CXX_COMPILER_ID STREQUAL Clang)
+elseif(CXX_STDLIB STREQUAL "libc++")
target_link_libraries(ceph_test_admin_socket_output
-lc++experimental)
endif()