cmake: don't call find_package_handle_standard_args when using pkg_config + cache variables

This commit is contained in:
Anonymous Maarten 2021-05-28 16:03:30 +02:00
parent f92f97bf1e
commit 6eb1a6790a
7 changed files with 182 additions and 170 deletions

View File

@ -28,48 +28,62 @@ This module will set the following variables in your project:
#]=======================================================================] #]=======================================================================]
find_path(CHECK_INCLUDE_DIR check.h find_package(PkgConfig QUIET)
if (PKG_CONFIG_FOUND)
pkg_check_modules(PkgCheck IMPORTED_TARGET GLOBAL check)
endif ()
if (PkgCheck_FOUND)
set(CHECK_INCLUDE_DIR ${PkgCheck_INCLUDE_DIRS} CACHE FILEPATH "check include path")
set(CHECK_LIBRARIES ${PkgCheck_LIBRARIES} CACHE STRING "check libraries")
set(CHECK_VERSION ${PkgCheck_VERSION})
add_library(Check::Check ALIAS PkgConfig::PkgCheck)
set(Check_FOUND ON)
else ()
find_path(CHECK_INCLUDE_DIR check.h
HINTS HINTS
"${CHECK_DIR}" "${CHECK_DIR}"
"${CHECK_DIR}/include" "${CHECK_DIR}/include"
) )
# Check for PIC and non-PIC libraries. If PIC present, use that # Check for PIC and non-PIC libraries. If PIC present, use that
# in preference (as per Debian check.pc). # in preference (as per Debian check.pc).
find_library(CHECK_LIBRARY NAMES check_pic libcheck_pic find_library(CHECK_LIBRARY NAMES check_pic libcheck_pic
HINTS HINTS
"${CHECK_DIR}" "${CHECK_DIR}"
"${CHECK_DIR}/lib" "${CHECK_DIR}/lib"
) )
if (NOT CHECK_LIBRARY) if (NOT CHECK_LIBRARY)
find_library(CHECK_LIBRARY NAMES check libcheck find_library(CHECK_LIBRARY NAMES check libcheck
HINTS HINTS
"${CHECK_DIR}" "${CHECK_DIR}"
"${CHECK_DIR}/lib" "${CHECK_DIR}/lib"
) )
endif () endif ()
set(CHECK_LIBRARIES "") set(_CHECK_LIBARIES "")
# Check may need the math, subunit and rt libraries on Unix # Check may need the math, subunit and rt libraries on Unix
if (UNIX) if (UNIX)
find_library(CHECK_MATH_LIBRARY m) find_library(CHECK_MATH_LIBRARY m)
find_library(CHECK_RT_LIBRARY rt) find_library(CHECK_RT_LIBRARY rt)
find_library(CHECK_SUBUNIT_LIBRARY subunit) find_library(CHECK_SUBUNIT_LIBRARY subunit)
if (CHECK_MATH_LIBRARY) if (CHECK_MATH_LIBRARY)
list(APPEND CHECK_LIBRARIES "${CHECK_MATH_LIBRARY}") list(APPEND _CHECK_LIBARIES "${CHECK_MATH_LIBRARY}")
endif () endif ()
if (CHECK_RT_LIBRARY) if (CHECK_RT_LIBRARY)
list(APPEND CHECK_LIBRARIES "${CHECK_RT_LIBRARY}") list(APPEND _CHECK_LIBARIES "${CHECK_RT_LIBRARY}")
endif () endif ()
if (CHECK_SUBUNIT_LIBRARY) if (CHECK_SUBUNIT_LIBRARY)
list(APPEND CHECK_LIBRARIES "${CHECK_SUBUNIT_LIBRARY}") list(APPEND _CHECK_LIBARIES "${CHECK_SUBUNIT_LIBRARY}")
endif () endif ()
endif() endif()
if (CHECK_INCLUDE_DIR AND CHECK_LIBRARY) set(CHECK_LIBRARIES ${_CHECK_LIBARIES} ${CHECK_LIBRARY} CACHE STRING "check libraries")
if (CHECK_INCLUDE_DIR AND CHECK_LIBRARY)
if (NOT TARGET Check::Check) if (NOT TARGET Check::Check)
add_library(Check::Check UNKNOWN IMPORTED) add_library(Check::Check UNKNOWN IMPORTED)
set_target_properties(Check::Check PROPERTIES set_target_properties(Check::Check PROPERTIES
@ -84,15 +98,17 @@ if (CHECK_INCLUDE_DIR AND CHECK_LIBRARY)
file(STRINGS "${CHECK_INCLUDE_DIR}/check.h" CHECK_H REGEX "^#define CHECK_M[A-Z]+_VERSION") file(STRINGS "${CHECK_INCLUDE_DIR}/check.h" CHECK_H REGEX "^#define CHECK_M[A-Z]+_VERSION")
string(REGEX REPLACE "^.*\(([0-9]+)\).*\(([0-9]+)\).*\(([0-9]+)\).*$" "\\1.\\2.\\3" CHECK_VERSION "${CHECK_H}") string(REGEX REPLACE "^.*\(([0-9]+)\).*\(([0-9]+)\).*\(([0-9]+)\).*$" "\\1.\\2.\\3" CHECK_VERSION "${CHECK_H}")
endif () endif ()
endif() endif()
list(APPEND CHECK_LIBRARIES "${CHECK_LIBRARY}") list(APPEND CHECK_LIBRARIES "${CHECK_LIBRARY}")
include(FindPackageHandleStandardArgs) include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Check find_package_handle_standard_args(Check
REQUIRED_VARS CHECK_LIBRARIES CHECK_INCLUDE_DIR REQUIRED_VARS CHECK_LIBRARIES CHECK_INCLUDE_DIR
VERSION_VAR CHECK_VERSION VERSION_VAR CHECK_VERSION
) )
endif()
mark_as_advanced(CHECK_INCLUDE_DIR CHECK_LIBRARIES CHECK_LIBRARY mark_as_advanced(CHECK_INCLUDE_DIR CHECK_LIBRARIES CHECK_LIBRARY
CHECK_MATH_LIBRARY CHECK_RT_LIBRARY CHECK_SUBUNIT_LIBRARY) CHECK_MATH_LIBRARY CHECK_RT_LIBRARY CHECK_SUBUNIT_LIBRARY)

View File

@ -30,19 +30,20 @@ This module will set the following variables in your project:
#]=======================================================================] #]=======================================================================]
include(FindPkgConfig) find_package(PkgConfig QUIET)
if(PKG_CONFIG_FOUND) if (PKG_CONFIG_FOUND)
pkg_check_modules(PkgGnuTLS IMPORTED_TARGET GLOBAL QUIET gnutls) pkg_check_modules(PkgGnuTLS IMPORTED_TARGET GLOBAL QUIET gnutls)
pkg_check_modules(PkgGnuTLSDane IMPORTED_TARGET GLOBAL QUIET gnutls-dane) pkg_check_modules(PkgGnuTLSDane IMPORTED_TARGET GLOBAL QUIET gnutls-dane)
endif() endif ()
if(PkgGnuTLS_FOUND AND PkgGnuTLSDane_FOUND) if (PkgGnuTLS_FOUND AND PkgGnuTLSDane_FOUND)
set(GNUTLS_INCLUDE_DIR ${PkgGnuTLS_INCLUDE_DIRS} $PkgGnuTLSDane_INCLUDE_DIRS}) set(GNUTLS_INCLUDE_DIR ${PkgGnuTLS_INCLUDE_DIRS} $PkgGnuTLSDane_INCLUDE_DIRS} CACHE FILEPATH "GnuTLS include path")
set(NETTLE_LIBRARIES ${PkgGnuTLS_LIBRARIES} ${PkgGnuTLSDane_LIBRARIES}) set(NETTLE_LIBRARIES ${PkgGnuTLS_LIBRARIES} ${PkgGnuTLSDane_LIBRARIES} CACHE STRING "GnuTLS libraries")
set(NETTLE_VERSION ${PkgGnuTLS_VERSION}) set(NETTLE_VERSION ${PkgGnuTLS_VERSION})
add_library(GnuTLS::GnuTLS ALIAS PkgConfig::PkgGnuTLS) add_library(GnuTLS::GnuTLS ALIAS PkgConfig::PkgGnuTLS)
add_library(GnuTLS::Dane ALIAS PkgConfig::PkgGnuTLSDane) add_library(GnuTLS::Dane ALIAS PkgConfig::PkgGnuTLSDane)
else() set(GnuTLS_FOUND ON)
else ()
find_path(GNUTLS_INCLUDE_DIR gnutls/gnutls.h find_path(GNUTLS_INCLUDE_DIR gnutls/gnutls.h
HINTS HINTS
"${GNUTLS_DIR}" "${GNUTLS_DIR}"
@ -61,7 +62,7 @@ else()
"${GNUTLS_DIR}/lib" "${GNUTLS_DIR}/lib"
) )
set(GNUTLS_LIBRARIES "") set(_GNUTLS_LIBRARIES "")
if (GNUTLS_INCLUDE_DIR AND GNUTLS_LIBRARY AND GNUTLS_DANE_LIBRARY) if (GNUTLS_INCLUDE_DIR AND GNUTLS_LIBRARY AND GNUTLS_DANE_LIBRARY)
if (NOT TARGET GnuTLS::GnuTLS) if (NOT TARGET GnuTLS::GnuTLS)
@ -85,15 +86,16 @@ else()
file(STRINGS "${GNUTLS_INCLUDE_DIR}/gnutls/gnutls.h" GNUTLS_VER_H REGEX "^#define GNUTLS_VERSION_(MAJOR|MINOR|PATCH) ") file(STRINGS "${GNUTLS_INCLUDE_DIR}/gnutls/gnutls.h" GNUTLS_VER_H REGEX "^#define GNUTLS_VERSION_(MAJOR|MINOR|PATCH) ")
string(REGEX REPLACE "^.*_MAJOR ([0-9]+).*_MINOR ([0-9]+).*_PATCH ([0-9]+).*$" "\\1.\\2.\\3c" GNUTLS_VERSION "${GNUTLS_VER_H}") string(REGEX REPLACE "^.*_MAJOR ([0-9]+).*_MINOR ([0-9]+).*_PATCH ([0-9]+).*$" "\\1.\\2.\\3c" GNUTLS_VERSION "${GNUTLS_VER_H}")
endif () endif ()
endif() endif ()
list(APPEND GNUTLS_LIBRARIES "${GNUTLS_LIBRARY}" "${GNUTLS_DANE_LIBRARY}") list(APPEND _GNUTLS_LIBRARIES "${GNUTLS_LIBRARY}" "${GNUTLS_DANE_LIBRARY}")
endif() set(GNUTLS_LIBRARIES ${_GNUTLS_LIBRARIES} CACHE STRING "GnuTLS libraries")
include(FindPackageHandleStandardArgs) include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(GnuTLS find_package_handle_standard_args(GnuTLS
REQUIRED_VARS GNUTLS_LIBRARIES GNUTLS_INCLUDE_DIR REQUIRED_VARS GNUTLS_LIBRARIES GNUTLS_INCLUDE_DIR
VERSION_VAR GNUTLS_VERSION VERSION_VAR GNUTLS_VERSION
) )
endif ()
mark_as_advanced(GNUTLS_INCLUDE_DIR GNUTLS_LIBRARIES GNUTLS_LIBRARY GNUTLS_DANE_LIBRARY) mark_as_advanced(GNUTLS_INCLUDE_DIR GNUTLS_LIBRARIES GNUTLS_LIBRARY GNUTLS_DANE_LIBRARY)

