/+junk/libgego

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/%2Bjunk/libgego

« back to all changes in this revision

Viewing changes to cmake/FindLibSoup2.cmake

  • Committer: Gustav Hartvigsson
  • Date: 2015-07-08 16:20:14 UTC
  • Revision ID: gustav.hartvigsson@gmail.com-20150708162014-z9dm9494n08fbvr5
* Fixed build... sort of

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# - Try to find libsoup
 
2
# Find libsoup headers, libraries and the answer to all questions.
 
3
#
 
4
#  LIBSOUP2_FOUND                True if libsoup2 got found
 
5
#  LIBSOUP2_INCLUDE_DIRS         Location of libsoup2 headers 
 
6
#  LIBSOUP2_LIBRARIES            List of libaries to use libsoup2
 
7
#  LIBSOUP2_LIBRARY_DIRS         Location of libsoup2 library
 
8
#
 
9
#  LIBSOUP22_FOUND               True if libsoup2.2 got found
 
10
#  LIBSOUP22_INCLUDE_DIRS        Location of libsoup2.2 headers 
 
11
#  LIBSOUP22_LIBRARIES           List of libaries to use libsoup2.2
 
12
#  LIBSOUP22_LIBRARY_DIRS        Location of libsoup2.2 library
 
13
#
 
14
#  LIBSOUP24_FOUND               True if libsoup2.4 got found
 
15
#  LIBSOUP24_INCLUDE_DIRS        Location of libsoup2.4 headers 
 
16
#  LIBSOUP24_LIBRARIES           List of libaries to use libsoup2.4
 
17
#  LIBSOUP24_LIBRARY_DIRS        Location of libsoup2.4 library
 
18
#
 
19
#  Set LIBSOUP2_MIN_VERSION to find libsoup2.2 or libsoup2.4 if only 
 
20
#  one of both libraries is supported
 
21
#
 
22
#  Don't use LIBSOUP2_MIN_VERSION if you want to support 
 
23
#  libsoup2.2 and libsoup2.4. 
 
24
#  Instead use LIBSPOUP22_MIN_VERSION and LIBSPOUP24_MIN_VERSION.
 
25
#
 
26
#  Set LIBSPOUP22_MIN_VERSION to find libsoup2.2 which version is
 
27
#  greater than LIBSPOUP22_MIN_VERSION
 
28
#
 
29
#  Set LIBSPOUP24_MIN_VERSION to find libsoup2.4 which version is
 
30
#  greater than LIBSPOUP24_MIN_VERSION
 
31
#
 
32
#  WARNING: It is not possible to set LIBSPOUP22_MIN_VERSION 
 
33
#  and support any version of libsoup2.4 at the same time.
 
34
#  In this situation you have to set LIBSPOUP24_MIN_VERSION also.
 
35
#  The same applies to LIBSPOUP24_MIN_VERSION and libsoup2.2.
 
36
#
 
37
#  Copyright (c) 2007 Daniel Gollub <dgollub@suse.de>
 
38
#  Copyright (c) 2008 Bjoern Ricks  <bjoern.ricks@gmail.com>
 
39
#
 
40
#  Redistribution and use is allowed according to the terms of the New
 
41
#  BSD license.
 
42
#  For details see the accompanying COPYING-CMAKE-SCRIPTS file.
 
43
#
 
44
 
 
45
INCLUDE( FindPkgConfig )
 
46
 
 
47
IF ( LibSoup2_FIND_REQUIRED )
 
48
        SET( _pkgconfig_REQUIRED "REQUIRED" )
 
49
ELSE( LibSoup2_FIND_REQUIRED )
 
50
        SET( _pkgconfig_REQUIRED "" )   
 
51
ENDIF ( LibSoup2_FIND_REQUIRED )
 
52
 
 
53
IF ( LIBSOUP2_MIN_VERSION )
 
54
        STRING(REGEX REPLACE "^(2)(\\.)([0-9]*)(\\.?)(.*)" "\\3" LIBSOUP2_VERSION_MINOR "${LIBSOUP2_MIN_VERSION}")
 
55
        IF ( LIBSOUP2_VERSION_MINOR EQUAL "2" )
 
56
                SET( LIBSOUP22_MIN_VERSION "${LIBSOUP2_MIN_VERSION}" )
 
57
        ELSE ( LIBSOUP2_VERSION_MINOR EQUAL "2" )
 
58
                SET( LIBSOUP24_MIN_VERSION "${LIBSOUP2_MIN_VERSION}" )
 
59
        ENDIF ( LIBSOUP2_VERSION_MINOR EQUAL "2" )
 
60
ENDIF ( LIBSOUP2_MIN_VERSION )
 
61
 
 
62
# try to find libsoup2.2>=LIBSOUP22_MIN_VERSION
 
