mariadb/plugin/handler_socket/CMakeLists.txt
Sergei Golubchik 66fd45afce MDEV-7398 mysqld segfaults on FreeBSD 10.1 i386 when built with clang 3.4
in cmake tests let's treat clang like gcc (same options,
same builtins) in many cases.

* don't check the compiler when
  * testing for -fvisibility=hidden support
  * testing for HAVE_ABI_CXA_DEMANGLE
  * testing for HAVE_GCC_ATOMIC_BUILTINS
  * when removing options with string(replace)
  * when running ${CC} --version (ignore the error instead)
* run ABI checks for clang
* use "canonical" gcc flags for clang
* fix groonga too

Also:

* add cmake detection for gcc __atomic_* builtins. they might be
  supported (__ATOMIC_SEQ_CST is defined), but not for all operand
  sizes. In particular, 64-bit atomic load is problematic on i386
* cache check results for Windows
* remove the test for HAVE_CXXABI_H (HAVE_ABI_CXA_DEMANGLE is
  suffifient)
2015-06-16 23:58:21 +02:00

39 lines
1.1 KiB
CMake

IF(WIN32)
# Handlersocket does not compile on Windows, compiles but does
# not start on FreeBSD.
RETURN()
ENDIF()
#Remove -fno-implicit-templates from compiler flags(handlersocket would not work with it)
STRING(REPLACE "-fno-implicit-templates" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
INCLUDE_DIRECTORIES(libhsclient)
# Handlersocket client library. We do not distribute it,
# it is just compiled in.
SET(LIBHSCLIENT_SOURCES
libhsclient/config.cpp
libhsclient/escape.cpp
libhsclient/fatal.cpp
libhsclient/hstcpcli.cpp
libhsclient/socket.cpp
libhsclient/string_util.cpp
)
ADD_CONVENIENCE_LIBRARY(hsclient ${LIBHSCLIENT_SOURCES})
# Solaris needs to link some network libraries
TARGET_LINK_LIBRARIES(hsclient ${LIBSOCKET} ${LIBNLS} ${LIBBIND})
# handlersocket daemon plugin itself.
SET(HANDLERSOCKET_SOURCES
handlersocket/database.cpp
handlersocket/handlersocket.cpp
handlersocket/hstcpsvr_worker.cpp
handlersocket/hstcpsvr.cpp
)
MYSQL_ADD_PLUGIN(handlersocket
${HANDLERSOCKET_SOURCES}
MODULE_ONLY COMPONENT Server
LINK_LIBRARIES hsclient
)