View File

@ -28,38 +28,37 @@ This module will set the following variables in your project:
#]=======================================================================] #]=======================================================================]
include(FindPkgConfig) find_package(PkgConfig QUIET)
if(PKG_CONFIG_FOUND) if (PKG_CONFIG_FOUND)
pkg_check_modules(PkgLibevent IMPORTED_TARGET GLOBAL QUIET libevent>=2) pkg_check_modules(PkgLibevent IMPORTED_TARGET GLOBAL QUIET libevent>=2)
endif() endif ()
if(PkgLibevent_FOUND) if (PkgLibevent_FOUND)
set(LIBEVENT2_INCLUDE_DIR ${PkgLibevent_INCLUDE_DIRS}) set(LIBEVENT2_INCLUDE_DIR ${PkgLibevent_INCLUDE_DIRS} CACHE FILEPATH "libevent2 include path")
set(LIBEVENT2_LIBRARIES ${PkgLibevent_LIBRARIES}) set(LIBEVENT2_LIBRARIES ${PkgLibevent_LIBRARIES} CACHE STRING "libevent2 libraries")
set(LIBEVENT2_VERSION ${PkgLibevent_VERSION}) set(LIBEVENT2_VERSION ${PkgLibevent_VERSION})
add_library(Libevent2::Libevent_core ALIAS PkgConfig::PkgLibevent) add_library(Libevent2::Libevent_core ALIAS PkgConfig::PkgLibevent)
else() set(Libevent2_FOUND ON)
else ()
find_path(LIBEVENT2_INCLUDE_DIR event2/event.h find_path(LIBEVENT2_INCLUDE_DIR event2/event.h
HINTS HINTS
"${LIBEVENT2_DIR}" "${LIBEVENT2_DIR}"
"${LIBEVENT2_DIR}/include" "${LIBEVENT2_DIR}/include"
) )
find_library(LIBEVENT2_LIBRARY NAMES event_core libevent_core find_library(LIBEVENT2_LIBRARIES NAMES event_core libevent_core
HINTS HINTS
"${LIBEVENT2_DIR}" "${LIBEVENT2_DIR}"
"${LIBEVENT2_DIR}/lib" "${LIBEVENT2_DIR}/lib"
) )
set(LIBEVENT2_LIBRARIES "") if (LIBEVENT2_INCLUDE_DIR AND LIBEVENT2_LIBRARIES)
if (LIBEVENT2_INCLUDE_DIR AND LIBEVENT2_LIBRARY)
if (NOT TARGET Libevent2::Libevent_core) if (NOT TARGET Libevent2::Libevent_core)
add_library(Libevent2::Libevent_core UNKNOWN IMPORTED) add_library(Libevent2::Libevent_core UNKNOWN IMPORTED)
set_target_properties(Libevent2::Libevent_core PROPERTIES set_target_properties(Libevent2::Libevent_core PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${LIBEVENT2_INCLUDE_DIR}" INTERFACE_INCLUDE_DIRECTORIES "${LIBEVENT2_INCLUDE_DIR}"
IMPORTED_LINK_INTERFACE_LANGUAGES "C" IMPORTED_LINK_INTERFACE_LANGUAGES "C"
IMPORTED_LOCATION "${LIBEVENT2_LIBRARY}" IMPORTED_LOCATION "${LIBEVENT2_LIBRARIES}"
) )
endif () endif ()
@ -67,15 +66,13 @@ else()
file(STRINGS "${LIBEVENT2_INCLUDE_DIR}/event2/event-config.h" LIBEVENT2_H REGEX "^#define _?EVENT_+VERSION ") 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}") string(REGEX REPLACE "^.*EVENT_+VERSION \"([^\"]+)\".*$" "\\1" LIBEVENT2_VERSION "${LIBEVENT2_H}")
endif () endif ()
endif() endif ()
list(APPEND LIBEVENT2_LIBRARIES "${LIBEVENT2_LIBRARY}") include(FindPackageHandleStandardArgs)
endif() find_package_handle_standard_args(Libevent2
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Libevent2
REQUIRED_VARS LIBEVENT2_LIBRARIES LIBEVENT2_INCLUDE_DIR REQUIRED_VARS LIBEVENT2_LIBRARIES LIBEVENT2_INCLUDE_DIR
VERSION_VAR LIBEVENT2_VERSION VERSION_VAR LIBEVENT2_VERSION
) )
endif ()
mark_as_advanced(LIBEVENT2_INCLUDE_DIR LIBEVENT2_LIBRARIES LIBEVENT2_LIBRARY) mark_as_advanced(LIBEVENT2_INCLUDE_DIR LIBEVENT2_LIBRARIES)

