aboutsummaryrefslogtreecommitdiff
path: root/modules/FindGSSAPI.cmake
blob: f574602e07cdf2cbd395a5226bfbb93da2b58084 (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
# - Try to detect the GSSAPI support
# Once done this will define
#
#  GSSAPI_FOUND - system supports GSSAPI
#  GSSAPI_INCS - the CSSAPI include directory
#  GSSAPI_LIBS - the libraries needed to use GSSAPI
#  GSSAPI_RPATH - the rpath for GSSAPI

# TODO: RPATH

FIND_PROGRAM(KRB5_CONFIG NAMES krb5-config PATHS
   /usr/bin
   /usr/local/bin
   /opt/local/bin
)

#reset vars
set(GSSAPI_INCS)
set(GSSAPI_LIBS)
set(GSSAPI_FLAVOR)

IF(KRB5_CONFIG)

  EXEC_PROGRAM(${KRB5_CONFIG} ARGS --libs gssapi RETURN_VALUE _return_VALUE OUTPUT_VARIABLE GSSAPI_LIBS)

  EXEC_PROGRAM(${KRB5_CONFIG} ARGS --cflags gssapi RETURN_VALUE _return_VALUE OUTPUT_VARIABLE GSSAPI_INCS)
  STRING(REGEX REPLACE "(\r?\n)+$" "" GSSAPI_INCS "${GSSAPI_INCS}")

  EXEC_PROGRAM(${KRB5_CONFIG} ARGS --vendor RETURN_VALUE _return_VALUE OUTPUT_VARIABLE gssapi_flavor_tmp)
  set(GSSAPI_FLAVOR_MIT)
  IF(gssapi_flavor_tmp MATCHES ".*Massachusetts.*")
    SET(GSSAPI_FLAVOR "MIT")
  ELSE(gssapi_flavor_tmp MATCHES ".*Massachusetts.*")
    SET(GSSAPI_FLAVOR "HEIMDAL")
  ENDIF(gssapi_flavor_tmp MATCHES ".*Massachusetts.*")

  IF(GSSAPI_LIBS) # GSSAPI_INCS can be also empty, so don't rely on that
    SET(GSSAPI_FOUND TRUE)
    message(STATUS "Found GSSAPI: ${GSSAPI_LIBS}")
  ENDIF(GSSAPI_LIBS)

#ELSE(KRB5_CONFIG)

# TODO...

ENDIF(KRB5_CONFIG)

MARK_AS_ADVANCED(GSSAPI_INCS GSSAPI_LIBS GSSAPI_FLAVOR)