1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
# - Locate Miniupnpc
#
# This module defines:
#
# MINIUPNPC_INCLUDE_DIR
# MINIUPNPC_LIBRARY
# MINIUPNPC_FOUND
# MINIUPNPC_API_VERSION_STRING, human-readable string containing the MINIUPNPC_API_VERSION
#
# If Miniupnpc is successfully detected, it also adds an IMPORTED library target: imported-miniupnpc
#
# To find Miniupnpc, specify:
# find_package(Miniupnpc [MINIUPNPC_API_VERSION] [REQUIRED])
#
# NOTES:
# - If a "version" is specified in the find_package command, it will be compared against the MINIUPNPC_API_VERSION,
# *NOT* the MINIUPNPC_VERSION.
# - MINIUPNPC_API_VERSION was added in MINIUPNPC_VERSION 1.7. Version detection for earlier Miniupnpc releases that
# lack the MINIUPNPC_API_VERSION define is not currently supported.
#
find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(_MINIUPNPC_PKGCONFIG QUIET libminiupnpc)
endif()
find_path(MINIUPNPC_INCLUDE_DIR NAMES miniupnpc/miniupnpc.h HINTS ${_MINIUPNPC_PKGCONFIG_INCLUDEDIR})
find_library(MINIUPNPC_LIBRARY NAMES miniupnpc libminiupnpc HINTS ${_MINIUPNPC_PKGCONFIG_LIBDIR})
if(MINIUPNPC_INCLUDE_DIR)
set(MINIUPNPC_INCLUDE_DIR "${MINIUPNPC_INCLUDE_DIR}/miniupnpc")
endif()
if(MINIUPNPC_INCLUDE_DIR AND EXISTS "${MINIUPNPC_INCLUDE_DIR}/miniupnpc.h")
# Extract MINIUPNPC_API_VERSION from miniupnpc.h
file(STRINGS "${MINIUPNPC_INCLUDE_DIR}/miniupnpc.h" MINIUPNPC_API_VERSION_LINE REGEX "^#define[ \t]+MINIUPNPC_API_VERSION[ \t]+[0-9]+")
if(MINIUPNPC_API_VERSION_LINE)
string(REGEX REPLACE "^#define[ \t]+MINIUPNPC_API_VERSION[ \t]+([0-9]+)" "\\1" MINIUPNPC_API_VERSION_STRING "${MINIUPNPC_API_VERSION_LINE}")
else()
set(MINIUPNPC_API_VERSION_STRING "")
endif()
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
Miniupnpc
REQUIRED_VARS MINIUPNPC_INCLUDE_DIR MINIUPNPC_LIBRARY
VERSION_VAR MINIUPNPC_API_VERSION_STRING
)
if(MINIUPNPC_FOUND)
add_library(imported-miniupnpc UNKNOWN IMPORTED)
set_target_properties(imported-miniupnpc
PROPERTIES
IMPORTED_LOCATION ${MINIUPNPC_LIBRARY}
INTERFACE_INCLUDE_DIRECTORIES ${MINIUPNPC_INCLUDE_DIR}
)
endif()
mark_as_advanced(MINIUPNPC_INCLUDE_DIR MINIUPNPC_LIBRARY)
|