View File

@ -28,38 +28,37 @@ This module will set the following variables in your project:
#]=======================================================================] #]=======================================================================]
include(FindPkgConfig) find_package(PkgConfig QUIET)
if(PKG_CONFIG_FOUND) if (PKG_CONFIG_FOUND)
pkg_check_modules(PkgLibIdn2 IMPORTED_TARGET GLOBAL libidn2) pkg_check_modules(PkgLibIdn2 IMPORTED_TARGET GLOBAL libidn2)
endif() endif ()
if(PkgLibIdn2_FOUND) if (PkgLibIdn2_FOUND)
set(LIBIDN2_INCLUDE_DIR ${PkgLibIdn2_INCLUDE_DIRS}) set(LIBIDN2_INCLUDE_DIR ${PkgLibIdn2_INCLUDE_DIRS} CACHE FILEPATH "libidn2 include path")
set(LIBIDN2_LIBRARIES ${PkgLibIdn2_LIBRARIES}) set(LIBIDN2_LIBRARIES ${PkgLibIdn2_LIBRARIES} CACHE STRING "libidn2 libraries")
set(LIBIDN2_VERSION ${PkgLibIdn2_VERSION}) set(LIBIDN2_VERSION ${PkgLibIdn2_VERSION})
add_library(Libidn2::Libidn2 ALIAS PkgConfig::PkgLibIdn2) add_library(Libidn2::Libidn2 ALIAS PkgConfig::PkgLibIdn2)
else() set(Libidn2_FOUND ON)
else ()
find_path(LIBIDN2_INCLUDE_DIR idn2.h find_path(LIBIDN2_INCLUDE_DIR idn2.h
HINTS HINTS
"${LIBIDN2_DIR}" "${LIBIDN2_DIR}"
"${LIBIDN2_DIR}/include" "${LIBIDN2_DIR}/include"
) )
find_library(LIBIDN2_LIBRARY NAMES idn2 libidn2 find_library(LIBIDN2_LIBRARIES NAMES idn2 libidn2
HINTS HINTS
"${LIBIDN2_DIR}" "${LIBIDN2_DIR}"
"${LIBIDN2_DIR}/lib" "${LIBIDN2_DIR}/lib"
) )
set(LIBIDN2_LIBRARIES "") if (LIBIDN2_INCLUDE_DIR AND LIBIDN2_LIBRARIES)
if (LIBIDN2_INCLUDE_DIR AND LIBIDN2_LIBRARY)
if (NOT TARGET Libidn2::Libidn2) if (NOT TARGET Libidn2::Libidn2)
add_library(Libidn2::Libidn2 UNKNOWN IMPORTED) add_library(Libidn2::Libidn2 UNKNOWN IMPORTED)
set_target_properties(Libidn2::Libidn2 PROPERTIES set_target_properties(Libidn2::Libidn2 PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${LIBIDN2_INCLUDE_DIR}" INTERFACE_INCLUDE_DIRECTORIES "${LIBIDN2_INCLUDE_DIR}"
IMPORTED_LINK_INTERFACE_LANGUAGES "C" IMPORTED_LINK_INTERFACE_LANGUAGES "C"
IMPORTED_LOCATION "${LIBIDN2_LIBRARY}" IMPORTED_LOCATION "${LIBIDN2_LIBRARIES}"
) )
endif () endif ()
@ -67,15 +66,12 @@ else()
file(STRINGS "${LIBIDN2_INCLUDE_DIR}/idn2.h" LIBIDN2_H REGEX "^#define IDN2_VERSION ") file(STRINGS "${LIBIDN2_INCLUDE_DIR}/idn2.h" LIBIDN2_H REGEX "^#define IDN2_VERSION ")
string(REGEX REPLACE "^.*IDN2_VERSION \"([0-9.]+)\".*$" "\\1" LIBIDN2_VERSION "${LIBIDN2_H}") string(REGEX REPLACE "^.*IDN2_VERSION \"([0-9.]+)\".*$" "\\1" LIBIDN2_VERSION "${LIBIDN2_H}")
endif () endif ()
endif ()
list(APPEND LIBIDN2_LIBRARIES "${LIBIDN2_LIBRARY}") include(FindPackageHandleStandardArgs)
endif() find_package_handle_standard_args(Libidn2
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Libidn2
REQUIRED_VARS LIBIDN2_LIBRARIES LIBIDN2_INCLUDE_DIR REQUIRED_VARS LIBIDN2_LIBRARIES LIBIDN2_INCLUDE_DIR
VERSION_VAR LIBIDN2_VERSION VERSION_VAR LIBIDN2_VERSION
) )
endif ()
mark_as_advanced(LIBIDN2_INCLUDE_DIR LIBIDN2_LIBRARIES LIBIDN2_LIBRARY) mark_as_advanced(LIBIDN2_INCLUDE_DIR LIBIDN2_LIBRARIES)

