summaryrefslogtreecommitdiff
path: root/plugin/auth_gssapi/CMakeLists.txt
blob: 7fc0819a3b3bdee5da298c81925e24df723d2ce5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
IF (WIN32)
 SET(USE_SSPI 1)
ENDIF()

IF(USE_SSPI)
  SET(GSSAPI_LIBS secur32)
  ADD_DEFINITIONS(-DPLUGIN_SSPI)
  SET(GSSAPI_CLIENT sspi_client.cc)
  SET(GSSAPI_SERVER sspi_server.cc)
  SET(GSSAPI_ERRMSG sspi_errmsg.cc)
ELSE()
 SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
 FIND_PACKAGE(GSSAPI)
 SET_PACKAGE_PROPERTIES(GSSAPI PROPERTIES TYPE OPTIONAL)
 IF(GSSAPI_FOUND)
   INCLUDE_DIRECTORIES(${GSSAPI_INCS})
   ADD_DEFINITIONS(-DPLUGIN_GSSAPI)
   SET(GSSAPI_CLIENT gssapi_client.cc)
   SET(GSSAPI_SERVER gssapi_server.cc)
   SET(GSSAPI_ERRMSG gssapi_errmsg.cc)

   IF(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
     SET_SOURCE_FILES_PROPERTIES(
       ${GSSAPI_CLIENT} ${GSSAPI_SERVER} ${GSSAPI_ERRMSG}
       PROPERTY COMPILE_FLAGS "-Wno-deprecated-declarations")
   ENDIF()
   SET(CMAKE_REQUIRED_INCLUDES ${GSSAPI_INCS})
   SET(CMAKE_REQUIRED_LIBRARIES ${GSSAPI_LIBS})
   SET(CMAKE_REQUIRED_FLAGS "-Werror -Wall")
   INCLUDE(CheckCXXSymbolExists)
   CHECK_CXX_SYMBOL_EXISTS(krb5_xfree "krb5.h" HAVE_KRB5_XFREE)
   IF(HAVE_KRB5_XFREE)
     ADD_DEFINITIONS(-DHAVE_KRB5_XFREE=1)
   ENDIF()

 ELSE()
   # Can't build plugin
   RETURN()
 ENDIF()
ENDIF ()


MYSQL_ADD_PLUGIN(auth_gssapi server_plugin.cc ${GSSAPI_SERVER} ${GSSAPI_ERRMSG}
                 LINK_LIBRARIES ${GSSAPI_LIBS} 
                 COMPONENT gssapi-server
                 MODULE_ONLY)

# disabled in favor of libmariadb/plugins/auth/auth_gssapi_client.c
#
#MYSQL_ADD_PLUGIN(auth_gssapi_client client_plugin.cc ${GSSAPI_CLIENT} ${GSSAPI_ERRMSG}
#                 LINK_LIBRARIES ${GSSAPI_LIBS COMPONENT ClientPlugins}
#                 COMPONENT gssapi-client
#                 CLIENT
#                 MODULE_ONLY)