63
IF ( LIBSOUP22_MIN_VERSION )
 
64
        PKG_SEARCH_MODULE( LIBSOUP22 libsoup-2.2>=${LIBSOUP22_MIN_VERSION} libsoup2>=${LIBSOUP22_MIN_VERSION} )
 
65
ENDIF ( LIBSOUP22_MIN_VERSION )
 
66
 
 
67
# try to find libsoup2.4>=LIBSOUP24_MIN_VERSION
 
68
IF ( LIBSOUP24_MIN_VERSION )
 
69
        PKG_SEARCH_MODULE( LIBSOUP24 libsoup-2.4>=${LIBSOUP24_MIN_VERSION} libsoup2>=${LIBSOUP24_MIN_VERSION} )
 
70
ENDIF ( LIBSOUP24_MIN_VERSION ) 
 
71
 
 
72
# try to find any version of libsoup2.4 if LIBSOUP22_MIN_VERSION is not set
 
73
IF ( NOT LIBSOUP24_FOUND AND NOT LIBSOUP22_MIN_VERSION )
 
74
        PKG_SEARCH_MODULE( LIBSOUP24 libsoup-2.4 libsoup2 )
 
75
ENDIF ( NOT LIBSOUP24_FOUND AND NOT LIBSOUP22_MIN_VERSION)
 
76
 
 
77
# try to find any version of libsoup2.2 if LIBSOUP24_MIN_VERSION is not set
 
78
IF ( NOT LIBSOUP22_FOUND AND NOT LIBSOUP24_MIN_VERSION )
 
79
        PKG_SEARCH_MODULE( LIBSOUP22 libsoup-2.2 libsoup2 )
 
80
ENDIF ( NOT LIBSOUP22_FOUND AND NOT LIBSOUP24_MIN_VERSION)
 
81
 
 
82
# set LIBSOUP2_ variables
 
83
IF ( LIBSOUP24_FOUND )
 
84
        # prefer libsoup2.4 to libsoup2.2 if both are found
 
85
        SET( LIBSOUP2_FOUND ${LIBSOUP24_FOUND} CACHE INTERNAL "" )
 
86
        SET( LIBSOUP2_INCLUDE_DIRS ${LIBSOUP24_INCLUDE_DIRS} CACHE INTERNAL "" )
 
87
        foreach(i ${LIBSOUP24_LIBRARIES})
 
88
                find_library(_libsoup2_LIBRARY NAMES ${i} HINTS ${LIBSOUP24_LIBRARY_DIRS})
 
89
                LIST(APPEND LIBSOUP2_LIBRARIES ${_libsoup2_LIBRARY})
 
90
                unset(_libsoup2_LIBRARY CACHE)
 
91
        endforeach(i)
 
92
        SET( LIBSOUP2_VERSION ${LIBSOUP24_VERSION} CACHE INTERNAL "" )
 
93
ELSEIF ( LIBSOUP22_FOUND )
 
94
        SET( LIBSOUP2_FOUND ${LIBSOUP22_FOUND} CACHE INTERNAL "" )
 
95
        SET( LIBSOUP2_INCLUDE_DIRS ${LIBSOUP22_INCLUDE_DIRS} CACHE INTERNAL "" )
 
96
        foreach(i ${LIBSOUP22_LIBRARIES})
 
97
                find_library(_libsoup2_LIBRARY NAMES ${i} HINTS ${LIBSOUP22_LIBRARY_DIRS})
 
98
                LIST(APPEND LIBSOUP2_LIBRARIES ${_libsoup2_LIBRARY})
 
99
                unset(_libsoup2_LIBRARY CACHE)
 
100
        endforeach(i)
 
101
        SET( LIBSOUP2_VERSION ${LIBSOUP22_VERSION} CACHE INTERNAL "" )
 
102
ELSEIF( PKG_CONFIG_FOUND AND LibSoup2_FIND_REQUIRED )
 
103
        # raise an error if both libs are not found 
 
104
        # and FIND_PACKAGE( LibSoup2 REQUIRED ) was called
 
105
        MESSAGE( SEND_ERROR "package libsoup2 not found" )
 
106
ENDIF ( LIBSOUP24_FOUND )
 
107
 
 
108
IF( NOT LIBSOUP2_FOUND AND NOT PKG_CONFIG_FOUND )
 
109
        # WARNING:
 
110
        # This case is executed if pkg-config isn't installed.
 
111
        # Currently in this case it is only checked if libsoup2.2 is available.
 
112
        # Therefore please don't use this cmake module without pkg-config!
 
113
        FIND_PATH( _libsoup2_include_DIR libsoup/soup.h PATH_SUFFIXES libsoup libsoup-2.2 )
 
