Warning, /frameworks/extra-cmake-modules/find-modules/FindSasl2.cmake is written in an unsupported language. File is not indexed.

0001 # SPDX-FileCopyrightText: 2006, 2007 Laurent Montel <montel@kde.org>
0002 #
0003 # SPDX-License-Identifier: BSD-3-Clause
0004 
0005 #[=======================================================================[.rst:
0006 FindSasl2
0007 ---------
0008 
0009 Try to find the SASL2 library.
0010 
0011 This will define the following variables:
0012 
0013 ``Sasl2_FOUND``
0014     System has SASL2.
0015 
0016 ``Sasl2_VERSION``
0017     The version of SASL2.
0018 
0019 ``Sasl2_INCLUDE_DIRS``
0020     This should be passed to target_include_directories() if
0021     the target is not used for linking.
0022 
0023 ``Sasl2_LIBRARIES``
0024     The SASL2 library.
0025     This can be passed to target_link_libraries() instead of
0026     the ``Sasl2::Sasl2`` target
0027 
0028 If ``Sasl2_FOUND`` is TRUE, the following imported target
0029 will be available:
0030 
0031 ``Sasl2::Sasl2``
0032     The SASL2 library
0033 
0034 Since 5.41.0.
0035 #]=======================================================================]
0036 
0037 # NOTE: libsasl2.pc doesn't export the include dir.
0038 find_package(PkgConfig QUIET)
0039 pkg_check_modules(PC_Sasl2 libsasl2)
0040 
0041 find_path(Sasl2_INCLUDE_DIRS NAMES sasl/sasl.h)
0042 
0043 # libsasl2 add for windows, because the windows package of cyrus-sasl2
0044 # contains a libsasl2 also for msvc which is not standard conform
0045 find_library(Sasl2_LIBRARIES
0046   NAMES sasl2 libsasl2
0047   HINTS ${PC_Sasl2_LIBRARY_DIRS}
0048 )
0049 
0050 set(Sasl2_VERSION "${PC_Sasl2_VERSION}")
0051 
0052 if(NOT Sasl2_VERSION)
0053   if(EXISTS "${Sasl2_INCLUDE_DIRS}/sasl/sasl.h")
0054     file(READ "${Sasl2_INCLUDE_DIRS}/sasl/sasl.h" SASL2_H_CONTENT)
0055     string(REGEX MATCH "#define SASL_VERSION_MAJOR[ ]+[0-9]+" SASL2_VERSION_MAJOR_MATCH ${SASL2_H_CONTENT})
0056     string(REGEX MATCH "#define SASL_VERSION_MINOR[ ]+[0-9]+" SASL2_VERSION_MINOR_MATCH ${SASL2_H_CONTENT})
0057     string(REGEX MATCH "#define SASL_VERSION_STEP[ ]+[0-9]+" SASL2_VERSION_STEP_MATCH ${SASL2_H_CONTENT})
0058 
0059     string(REGEX REPLACE ".*_MAJOR[ ]+(.*)" "\\1" SASL2_VERSION_MAJOR ${SASL2_VERSION_MAJOR_MATCH})
0060     string(REGEX REPLACE ".*_MINOR[ ]+(.*)" "\\1" SASL2_VERSION_MINOR ${SASL2_VERSION_MINOR_MATCH})
0061     string(REGEX REPLACE ".*_STEP[ ]+(.*)" "\\1"  SASL2_VERSION_STEP  ${SASL2_VERSION_STEP_MATCH})
0062 
0063     set(Sasl2_VERSION "${SASL2_VERSION_MAJOR}.${SASL2_VERSION_MINOR}.${SASL2_VERSION_STEP}")
0064   else()
0065   # Could not find the version
0066   set(Sasl2_VERSION "0.0.0")
0067   endif()
0068 endif()
0069 
0070 include(FindPackageHandleStandardArgs)
0071 
0072 find_package_handle_standard_args(Sasl2
0073     FOUND_VAR Sasl2_FOUND
0074     REQUIRED_VARS Sasl2_LIBRARIES Sasl2_INCLUDE_DIRS
0075     VERSION_VAR Sasl2_VERSION
0076 )
0077 if(Sasl2_FOUND AND NOT TARGET Sasl2::Sasl2)
0078   add_library(Sasl2::Sasl2 UNKNOWN IMPORTED)
0079   set_target_properties(Sasl2::Sasl2 PROPERTIES
0080   IMPORTED_LOCATION "${Sasl2_LIBRARIES}"
0081   INTERFACE_INCLUDE_DIRECTORIES "${Sasl2_INCLUDE_DIRS}")
0082 endif()
0083 
0084 mark_as_advanced(Sasl2_LIBRARIES Sasl2_INCLUDE_DIRS Sasl2_VERSION)
0085 
0086 include(FeatureSummary)
0087 set_package_properties(Sasl2 PROPERTIES
0088   URL "https://www.cyrusimap.org/sasl/"
0089   DESCRIPTION "The Cyrus-sasl library."
0090 )
0091