]> git.proxmox.com Git - libgit2.git/blob - cmake/Modules/SelectGSSAPI.cmake
New upstream version 1.0.0+dfsg.1
[libgit2.git] / cmake / Modules / SelectGSSAPI.cmake
1 # Select the backend to use
2
3 # We try to find any packages our backends might use
4
5 INCLUDE(SanitizeBool)
6
7 FIND_PACKAGE(GSSAPI)
8 IF (CMAKE_SYSTEM_NAME MATCHES "Darwin")
9 INCLUDE(FindGSSFramework)
10 ENDIF()
11
12 # Auto-select GSS backend
13 SanitizeBool(USE_GSSAPI)
14 IF (USE_GSSAPI STREQUAL ON)
15 IF (GSSFRAMEWORK_FOUND)
16 SET(GSS_BACKEND "GSS.framework")
17 ELSEIF(GSSAPI_FOUND)
18 SET(GSS_BACKEND "gssapi")
19 ELSE()
20 MESSAGE(FATAL_ERROR "Unable to autodetect a usable GSS backend."
21 "Please pass the backend name explicitly (-DUSE_GSS=backend)")
22 ENDIF()
23 ELSEIF(USE_GSSAPI)
24 # Backend was explicitly set
25 SET(GSS_BACKEND ${USE_GSSAPI})
26 ELSE()
27 SET(GSS_BACKEND NO)
28 ENDIF()
29
30 IF(GSS_BACKEND)
31 # Check that we can find what's required for the selected backend
32 IF (GSS_BACKEND STREQUAL "GSS.framework")
33 IF (NOT GSSFRAMEWORK_FOUND)
34 MESSAGE(FATAL_ERROR "Asked for GSS.framework backend, but it wasn't found")
35 ENDIF()
36
37 LIST(APPEND LIBGIT2_LIBS ${GSSFRAMEWORK_LIBRARIES})
38
39 SET(GIT_GSSFRAMEWORK 1)
40 ADD_FEATURE_INFO(SPNEGO GIT_GSSFRAMEWORK "SPNEGO authentication support (${GSS_BACKEND})")
41 ELSEIF (GSS_BACKEND STREQUAL "gssapi")
42 IF (NOT GSSAPI_FOUND)
43 MESSAGE(FATAL_ERROR "Asked for gssapi GSS backend, but it wasn't found")
44 ENDIF()
45
46 LIST(APPEND LIBGIT2_LIBS ${GSSAPI_LIBRARIES})
47
48 SET(GIT_GSSAPI 1)
49 ADD_FEATURE_INFO(SPNEGO GIT_GSSAPI "SPNEGO authentication support (${GSS_BACKEND})")
50 ELSE()
51 MESSAGE(FATAL_ERROR "Asked for backend ${GSS_BACKEND} but it wasn't found")
52 ENDIF()
53 ELSE()
54 SET(GIT_GSSAPI 0)
55 ADD_FEATURE_INFO(SPNEGO NO "SPNEGO authentication support")
56 ENDIF()