cmake/FindLibEvent.cmake (81 lines of code) (raw):

# Copyright (c) 2022, Alibaba Group Holding Limited # find the LibEvent library # find include dir find_path (LIBEVENT_INCLUDE_DIR NAMES event.h PATHS ${LIBEVENT_DIR} PATH_SUFFIXES include) # find dynamic library find_library (LIBEVENT_LIBRARY NAMES event PATHS ${LIBEVENT_DIR} PATH_SUFFIXES lib lib64) find_library (LIBEVENT_SSL NAMES event_openssl PATHS ${LIBEVENT_DIR} PATH_SUFFIXES lib lib64) find_library (LIBEVENT_CORE NAMES event_core PATHS ${LIBEVENT_DIR} PATH_SUFFIXES lib lib64) find_library (LIBEVENT_EXTRA NAMES event_extra PATHS ${LIBEVENT_DIR} PATH_SUFFIXES lib lib64) find_library (LIBEVENT_THREAD NAMES event_pthreads PATHS ${LIBEVENT_DIR} PATH_SUFFIXES lib lib64) # find version if(LIBEVENT_INCLUDE_DIR) set(_version_regex "^#define[ ]+[EVENT__VERSION|_EVENT_VERSION]+[ ]+\"([^\"]+)\"") file(STRINGS "${LIBEVENT_INCLUDE_DIR}/event2/event-config.h" LIBEVENT_VERSION REGEX "${_version_regex}") # if event-config.h not found, try find event-config-64.h if(NOT LIBEVENT_VERSION) file(STRINGS "${LIBEVENT_INCLUDE_DIR}/event2/event-config-64.h" LIBEVENT_VERSION REGEX "${_version_regex}") endif() string(REGEX REPLACE "${_version_regex}" "\\1" LIBEVENT_VERSION "${LIBEVENT_VERSION}") unset(_version_regex) endif() include (FindPackageHandleStandardArgs) set (LIBEVENT_INCLUDE_DIRS ${LIBEVENT_INCLUDE_DIR}) if(NOT ${LIBEVENT_LIBRARY} MATCHES "LIBEVENT_LIBRARY-NOTFOUND") set (LIBEVENT_LIBRARIES ${LIBEVENT_LIBRARIES} ${LIBEVENT_LIBRARY} ) endif() if(NOT ${LIBEVENT_SSL} MATCHES "LIBEVENT_SSL-NOTFOUND") set (LIBEVENT_LIBRARIES ${LIBEVENT_LIBRARIES} ${LIBEVENT_SSL} ) endif() if(NOT ${LIBEVENT_CORE} MATCHES "LIBEVENT_CORE-NOTFOUND") set (LIBEVENT_LIBRARIES ${LIBEVENT_LIBRARIES} ${LIBEVENT_CORE} ) endif() if(NOT ${LIBEVENT_EXTRA} MATCHES "LIBEVENT_EXTRA-NOTFOUND") set (LIBEVENT_LIBRARIES ${LIBEVENT_LIBRARIES} ${LIBEVENT_EXTRA} ) endif() if(NOT ${LIBEVENT_THREAD} MATCHES "LIBEVENT_THREAD-NOTFOUND") set (LIBEVENT_LIBRARIES ${LIBEVENT_LIBRARIES} ${LIBEVENT_THREAD} ) endif() find_package_handle_standard_args(LibEvent REQUIRED_VARS LIBEVENT_INCLUDE_DIR LIBEVENT_LIBRARY LIBEVENT_LIBRARIES VERSION_VAR LIBEVENT_VERSION ) mark_as_advanced( LIBEVENT_INCLUDE_DIRS LIBEVENT_LIBRARY LIBEVENT_LIBRARIES )