2 # Once done this will define
4 # KRB5_CONFIG - Path to krb5-config
5 # GSSAPI_ROOT_DIR - Set this variable to the root installation of GSSAPI
8 # GSSAPI_FLAVOR_MIT - set to TURE if MIT Kerberos has been found
9 # GSSAPI_FLAVOR_HEIMDAL - set to TRUE if Heimdal Kerberos has been found
10 # GSSAPI_FOUND - system has GSSAPI
11 # GSSAPI_INCLUDE_DIR - the GSSAPI include directory
12 # GSSAPI_LIBRARIES - Link these to use GSSAPI
13 # GSSAPI_DEFINITIONS - Compiler switches required for using GSSAPI
15 #=============================================================================
16 # Copyright (c) 2013 Andreas Schneider <asn@cryptomilk.org>
18 # Distributed under the OSI-approved BSD License (the "License");
19 # see accompanying file Copyright.txt for details.
21 # This software is distributed WITHOUT ANY WARRANTY; without even the
22 # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
23 # See the License for more information.
24 #=============================================================================
27 find_path(GSSAPI_ROOT_DIR
30 include/gssapi/gssapi.h
36 mark_as_advanced(GSSAPI_ROOT_DIR)
39 find_program(KRB5_CONFIG
43 ${GSSAPI_ROOT_DIR}/bin
45 mark_as_advanced(KRB5_CONFIG)
48 # Check if we have MIT KRB5
51 ${KRB5_CONFIG} --vendor
55 _GSSAPI_VENDOR_STRING)
57 if (_GSSAPI_VENDOR_STRING MATCHES ".*Massachusetts.*")
58 set(GSSAPI_FLAVOR_MIT TRUE)
62 ${KRB5_CONFIG} --libs gssapi
68 if (_GSSAPI_LIBS_STRING MATCHES ".*roken.*")
69 set(GSSAPI_FLAVOR_HEIMDAL TRUE)
76 ${KRB5_CONFIG} --cflags gssapi
78 _GSSAPI_INCLUDE_RESULT
80 _GSSAPI_INCLUDE_STRING)
81 string(REGEX REPLACE "(\r?\n)+$" "" _GSSAPI_INCLUDE_STRING "${_GSSAPI_INCLUDE_STRING}")
82 string(REGEX REPLACE " *-I" "" _GSSAPI_INCLUDEDIR "${_GSSAPI_INCLUDE_STRING}")
85 if (NOT GSSAPI_FLAVOR_MIT AND NOT GSSAPI_FLAVOR_HEIMDAL)
87 find_package(PkgConfig)
89 pkg_check_modules(_GSSAPI heimdal-gssapi)
90 endif (PKG_CONFIG_FOUND)
93 set(GSSAPI_FLAVOR_HEIMDAL TRUE)
95 find_path(_GSSAPI_ROKEN
99 ${GSSAPI_ROOT_DIR}/include
100 ${_GSSAPI_INCLUDEDIR})
102 set(GSSAPI_FLAVOR_HEIMDAL TRUE)
108 find_path(GSSAPI_INCLUDE_DIR
113 ${GSSAPI_ROOT_DIR}/include
114 ${_GSSAPI_INCLUDEDIR}
117 if (GSSAPI_FLAVOR_MIT)
118 find_library(GSSAPI_LIBRARY
122 ${GSSAPI_ROOT_DIR}/lib
126 find_library(KRB5_LIBRARY
130 ${GSSAPI_ROOT_DIR}/lib
134 find_library(K5CRYPTO_LIBRARY
138 ${GSSAPI_ROOT_DIR}/lib
142 find_library(COM_ERR_LIBRARY
146 ${GSSAPI_ROOT_DIR}/lib
155 endif (GSSAPI_LIBRARY)
164 if (K5CRYPTO_LIBRARY)
169 endif (K5CRYPTO_LIBRARY)
176 endif (COM_ERR_LIBRARY)
177 endif (GSSAPI_FLAVOR_MIT)
179 if (GSSAPI_FLAVOR_HEIMDAL)
180 find_library(GSSAPI_LIBRARY
184 ${GSSAPI_ROOT_DIR}/lib
188 find_library(KRB5_LIBRARY
192 ${GSSAPI_ROOT_DIR}/lib
196 find_library(HCRYPTO_LIBRARY
200 ${GSSAPI_ROOT_DIR}/lib
204 find_library(COM_ERR_LIBRARY
208 ${GSSAPI_ROOT_DIR}/lib
212 find_library(HEIMNTLM_LIBRARY
216 ${GSSAPI_ROOT_DIR}/lib
220 find_library(HX509_LIBRARY
224 ${GSSAPI_ROOT_DIR}/lib
228 find_library(ASN1_LIBRARY
232 ${GSSAPI_ROOT_DIR}/lib
236 find_library(WIND_LIBRARY
240 ${GSSAPI_ROOT_DIR}/lib
244 find_library(ROKEN_LIBRARY
248 ${GSSAPI_ROOT_DIR}/lib
257 endif (GSSAPI_LIBRARY)
271 endif (HCRYPTO_LIBRARY)
278 endif (COM_ERR_LIBRARY)
280 if (HEIMNTLM_LIBRARY)
285 endif (HEIMNTLM_LIBRARY)
292 endif (HX509_LIBRARY)
313 endif (ROKEN_LIBRARY)
314 endif (GSSAPI_FLAVOR_HEIMDAL)
316 include(FindPackageHandleStandardArgs)
317 find_package_handle_standard_args(GSSAPI DEFAULT_MSG GSSAPI_LIBRARIES GSSAPI_INCLUDE_DIR)
319 if (GSSAPI_INCLUDE_DIRS AND GSSAPI_LIBRARIES)
320 set(GSSAPI_FOUND TRUE)
321 endif (GSSAPI_INCLUDE_DIRS AND GSSAPI_LIBRARIES)
323 # show the GSSAPI_INCLUDE_DIRS and GSSAPI_LIBRARIES variables only in the advanced view
324 mark_as_advanced(GSSAPI_INCLUDE_DIRS GSSAPI_LIBRARIES)