Files
bongo/cmake/FindCyrusSASL.cmake
T
2026-07-16 18:52:00 +02:00

35 lines
1.3 KiB
CMake

find_path(CyrusSASL_INCLUDE_DIR NAMES sasl/sasl.h)
find_library(CyrusSASL_LIBRARY NAMES sasl2)
if(CyrusSASL_INCLUDE_DIR)
file(STRINGS "${CyrusSASL_INCLUDE_DIR}/sasl/sasl.h"
_CyrusSASL_VERSION_LINES
REGEX "^#define SASL_VERSION_(MAJOR|MINOR|STEP)[ \t]+[0-9]+")
foreach(_component MAJOR MINOR STEP)
string(REGEX MATCH
"SASL_VERSION_${_component}[ \t]+([0-9]+)"
_CyrusSASL_VERSION_MATCH "${_CyrusSASL_VERSION_LINES}")
set(_CyrusSASL_VERSION_${_component} "${CMAKE_MATCH_1}")
endforeach()
if(DEFINED _CyrusSASL_VERSION_MAJOR AND
DEFINED _CyrusSASL_VERSION_MINOR AND
DEFINED _CyrusSASL_VERSION_STEP)
set(CyrusSASL_VERSION
"${_CyrusSASL_VERSION_MAJOR}.${_CyrusSASL_VERSION_MINOR}.${_CyrusSASL_VERSION_STEP}")
endif()
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(CyrusSASL
REQUIRED_VARS CyrusSASL_LIBRARY CyrusSASL_INCLUDE_DIR
VERSION_VAR CyrusSASL_VERSION)
if(CyrusSASL_FOUND AND NOT TARGET CyrusSASL::CyrusSASL)
add_library(CyrusSASL::CyrusSASL UNKNOWN IMPORTED)
set_target_properties(CyrusSASL::CyrusSASL PROPERTIES
IMPORTED_LOCATION "${CyrusSASL_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${CyrusSASL_INCLUDE_DIR}")
endif()
mark_as_advanced(CyrusSASL_INCLUDE_DIR CyrusSASL_LIBRARY)