114
        FIND_LIBRARY( _libsoup2_LIBRARY soup-2.2)
 
115
 
 
116
        IF ( _libsoup2_include_DIR AND _libsoup2_LIBRARY )
 
117
                SET ( _libsoup2_FOUND TRUE )
 
118
        ENDIF ( _libsoup2_include_DIR AND _libsoup2_LIBRARY )
 
119
 
 
120
        IF ( _libsoup2_FOUND )
 
121
                SET ( LIBSOUP2_INCLUDE_DIRS ${_libsoup2_include_DIR} )
 
122
                SET ( LIBSOUP2_LIBRARIES ${_libsoup2_LIBRARY} )
 
123
        
 
124
                # find requited glib2
 
125
                IF( NOT GLIB2_FOUND )
 
126
                        FIND_PACKAGE( GLIB2 REQUIRED )
 
127
                        IF ( GLIB2_FOUND )
 
128
                                SET ( LIBSOUP2_INCLUDE_DIRS ${LIBSOUP2_INCLUDE_DIRS} ${GLIB2_INCLUDE_DIRS} )
 
129
                                SET ( LIBSOUP2_LIBRARIES ${LIBSOUP2_LIBRARIES} ${GLIB2_LIBRARIES} )
 
130
                        ENDIF ( GLIB2_FOUND )
 
131
                ENDIF( NOT GLIB2_FOUND )
 
132
                
 
133
                # find required libxml2
 
134
                IF( NOT LIBXML2_FOUND )
 
135
                        FIND_PACKAGE( LibXml2 REQUIRED )
 
136
                        IF ( LIBXML2_FOUND )
 
137
                                SET ( LIBSOUP2_INCLUDE_DIRS ${LIBSOUP2_INCLUDE_DIRS} ${LIBXML2_INCLUDE_DIRS} )
 
138
                                SET ( LIBSOUP2_LIBRARIES ${LIBSOUP2_LIBRARIES} ${LIBXML2_LIBRARIES} )
 
139
                        ENDIF( LIBXML2_FOUND )
 
140
                ENDIF( NOT LIBXML2_FOUND )
 
141
                
 
142
                # find required gnutls
 
143
                IF( NOT GNUTLS_FOUND )
 
144
                        FIND_PACKAGE( GNUTLS REQUIRED )
 
145
                        IF ( GNUTLS_FOUND )
 
146
                                SET ( LIBSOUP2_INCLUDE_DIRS ${LIBSOUP2_INCLUDE_DIRS} ${GNUTLS_INCLUDE_DIRS} )
 
147
                                SET ( LIBSOUP2_LIBRARIES ${LIBSOUP2_LIBRARIES} ${GNUTLS_LIBRARIES} )
 
148
                        ENDIF( GNUTLS_FOUND )
 
149
                ENDIF( NOT GNUTLS_FOUND )
 
150
        ENDIF ( _libsoup2_FOUND )
 
151
 
 
152
        MARK_AS_ADVANCED( _libsoup2_include_DIR  _libsoup2_LIBRARY )
 
153
 
 
154
        # Report results
 
155
        IF ( LIBSOUP2_LIBRARIES AND LIBSOUP2_INCLUDE_DIRS AND _libsoup2_FOUND ) 
 
156
                SET( LIBSOUP2_FOUND 1 )
 
157
                IF ( NOT LibSoup2_FIND_QUIETLY )
 
158
                        MESSAGE( STATUS "Found libsoup2: ${_libsoup2_LIBRARY}" )
 
159
                ENDIF ( NOT LibSoup2_FIND_QUIETLY )
 
160
        ELSE ( LIBSOUP2_LIBRARIES AND LIBSOUP_INCLUDE_DIRS AND _libsoup2_FOUND )        
 
161
                IF ( LibSoup2_FIND_REQUIRED )
 
162
                        MESSAGE( SEND_ERROR "Could NOT find libsoup2" )
 
163
                ELSE ( LibSoup2_FIND_REQUIRED )
 
164
                        IF ( NOT LibSoup2_FIND_QUIETLY )
 
165
                                MESSAGE( STATUS "Could NOT find libsoup2" )     
 
166
                        ENDIF ( NOT LibSoup2_FIND_QUIETLY )
 
167
                ENDIF ( LibSoup2_FIND_REQUIRED )
 
168
        ENDIF ( LIBSOUP2_LIBRARIES AND LIBSOUP2_INCLUDE_DIRS AND _libsoup2_FOUND )
 
169
ENDIF( NOT LIBSOUP2_FOUND AND NOT PKG_CONFIG_FOUND )
 
170
 
 
171
# Hide advanced variables from CMake GUIs
 
172
MARK_AS_ADVANCED( LIBSOUP2_LIBRARIES LIBSOUP2_INCLUDE_DIRS )