diff options
author | Patrick Steinhardt <ps@pks.im> | 2020-04-01 17:36:13 +0200 |
---|---|---|
committer | Patrick Steinhardt <ps@pks.im> | 2020-04-01 17:36:13 +0200 |
commit | 541de51516b5811d887db7249ac9e8ffe4278e7e (patch) | |
tree | 3c4a1e7828fc65130ee34acd6fc30ef92f6498cb /cmake/Modules/SelectGSSAPI.cmake | |
parent | 7d3c7057f0e774aecd6fc4ef8333e69e5c4873e0 (diff) | |
download | libgit2-541de51516b5811d887db7249ac9e8ffe4278e7e.tar.gz |
cmake: streamline backend detection
We're currently doing unnecessary work to auto-detect backends even if
the functionality is disabled altogether. Let's fix this by removing the
extraneous FOO_BACKEND variables, instead letting auto-detection modify
the variable itself.
Diffstat (limited to 'cmake/Modules/SelectGSSAPI.cmake')
-rw-r--r-- | cmake/Modules/SelectGSSAPI.cmake | 44 |
1 files changed, 18 insertions, 26 deletions
diff --git a/cmake/Modules/SelectGSSAPI.cmake b/cmake/Modules/SelectGSSAPI.cmake index 9b2bb1fc5..0a42eeefd 100644 --- a/cmake/Modules/SelectGSSAPI.cmake +++ b/cmake/Modules/SelectGSSAPI.cmake @@ -1,35 +1,27 @@ -# Select the backend to use - -# We try to find any packages our backends might use - INCLUDE(SanitizeBool) +# We try to find any packages our backends might use FIND_PACKAGE(GSSAPI) IF (CMAKE_SYSTEM_NAME MATCHES "Darwin") INCLUDE(FindGSSFramework) ENDIF() -# Auto-select GSS backend -SanitizeBool(USE_GSSAPI) -IF (USE_GSSAPI STREQUAL ON) - IF (GSSFRAMEWORK_FOUND) - SET(GSS_BACKEND "GSS.framework") - ELSEIF(GSSAPI_FOUND) - SET(GSS_BACKEND "gssapi") - ELSE() - MESSAGE(FATAL_ERROR "Unable to autodetect a usable GSS backend." - "Please pass the backend name explicitly (-DUSE_GSS=backend)") +IF(USE_GSSAPI) + # Auto-select GSS backend + SanitizeBool(USE_GSSAPI) + IF (USE_GSSAPI STREQUAL ON) + IF (GSSFRAMEWORK_FOUND) + SET(USE_GSSAPI "GSS.framework") + ELSEIF(GSSAPI_FOUND) + SET(USE_GSSAPI "gssapi") + ELSE() + MESSAGE(FATAL_ERROR "Unable to autodetect a usable GSS backend." + "Please pass the backend name explicitly (-DUSE_GSS=backend)") + ENDIF() ENDIF() -ELSEIF(USE_GSSAPI) - # Backend was explicitly set - SET(GSS_BACKEND ${USE_GSSAPI}) -ELSE() - SET(GSS_BACKEND NO) -ENDIF() -IF(GSS_BACKEND) # Check that we can find what's required for the selected backend - IF (GSS_BACKEND STREQUAL "GSS.framework") + IF (USE_GSSAPI STREQUAL "GSS.framework") IF (NOT GSSFRAMEWORK_FOUND) MESSAGE(FATAL_ERROR "Asked for GSS.framework backend, but it wasn't found") ENDIF() @@ -37,8 +29,8 @@ IF(GSS_BACKEND) LIST(APPEND LIBGIT2_LIBS ${GSSFRAMEWORK_LIBRARIES}) SET(GIT_GSSFRAMEWORK 1) - ADD_FEATURE_INFO(SPNEGO GIT_GSSFRAMEWORK "SPNEGO authentication support (${GSS_BACKEND})") - ELSEIF (GSS_BACKEND STREQUAL "gssapi") + ADD_FEATURE_INFO(SPNEGO GIT_GSSFRAMEWORK "SPNEGO authentication support (${USE_GSSAPI})") + ELSEIF (USE_GSSAPI STREQUAL "gssapi") IF (NOT GSSAPI_FOUND) MESSAGE(FATAL_ERROR "Asked for gssapi GSS backend, but it wasn't found") ENDIF() @@ -46,9 +38,9 @@ IF(GSS_BACKEND) LIST(APPEND LIBGIT2_LIBS ${GSSAPI_LIBRARIES}) SET(GIT_GSSAPI 1) - ADD_FEATURE_INFO(SPNEGO GIT_GSSAPI "SPNEGO authentication support (${GSS_BACKEND})") + ADD_FEATURE_INFO(SPNEGO GIT_GSSAPI "SPNEGO authentication support (${USE_GSSAPI})") ELSE() - MESSAGE(FATAL_ERROR "Asked for backend ${GSS_BACKEND} but it wasn't found") + MESSAGE(FATAL_ERROR "Asked for backend ${USE_GSSAPI} but it wasn't found") ENDIF() ELSE() SET(GIT_GSSAPI 0) |