35 lines
1.3 KiB
CMake
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)
|