Test reverting FindLibevent2

This commit is contained in:
Sara Dickinson 2023-06-21 11:26:42 +01:00
parent 83bbb57b00
commit c7b3f29f62
1 changed files with 35 additions and 51 deletions

View File

@ -1,22 +1,15 @@
#[=======================================================================[.rst: #[=======================================================================[.rst:
FindLibevent2 FindLibevent2
------------- -------------
Find the Libevent2 library. For now this finds the core library only. Find the Libevent2 library. For now this finds the core library only.
Imported targets Imported targets
^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
This module defines the following :prop_tgt:`IMPORTED` targets: This module defines the following :prop_tgt:`IMPORTED` targets:
``Libevent2::Libevent_core`` ``Libevent2::Libevent_core``
The Libevent2 library, if found. The Libevent2 library, if found.
Result variables Result variables
^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
This module will set the following variables in your project: This module will set the following variables in your project:
``Libevent2_FOUND`` ``Libevent2_FOUND``
If false, do not try to use Libevent2. If false, do not try to use Libevent2.
``LIBEVENT2_INCLUDE_DIR`` ``LIBEVENT2_INCLUDE_DIR``
@ -28,51 +21,42 @@ This module will set the following variables in your project:
#]=======================================================================] #]=======================================================================]
find_package(PkgConfig QUIET) find_path(LIBEVENT2_INCLUDE_DIR event2/event.h
if (PKG_CONFIG_FOUND) HINTS
pkg_check_modules(PkgLibevent IMPORTED_TARGET GLOBAL QUIET libevent>=2) "${LIBEVENT2_DIR}"
endif () "${LIBEVENT2_DIR}/include"
)
if (PkgLibevent_FOUND) find_library(LIBEVENT2_LIBRARY NAMES event_core libevent_core
set(LIBEVENT2_INCLUDE_DIR ${PkgLibevent_INCLUDE_DIRS} CACHE FILEPATH "libevent2 include path") HINTS
set(LIBEVENT2_LIBRARIES ${PkgLibevent_LIBRARIES} CACHE STRING "libevent2 libraries") "${LIBEVENT2_DIR}"
set(LIBEVENT2_VERSION ${PkgLibevent_VERSION}) "${LIBEVENT2_DIR}/lib"
add_library(Libevent2::Libevent_core ALIAS PkgConfig::PkgLibevent) )
set(Libevent2_FOUND ON)
else () set(LIBEVENT2_LIBRARIES "")
find_path(LIBEVENT2_INCLUDE_DIR event2/event.h
HINTS if (LIBEVENT2_INCLUDE_DIR AND LIBEVENT2_LIBRARY)
"${LIBEVENT2_DIR}" if (NOT TARGET Libevent2::Libevent_core)
"${LIBEVENT2_DIR}/include" add_library(Libevent2::Libevent_core UNKNOWN IMPORTED)
) set_target_properties(Libevent2::Libevent_core PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${LIBEVENT2_INCLUDE_DIR}"
find_library(LIBEVENT2_LIBRARIES NAMES event_core libevent_core IMPORTED_LINK_INTERFACE_LANGUAGES "C"
HINTS IMPORTED_LOCATION "${LIBEVENT2_LIBRARY}"
"${LIBEVENT2_DIR}" )
"${LIBEVENT2_DIR}/lib"
)
if (LIBEVENT2_INCLUDE_DIR AND LIBEVENT2_LIBRARIES)
if (NOT TARGET Libevent2::Libevent_core)
add_library(Libevent2::Libevent_core UNKNOWN IMPORTED)
set_target_properties(Libevent2::Libevent_core PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${LIBEVENT2_INCLUDE_DIR}"
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
IMPORTED_LOCATION "${LIBEVENT2_LIBRARIES}"
)
endif ()
if (NOT LIBEVENT2_VERSION AND LIBEVENT2_INCLUDE_DIR AND EXISTS "${LIBEVENT2_INCLUDE_DIR}/event2/event.h")
file(STRINGS "${LIBEVENT2_INCLUDE_DIR}/event2/event-config.h" LIBEVENT2_H REGEX "^#define _?EVENT_+VERSION ")
string(REGEX REPLACE "^.*EVENT_+VERSION \"([^\"]+)\".*$" "\\1" LIBEVENT2_VERSION "${LIBEVENT2_H}")
endif ()
endif () endif ()
include(FindPackageHandleStandardArgs) if (NOT LIBEVENT2_VERSION AND LIBEVENT2_INCLUDE_DIR AND EXISTS "${LIBEVENT2_INCLUDE_DIR}/event2/event.h")
find_package_handle_standard_args(Libevent2 file(STRINGS "${LIBEVENT2_INCLUDE_DIR}/event2/event-config.h" LIBEVENT2_H REGEX "^#define _?EVENT_+VERSION ")
REQUIRED_VARS LIBEVENT2_LIBRARIES LIBEVENT2_INCLUDE_DIR string(REGEX REPLACE "^.*EVENT_+VERSION \"([^\"]+)\".*$" "\\1" LIBEVENT2_VERSION "${LIBEVENT2_H}")
VERSION_VAR LIBEVENT2_VERSION endif ()
) endif()
endif ()
mark_as_advanced(LIBEVENT2_INCLUDE_DIR LIBEVENT2_LIBRARIES) list(APPEND LIBEVENT2_LIBRARIES "${LIBEVENT2_LIBRARY}")
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Libevent2
REQUIRED_VARS LIBEVENT2_LIBRARIES LIBEVENT2_INCLUDE_DIR
VERSION_VAR LIBEVENT2_VERSION
)
mark_as_advanced(LIBEVENT2_INCLUDE_DIR LIBEVENT2_LIBRARIES LIBEVENT2_LIBRARY)