summaryrefslogtreecommitdiffstats
path: root/cmake/FindGSSAPI.cmake
blob: 44594941e33923d69a2320867c535c726243d947 (plain)
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
# Copyright (C) 2022 The Qt Company Ltd.# SPDX-License-Identifier: BSD-3-Clausefind_package(PkgConfig QUIET)pkg_check_modules(PC_GSSAPI QUIET"krb5-gssapi")if(NOT PC_GSSAPI_FOUND)pkg_check_modules(PC_GSSAPI QUIET"mit-krb5-gssapi")endif()find_path(GSSAPI_INCLUDE_DIRSNAMES gssapi/gssapi.h HINTS${PC_GSSAPI_INCLUDEDIR})# On macOS, vcpkg opts for finding frameworks LAST. This is generally fine;# however, in the case of GSSAPI, `usr/lib/libgssapi_krb5.tbd` which is a# symlink to `Kerberos.framework` misses a few symols, e.g.,# `___gss_c_nt_hostbased_service_oid_desc`, and it causes build failure.# So, we need to make sure that we find `GSS.framework`.set(gssapi_library_names GSS# framework gss # solaris gssapi # FreeBSD gssapi_krb5 )if(APPLE)list(REMOVE_ITEM gssapi_library_names "gssapi_krb5")endif()find_library(GSSAPI_LIBRARIESNAMES${gssapi_library_names}HINTS${PC_GSSAPI_LIBDIR})include(FindPackageHandleStandardArgs)find_package_handle_standard_args(GSSAPI DEFAULT_MSG GSSAPI_LIBRARIES GSSAPI_INCLUDE_DIRS)if(GSSAPI_FOUND AND NOT TARGET GSSAPI::GSSAPI)if(GSSAPI_LIBRARIES MATCHES"/([^/]+)\\.framework$")add_library(GSSAPI::GSSAPI INTERFACE IMPORTED)set_target_properties(GSSAPI::GSSAPI PROPERTIESINTERFACE_LINK_LIBRARIES"${GSSAPI_LIBRARIES}")else()add_library(GSSAPI::GSSAPI UNKNOWN IMPORTED)set_target_properties(GSSAPI::GSSAPI PROPERTIESIMPORTED_LOCATION"${GSSAPI_LIBRARIES}")endif()set_target_properties(GSSAPI::GSSAPI PROPERTIESINTERFACE_INCLUDE_DIRECTORIES"${GSSAPI_INCLUDE_DIRS}")endif()mark_as_advanced(GSSAPI_INCLUDE_DIRS GSSAPI_LIBRARIES)include(FeatureSummary)set_package_properties(GSSAPI PROPERTIESDESCRIPTION"Generic Security Services Application Program Interface")
close