Revert "TODO epan/dissectors/asn1/kerberos/packet-kerberos-template.c new GSS flags"
[wireshark-sm.git] / cmake / modules / FindMaxMindDB.cmake
bloba71a4ed770570b57e04bc3343b6df4da175881ad
2 # - Try to find libmaxminddb.
3 # Once done this will define
4 #  MAXMINDDB_FOUND - System has libmaxminddb
5 #  MAXMINDDB_INCLUDE_DIRS - The libmaxminddb include directories
6 #  MAXMINDDB_LIBRARIES - The libraries needed to use libmaxminddb
7 #  MAXMINDDB_DEFINITIONS - Compiler switches required for using libmaxminddb
8 #  MAXMINDDB_DLL_DIR      - (Windows) Path to the MaxMindDB DLL.
9 #  MAXMINDDB_DLL          - (Windows) Name of the MaxMindDB DLL.
11 IF (MAXMINDDB_INCLUDE_DIRS)
12   # Already in cache, be silent
13   SET(MAXMINDDB_FIND_QUIETLY TRUE)
14 ENDIF (MAXMINDDB_INCLUDE_DIRS)
16 INCLUDE(FindWSWinLibs)
17 FindWSWinLibs("libmaxminddb-.*" "MAXMINDDB_HINTS")
19 IF (NOT USE_REPOSITORY)
20   find_package(PkgConfig)
21   pkg_check_modules(PC_LIBMAXMINDDB QUIET libmaxminddb)
22   set(MAXMINDDB_DEFINITIONS ${PC_LIBMAXMINDDB_CFLAGS_OTHER})
23 endif()
25 FIND_PATH(MAXMINDDB_INCLUDE_DIR maxminddb.h
26   HINTS
27     ${PC_LIBMAXMINDDB_INCLUDEDIR} ${PC_LIBMAXMINDDB_INCLUDE_DIRS}
28      "${MAXMINDDB_HINTS}/include"
29   PATH_SUFFIXES maxminddb
32 find_library(MAXMINDDB_LIBRARY
33   NAMES
34     maxminddb libmaxminddb libmaxminddb-0
35   HINTS
36     ${PC_LIBMAXMINDDB_LIBDIR} ${PC_LIBMAXMINDDB_LIBRARY_DIRS}
37     "${MAXMINDDB_HINTS}/lib"
40 include(FindPackageHandleStandardArgs)
41 # handle the QUIETLY and REQUIRED arguments and set MAXMINDDB_FOUND to TRUE
42 # if all listed variables are TRUE
43 find_package_handle_standard_args(MaxMindDB DEFAULT_MSG
44                                   MAXMINDDB_LIBRARY MAXMINDDB_INCLUDE_DIR)
46 IF(MAXMINDDB_FOUND)
47   INCLUDE(CMakePushCheckState)
48   CMAKE_PUSH_CHECK_STATE()
49   SET(MAXMINDDB_LIBRARIES ${MAXMINDDB_LIBRARY} )
50   SET(MAXMINDDB_INCLUDE_DIRS ${MAXMINDDB_INCLUDE_DIR} )
51   INCLUDE(CheckFunctionExists)
52   SET(CMAKE_REQUIRED_INCLUDES ${MAXMINDDB_INCLUDE_DIRS})
53   SET(CMAKE_REQUIRED_LIBRARIES ${MAXMINDDB_LIBRARIES})
54   CMAKE_POP_CHECK_STATE()
55   if (WIN32)
56     set ( MAXMINDDB_DLL_DIR "${MAXMINDDB_HINTS}/bin"
57       CACHE PATH "Path to the MaxMindDB DLL"
58     )
59     file( GLOB _MAXMINDDB_dll RELATIVE "${MAXMINDDB_DLL_DIR}"
60       "${MAXMINDDB_DLL_DIR}/libmaxminddb*.dll"
61     )
62     set ( MAXMINDDB_DLL ${_MAXMINDDB_dll}
63       # We're storing filenames only. Should we use STRING instead?
64       CACHE FILEPATH "MaxMindDB DLL file name"
65     )
66     mark_as_advanced( MAXMINDDB_DLL_DIR MAXMINDDB_DLL )
67   endif()
68   if(MAXMINDDB_INCLUDE_DIR)
69     set(_version_regex "^#define[ \t]+PACKAGE_VERSION[ \t]+\"([^\"]+)\".*")
70     file(STRINGS "${MAXMINDDB_INCLUDE_DIR}/maxminddb.h" MAXMINDDB_VERSION REGEX "${_version_regex}")
71     string(REGEX REPLACE "${_version_regex}" "\\1" MAXMINDDB_VERSION "${MAXMINDDB_VERSION}")
72     unset(_version_regex)
73   endif()
74 ELSE(MAXMINDDB_FOUND)
75   SET(MAXMINDDB_LIBRARIES )
76   SET(MAXMINDDB_INCLUDE_DIRS )
77   SET(MAXMINDDB_DLL_DIR )
78   SET(MAXMINDDB_DLL )
79 ENDIF(MAXMINDDB_FOUND)
81 MARK_AS_ADVANCED( MAXMINDDB_LIBRARIES MAXMINDDB_INCLUDE_DIRS )