File: FindUlfius.cmake

package info (click to toggle)
ulfius 2.7.15-2.2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,856 kB
  • sloc: ansic: 23,025; makefile: 708; sh: 140
file content (106 lines) | stat: -rw-r--r-- 3,904 bytes parent folder | download | duplicates (3)
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#.rst:
# FindUlfius
# -----------
#
# Find Ulfius
#
# Find Ulfius headers and libraries.
#
# ::
#
#   ULFIUS_FOUND          - True if Ulfius found.
#   ULFIUS_INCLUDE_DIRS   - Where to find ulfius.h.
#   ULFIUS_LIBRARIES      - List of libraries when using Ulfius.
#   ULFIUS_VERSION_STRING - The version of Ulfius found.

#=============================================================================
# Copyright 2018 Nicolas Mora <mail@babelouest.org>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License
# as published by the Free Software Foundation;
# version 2.1 of the License.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the
# GNU GENERAL PUBLIC LICENSE for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library.	If not, see <http://www.gnu.org/licenses/>.
#=============================================================================

find_package(PkgConfig QUIET)
pkg_check_modules(PC_ULFIUS QUIET ulfius)

find_path(ULFIUS_INCLUDE_DIR
        NAMES ulfius.h
        HINTS ${PC_ULFIUS_INCLUDEDIR} ${PC_ULFIUS_INCLUDE_DIRS})

find_library(ULFIUS_LIBRARY
        NAMES ulfius libulfius
        HINTS ${PC_ULFIUS_LIBDIR} ${PC_ULFIUS_LIBRARY_DIRS})

set(ULFIUS_VERSION_STRING 0.0.0)
if (PC_ULFIUS_VERSION)
    set(ULFIUS_VERSION_STRING ${PC_ULFIUS_VERSION})
elseif (ULFIUS_INCLUDE_DIR AND EXISTS "${ULFIUS_INCLUDE_DIR}/ulfius.h")
    set(regex_ulfius_version "^#define[ \t]+ULFIUS_VERSION[ \t]+([^\"]+).*")
    file(STRINGS "${ULFIUS_INCLUDE_DIR}/ulfius-cfg.h" ulfius_version REGEX "${regex_ulfius_version}")
    string(REGEX REPLACE "${regex_ulfius_version}" "\\1" ULFIUS_VERSION_STRING "${ulfius_version}")
    unset(regex_ulfius_version)
    unset(ulfius_version)

    set(regex_ulfius_disable_curl "^#define[ \t]+U_DISABLE_CURL.*")
    file(STRINGS "${ULFIUS_INCLUDE_DIR}/ulfius-cfg.h" ulfius_disable_curl REGEX "${regex_ulfius_disable_curl}")
    if (NOT "${ulfius_disable_curl}" STREQUAL "")
      set(WITH_CURL OFF)
    else ()
      set(WITH_CURL ON)
    endif()
    unset(regex_ulfius_disable_curl)
    unset(ulfius_disable_curl)

    set(regex_ulfius_disable_jansson "^#define[ \t]+U_DISABLE_JANSSON.*")
    file(STRINGS "${ULFIUS_INCLUDE_DIR}/ulfius-cfg.h" ulfius_disable_jansson REGEX "${regex_ulfius_disable_jansson}")
    if (NOT "${ulfius_disable_jansson}" STREQUAL "")
      set(WITH_JANSSON OFF)
    else ()
      set(WITH_JANSSON ON)
    endif()
    unset(regex_ulfius_disable_jansson)
    unset(ulfius_disable_jansson)

    set(regex_ulfius_disable_gnutls "^#define[ \t]+U_DISABLE_GNUTLS.*")
    file(STRINGS "${ULFIUS_INCLUDE_DIR}/ulfius-cfg.h" ulfius_disable_gnutls REGEX "${regex_ulfius_disable_gnutls}")
    if (NOT "${ulfius_disable_gnutls}" STREQUAL "")
      set(WITH_GNUTLS OFF)
    else ()
      set(WITH_GNUTLS ON)
    endif()
    unset(regex_ulfius_disable_gnutls)
    unset(ulfius_disable_gnutls)

    set(regex_ulfius_disable_websocket "^#define[ \t]+U_DISABLE_WEBSOCKET.*")
    file(STRINGS "${ULFIUS_INCLUDE_DIR}/ulfius-cfg.h" ulfius_disable_websocket REGEX "${regex_ulfius_disable_websocket}")
    if (NOT "${ulfius_disable_websocket}" STREQUAL "")
      set(WITH_WEBSOCKET OFF)
    else ()
      set(WITH_WEBSOCKET ON)
    endif()
    unset(regex_ulfius_disable_websocket)
    unset(ulfius_disable_websocket)

endif ()

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Ulfius
        REQUIRED_VARS ULFIUS_LIBRARY ULFIUS_INCLUDE_DIR
        VERSION_VAR ULFIUS_VERSION_STRING)

if (ULFIUS_FOUND)
    set(ULFIUS_LIBRARIES ${ULFIUS_LIBRARY})
    set(ULFIUS_INCLUDE_DIRS ${ULFIUS_INCLUDE_DIR})
endif ()

mark_as_advanced(ULFIUS_INCLUDE_DIR ULFIUS_LIBRARY)