View File

@ -28,17 +28,18 @@ This module will set the following variables in your project:
#]=======================================================================] #]=======================================================================]
include(FindPkgConfig) find_package(PkgConfig QUIET)
if(PKG_CONFIG_FOUND) if (PKG_CONFIG_FOUND)
pkg_check_modules(PkgLibunbound IMPORTED_TARGET GLOBAL QUIET libunbound) pkg_check_modules(PkgLibunbound IMPORTED_TARGET GLOBAL QUIET libunbound)
endif() endif ()
if(PkgLibunbound_FOUND) if (PkgLibunbound_FOUND)
set(LIBUNBOUND_INCLUDE_DIR ${PkgLibunbound_INCLUDE_DIRS}) set(LIBUNBOUND_INCLUDE_DIR ${PkgLibunbound_INCLUDE_DIRS} CACHE FILEPATH "libunbound include path")
set(LIBUNBOUND_LIBRARIES ${PkgLibunbound_LIBRARIES}) set(LIBUNBOUND_LIBRARIES ${PkgLibunbound_LIBRARIES} CACHE STRING "libunbound libraries")
set(LIBUNBOUND_VERSION ${PkgLibunbound_VERSION}) set(LIBUNBOUND_VERSION ${PkgLibunbound_VERSION})
add_library(Libunbound::Libunbound ALIAS PkgConfig::PkgLibunbound) add_library(Libunbound::Libunbound ALIAS PkgConfig::PkgLibunbound)
else() set(Libunbound_FOUND ON)
else ()
find_path(LIBUNBOUND_INCLUDE_DIR unbound.h find_path(LIBUNBOUND_INCLUDE_DIR unbound.h
HINTS HINTS
"${LIBUNBOUND_DIR}" "${LIBUNBOUND_DIR}"
@ -51,14 +52,14 @@ else()
"${LIBUNBOUND_DIR}/lib" "${LIBUNBOUND_DIR}/lib"
) )
set(LIBUNBOUND_LIBRARIES "") set(_LIBUNBOUND_LIBRARIES "")
if (UNIX) if (UNIX)
find_package(Threads REQUIRED) find_package(Threads REQUIRED)
find_package(OpenSSL REQUIRED) find_package(OpenSSL REQUIRED)
list(APPEND LIBUNBOUND_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}") list(APPEND _LIBUNBOUND_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}")
list(APPEND LIBUNBOUND_LIBRARIES "${OPENSSL_LIBRARIES}") list(APPEND _LIBUNBOUND_LIBRARIES "${OPENSSL_LIBRARIES}")
endif() endif()
if (LIBUNBOUND_INCLUDE_DIR AND LIBUNBOUND_LIBRARY) if (LIBUNBOUND_INCLUDE_DIR AND LIBUNBOUND_LIBRARY)
@ -88,15 +89,16 @@ else()
file(STRINGS "${LIBUNBOUND_INCLUDE_DIR}/unbound.h" LIBUNBOUND_H REGEX "^#define UNBOUND_VERSION_M[A-Z]+") file(STRINGS "${LIBUNBOUND_INCLUDE_DIR}/unbound.h" LIBUNBOUND_H REGEX "^#define UNBOUND_VERSION_M[A-Z]+")
string(REGEX REPLACE "^.*MAJOR ([0-9]+).*MINOR ([0-9]+).*MICRO ([0-9]+).*$" "\\1.\\2.\\3" LIBUNBOUND_VERSION "${LIBUNBOUND_H}") string(REGEX REPLACE "^.*MAJOR ([0-9]+).*MINOR ([0-9]+).*MICRO ([0-9]+).*$" "\\1.\\2.\\3" LIBUNBOUND_VERSION "${LIBUNBOUND_H}")
endif () endif ()
endif() endif ()
list(APPEND LIBUNBOUND_LIBRARIES "${LIBUNBOUND_LIBRARY}") list(APPEND _LIBUNBOUND_LIBRARIES "${LIBUNBOUND_LIBRARY}")
endif() set(LIBUNBOUND_LIBRARIES ${_LIBUNBOUND_LIBRARIES} CACHE STRING "libunbound libraries")
include(FindPackageHandleStandardArgs) include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Libunbound find_package_handle_standard_args(Libunbound
REQUIRED_VARS LIBUNBOUND_LIBRARIES LIBUNBOUND_INCLUDE_DIR REQUIRED_VARS LIBUNBOUND_LIBRARIES LIBUNBOUND_INCLUDE_DIR
VERSION_VAR LIBUNBOUND_VERSION VERSION_VAR LIBUNBOUND_VERSION
) )
endif ()
mark_as_advanced(LIBUNBOUND_INCLUDE_DIR LIBUNBOUND_LIBRARIES LIBUNBOUND_LIBRARY) mark_as_advanced(LIBUNBOUND_INCLUDE_DIR LIBUNBOUND_LIBRARIES LIBUNBOUND_LIBRARY)

