summaryrefslogtreecommitdiffstats
path: root/plugin/auth_gssapi/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/auth_gssapi/CMakeLists.txt')
-rw-r--r--plugin/auth_gssapi/CMakeLists.txt54
1 files changed, 54 insertions, 0 deletions
diff --git a/plugin/auth_gssapi/CMakeLists.txt b/plugin/auth_gssapi/CMakeLists.txt
new file mode 100644
index 00000000..7fc0819a
--- /dev/null
+++ b/plugin/auth_gssapi/CMakeLists.txt
@@ -0,0 +1,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)