View File

@ -28,38 +28,37 @@ This module will set the following variables in your project:
#]=======================================================================] #]=======================================================================]
include(FindPkgConfig) find_package(PkgConfig QUIET)
if(PKG_CONFIG_FOUND) if(PKG_CONFIG_FOUND)
pkg_check_modules(PkgLibuv IMPORTED_TARGET GLOBAL QUIET libuv) pkg_check_modules(PkgLibuv IMPORTED_TARGET GLOBAL QUIET libuv)
endif() endif()
if(PkgLibuv_FOUND) if (PkgLibuv_FOUND)
set(LIBUV_INCLUDE_DIR ${PkgLibuv_INCLUDE_DIRS}) set(LIBUV_INCLUDE_DIR ${PkgLibuv_INCLUDE_DIRS} CACHE FILEPATH "libuv include path")
set(LIBUV_LIBRARIES ${PkgLibuv_LIBRARIES}) set(LIBUV_LIBRARIES ${PkgLibuv_LIBRARIES} CACHE STRING "libuv libraries")
set(LIBUV_VERSION ${PkgLibuv_VERSION}) set(LIBUV_VERSION ${PkgLibuv_VERSION})
add_library(Libuv::Libuv ALIAS PkgConfig::PkgLibuv) add_library(Libuv::Libuv ALIAS PkgConfig::PkgLibuv)
else() set(Libuv_FOUND ON)
else ()
find_path(LIBUV_INCLUDE_DIR uv.h find_path(LIBUV_INCLUDE_DIR uv.h
HINTS HINTS
"${LIBUV_DIR}" "${LIBUV_DIR}"
"${LIBUV_DIR}/include" "${LIBUV_DIR}/include"
) )
find_library(LIBUV_LIBRARY NAMES uv libuv find_library(LIBUV_LIBRARIES NAMES uv libuv
HINTS HINTS
"${LIBUV_DIR}" "${LIBUV_DIR}"
"${LIBUV_DIR}/lib" "${LIBUV_DIR}/lib"
) )
set(LIBUV_LIBRARIES "")
if (LIBUV_INCLUDE_DIR AND LIBUV_LIBRARY) if (LIBUV_INCLUDE_DIR AND LIBUV_LIBRARY)
if (NOT TARGET Libuv::Libuv) if (NOT TARGET Libuv::Libuv)
add_library(Libuv::Libuv UNKNOWN IMPORTED) add_library(Libuv::Libuv UNKNOWN IMPORTED)
set_target_properties(Libuv::Libuv PROPERTIES set_target_properties(Libuv::Libuv PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${LIBUV_INCLUDE_DIR}" INTERFACE_INCLUDE_DIRECTORIES "${LIBUV_INCLUDE_DIR}"
IMPORTED_LINK_INTERFACE_LANGUAGES "C" IMPORTED_LINK_INTERFACE_LANGUAGES "C"
IMPORTED_LOCATION "${LIBUV_LIBRARY}" IMPORTED_LOCATION "${LIBUV_LIBRARIES}"
) )
endif () endif ()
@ -71,15 +70,13 @@ else()
endif () endif ()
string(REGEX REPLACE "^.*_MAJOR ([0-9]+).*_MINOR ([0-9]+).*_PATCH ([0-9]+).*$" "\\1.\\2.\\3" LIBUV_VERSION "${LIBUV_VER_H}") string(REGEX REPLACE "^.*_MAJOR ([0-9]+).*_MINOR ([0-9]+).*_PATCH ([0-9]+).*$" "\\1.\\2.\\3" LIBUV_VERSION "${LIBUV_VER_H}")
endif () endif ()
endif() endif ()
list(APPEND LIBUV_LIBRARIES "${LIBUV_LIBRARY}") include(FindPackageHandleStandardArgs)
endif() find_package_handle_standard_args(Libuv
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Libuv
REQUIRED_VARS LIBUV_LIBRARIES LIBUV_INCLUDE_DIR REQUIRED_VARS LIBUV_LIBRARIES LIBUV_INCLUDE_DIR
VERSION_VAR LIBUV_VERSION VERSION_VAR LIBUV_VERSION
) )
endif ()
mark_as_advanced(LIBUV_INCLUDE_DIR LIBUV_LIBRARIES LIBUV_LIBRARY) mark_as_advanced(LIBUV_INCLUDE_DIR LIBUV_LIBRARIES)

View File

@ -30,18 +30,19 @@ This module will set the following variables in your project:
#]=======================================================================] #]=======================================================================]
include(FindPkgConfig) find_package(PkgConfig QUIET)
if(PKG_CONFIG_FOUND) if(PKG_CONFIG_FOUND)
pkg_check_modules(PkgNettle IMPORTED_TARGET GLOBAL nettle) pkg_check_modules(PkgNettle IMPORTED_TARGET GLOBAL nettle)
pkg_check_modules(PkgHogweed IMPORTED_TARGET GLOBAL QUIET hogweed) pkg_check_modules(PkgHogweed IMPORTED_TARGET GLOBAL QUIET hogweed)
endif() endif()
if(PkgNettle_FOUND AND PkHogweed_FOUND) if(PkgNettle_FOUND AND PkHogweed_FOUND)
set(NETTLE_INCLUDE_DIR ${PkgNettle_INCLUDE_DIRS} ${PkgHogweed_INCLUDE_DIRS}) set(NETTLE_INCLUDE_DIR ${PkgNettle_INCLUDE_DIRS} ${PkgHogweed_INCLUDE_DIRS} CACHE FILEPATH "Nettle include path")
set(NETTLE_LIBRARIES ${PkgNettle_LIBRARIES} ${PkgHogweed_LIBRARIES}) set(NETTLE_LIBRARIES ${PkgNettle_LIBRARIES} ${PkgHogweed_LIBRARIES} CACHE STRING "Nettle libraries")
set(NETTLE_VERSION ${PkgNettle_VERSION}) set(NETTLE_VERSION ${PkgNettle_VERSION})
add_library(Nettle::Nettle ALIAS PkgConfig::PkgNettle) add_library(Nettle::Nettle ALIAS PkgConfig::PkgNettle)
add_library(Nettle::Hogweed ALIAS PkgConfig::PkgHogweed) add_library(Nettle::Hogweed ALIAS PkgConfig::PkgHogweed)
set(Nettle_FOUND ON)
else() else()
find_path(NETTLE_INCLUDE_DIR nettle/version.h find_path(NETTLE_INCLUDE_DIR nettle/version.h
HINTS HINTS
@ -61,16 +62,17 @@ else()
"${NETTLE_DIR}/lib" "${NETTLE_DIR}/lib"
) )
set(NETTLE_LIBRARIES "") set(_NETTLE_LIBRARIES ${NETTLE_LIBRARY} ${HOGWEED_LIBRARY})
# May need gmp library on Unix. # May need gmp library on Unix.
if (UNIX) if (UNIX)
find_library(NETTLE_GMP_LIBRARY gmp) find_library(NETTLE_GMP_LIBRARY gmp)
endif ()
if (NETTLE_GMP_LIBRARY) if (NETTLE_GMP_LIBRARY)
list(APPEND NETTLE_LIBRARIES "${NETTLE_GMP_LIBRARY}") list(APPEND _NETTLE_LIBRARIES "${NETTLE_GMP_LIBRARY}")
endif ()
endif () endif ()
set(NETTLE_LIBRARIES ${_NETTLE_LIBRARIES} CACHE STRING "nettle libraries")
if (NETTLE_INCLUDE_DIR AND NETTLE_LIBRARY AND HOGWEED_LIBRARY) if (NETTLE_INCLUDE_DIR AND NETTLE_LIBRARY AND HOGWEED_LIBRARY)
if (NOT TARGET Nettle::Nettle) if (NOT TARGET Nettle::Nettle)
@ -98,12 +100,12 @@ else()
endif() endif()
list(APPEND NETTLE_LIBRARIES "${NETTLE_LIBRARY}" "${HOGWEED_LIBRARY}") list(APPEND NETTLE_LIBRARIES "${NETTLE_LIBRARY}" "${HOGWEED_LIBRARY}")
endif()
include(FindPackageHandleStandardArgs) include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Nettle find_package_handle_standard_args(Nettle
REQUIRED_VARS NETTLE_LIBRARIES NETTLE_INCLUDE_DIR REQUIRED_VARS NETTLE_LIBRARIES NETTLE_INCLUDE_DIR
VERSION_VAR NETTLE_VERSION VERSION_VAR NETTLE_VERSION
) )
endif()
mark_as_advanced(NETTLE_INCLUDE_DIR NETTLE_LIBRARIES NETTLE_LIBRARY HOGWEED_LIBRARY) mark_as_advanced(NETTLE_INCLUDE_DIR NETTLE_LIBRARIES NETTLE_LIBRARY HOGWEED_LIBRARY NETTLE_GMP_LIBRARY)