diff options
Diffstat (limited to 'meson.build')
-rw-r--r-- | meson.build | 88 |
1 files changed, 58 insertions, 30 deletions
diff --git a/meson.build b/meson.build index a005021a3..718197322 100644 --- a/meson.build +++ b/meson.build | |||
@@ -2,7 +2,7 @@ | |||
2 | project('gnunet', 'c', license: 'AGPLv3', | 2 | project('gnunet', 'c', license: 'AGPLv3', |
3 | version: run_command('sh', 'contrib/get_version.sh', check: true).stdout().strip()) | 3 | version: run_command('sh', 'contrib/get_version.sh', check: true).stdout().strip()) |
4 | 4 | ||
5 | compiler = meson.get_compiler('c') | 5 | cc = meson.get_compiler('c') |
6 | incdir = include_directories('src/include') | 6 | incdir = include_directories('src/include') |
7 | cdata = configuration_data() | 7 | cdata = configuration_data() |
8 | 8 | ||
@@ -32,10 +32,10 @@ cdata.set('extractor', 0) | |||
32 | 32 | ||
33 | 33 | ||
34 | # Various checks | 34 | # Various checks |
35 | if compiler.has_member ('struct sockaddr_in', 'sin_len', prefix : ['#include <sys/types.h>', '#include <sys/socket.h>', '#include <netinet/in.h>']) | 35 | if cc.has_member ('struct sockaddr_in', 'sin_len', prefix : ['#include <sys/types.h>', '#include <sys/socket.h>', '#include <netinet/in.h>']) |
36 | add_project_arguments('-DHAVE_SOCKADDR_IN_SIN_LEN', language: 'c') | 36 | add_project_arguments('-DHAVE_SOCKADDR_IN_SIN_LEN', language: 'c') |
37 | endif | 37 | endif |
38 | if compiler.has_member ('struct sockaddr_un', 'sun_len', prefix : ['#include <sys/types.h>', '#include <sys/socket.h>', '#include <sys/un.h>']) | 38 | if cc.has_member ('struct sockaddr_un', 'sun_len', prefix : ['#include <sys/types.h>', '#include <sys/socket.h>', '#include <sys/un.h>']) |
39 | add_project_arguments('-DHAVE_SOCKADDR_UN_SUN_LEN', language: 'c') | 39 | add_project_arguments('-DHAVE_SOCKADDR_UN_SUN_LEN', language: 'c') |
40 | endif | 40 | endif |
41 | 41 | ||
@@ -61,10 +61,10 @@ add_project_arguments('-DHAVE_CONFIG_H', language : 'c') | |||
61 | # Linker settings | 61 | # Linker settings |
62 | # Compiler settings | 62 | # Compiler settings |
63 | add_project_arguments('-fno-strict-aliasing', language : 'c') | 63 | add_project_arguments('-fno-strict-aliasing', language : 'c') |
64 | if compiler.has_argument('-Wno-address-of-packed-member') | 64 | if cc.has_argument('-Wno-address-of-packed-member') |
65 | add_project_arguments('-Wno-address-of-packed-member', language : 'c') | 65 | add_project_arguments('-Wno-address-of-packed-member', language : 'c') |
66 | endif | 66 | endif |
67 | if compiler.has_argument('-Wno-tautological-constant-out-of-range-compare') | 67 | if cc.has_argument('-Wno-tautological-constant-out-of-range-compare') |
68 | add_project_arguments('-Wno-tautological-constant-out-of-range-compare', language : 'c') | 68 | add_project_arguments('-Wno-tautological-constant-out-of-range-compare', language : 'c') |
69 | endif | 69 | endif |
70 | 70 | ||
@@ -88,21 +88,49 @@ endif | |||
88 | 88 | ||
89 | 89 | ||
90 | # FIXME: Not all dependencies here yet | 90 | # FIXME: Not all dependencies here yet |
91 | ltdl_dep = compiler.find_library('ltdl', required : true) | 91 | ltdl_dep = dependency ('libltdl', required: false) |
92 | unistr_dep = compiler.find_library('unistring', required : true) | 92 | if not ltdl_dep.found() |
93 | sqlite_dep = compiler.find_library('sqlite3', required : true) | 93 | ltdl_dep = cc.find_library('ltdl', required : true) |
94 | curl_dep = dependency('libcurl') | 94 | endif |
95 | zlib_dep = dependency('zlib') | 95 | unistr_dep = dependency('libunistring', required : false) |
96 | mhd_dep = dependency('libmicrohttpd') | 96 | if not unistr_dep.found() |
97 | json_dep = compiler.find_library('jansson', required : true) | 97 | unistr_dep = cc.find_library('unistring', required : true) |
98 | gcrypt_dep = dependency('libgcrypt') | 98 | endif |
99 | gnutls_dep = compiler.find_library('gnutls', required : false) | 99 | sqlite_dep = dependency ('sqlite3', required : false) |
100 | if gnutls_dep.found() == false | 100 | if not sqlite_dep.found() |
101 | gnutls_dep = compiler.find_library('gnutls-dane', required : true) | 101 | sqlite_dep = cc.find_library('sqlite3', required : true) |
102 | endif | 102 | endif |
103 | 103 | curl_dep = dependency('libcurl', required : false) | |
104 | sodium_dep = dependency('libsodium') | 104 | if not curl_dep.found() |
105 | cc = meson.get_compiler('c') | 105 | curl_dep = cc.find_library('curl', required : true) |
106 | endif | ||
107 | zlib_dep = dependency('zlib', required : false) | ||
108 | if not zlib_dep.found() | ||
109 | zlib_dep = cc.find_library('zlib', required : true) | ||
110 | endif | ||
111 | mhd_dep = dependency('libmicrohttpd', required : false) | ||
112 | if not mhd_dep.found() | ||
113 | mhd_dep = cc.find_library('microhttpd', required : true) | ||
114 | endif | ||
115 | json_dep = dependency('libjansson', required : false) | ||
116 | if not json_dep.found() | ||
117 | json_dep = cc.find_library('jansson', required : true) | ||
118 | endif | ||
119 | gcrypt_dep = dependency('libgcrypt', required : false) | ||
120 | if not gcrypt_dep.found() | ||
121 | gcrypt_dep = cc.find_library('gcrypt', required : true) | ||
122 | endif | ||
123 | gnutls_dep = dependency('libgnutls', required : false) | ||
124 | if not gnutls_dep.found() | ||
125 | gnutls_dep = cc.find_library('gnutls', required : false) | ||
126 | if not gnutls_dep.found() | ||
127 | gnutls_dep = cc.find_library('gnutls-dane', required : true) | ||
128 | endif | ||
129 | endif | ||
130 | sodium_dep = dependency('libsodium', required : false) | ||
131 | if not sodium_dep.found() | ||
132 | sodium_dep = cc.find_library('sodium', required : true) | ||
133 | endif | ||
106 | m_dep = cc.find_library('m', required : false) | 134 | m_dep = cc.find_library('m', required : false) |
107 | if m_dep.found() | 135 | if m_dep.found() |
108 | add_project_arguments('-DHAVE_LIBM', language : 'c') | 136 | add_project_arguments('-DHAVE_LIBM', language : 'c') |
@@ -138,22 +166,22 @@ gnunetdeps = [mhd_dep, | |||
138 | 166 | ||
139 | add_project_arguments('-DNEED_LIBGCRYPT_VERSION="1.6.0"', language : 'c') | 167 | add_project_arguments('-DNEED_LIBGCRYPT_VERSION="1.6.0"', language : 'c') |
140 | 168 | ||
141 | if compiler.has_header('sys/time.h') | 169 | if cc.has_header('sys/time.h') |
142 | add_project_arguments('-DHAVE_SYS_TIME_H', language : 'c') | 170 | add_project_arguments('-DHAVE_SYS_TIME_H', language : 'c') |
143 | endif | 171 | endif |
144 | if compiler.has_header('sys/param.h') | 172 | if cc.has_header('sys/param.h') |
145 | add_project_arguments('-DHAVE_SYS_PARAM_H', language : 'c') | 173 | add_project_arguments('-DHAVE_SYS_PARAM_H', language : 'c') |
146 | endif | 174 | endif |
147 | 175 | ||
148 | if compiler.has_header('idn2.h') | 176 | if cc.has_header('idn2.h') |
149 | add_project_arguments('-DHAVE_LIBIDN2', language : 'c') | 177 | add_project_arguments('-DHAVE_LIBIDN2', language : 'c') |
150 | add_project_arguments('-DHAVE_IDN2_H', language : 'c') | 178 | add_project_arguments('-DHAVE_IDN2_H', language : 'c') |
151 | endif | 179 | endif |
152 | 180 | ||
153 | 181 | ||
154 | # GNUTLS DANE | 182 | # GNUTLS DANE |
155 | if compiler.has_header('gnutls/dane.h') | 183 | if cc.has_header('gnutls/dane.h') |
156 | if compiler.has_function('dane_verify_crt_raw', | 184 | if cc.has_function('dane_verify_crt_raw', |
157 | prefix: '#include <gnutls/dane.h>', | 185 | prefix: '#include <gnutls/dane.h>', |
158 | dependencies: gnutls_dep) | 186 | dependencies: gnutls_dep) |
159 | add_project_arguments('-DHAVE_GNUTLS_DANE', language : 'c') | 187 | add_project_arguments('-DHAVE_GNUTLS_DANE', language : 'c') |
@@ -164,23 +192,23 @@ curl_ssl_check ='''#include <curl/curl.h> | |||
164 | return (CURLSSLSET_OK != curl_global_sslset(CURLSSLBACKEND_GNUTLS, NULL, NULL)); | 192 | return (CURLSSLSET_OK != curl_global_sslset(CURLSSLBACKEND_GNUTLS, NULL, NULL)); |
165 | } | 193 | } |
166 | ''' | 194 | ''' |
167 | result = compiler.run(curl_ssl_check, name : 'cURL gnutls check', | 195 | result = cc.run(curl_ssl_check, name : 'cURL gnutls check', |
168 | dependencies: curl_dep) | 196 | dependencies: curl_dep) |
169 | cdata.set('curl_gnutls', 0) | 197 | cdata.set('curl_gnutls', 0) |
170 | if result.returncode() == 0 | 198 | if result.returncode() == 0 |
171 | cdata.set('curl_gnutls', 1) | 199 | cdata.set('curl_gnutls', 1) |
172 | endif | 200 | endif |
173 | 201 | ||
174 | if compiler.has_function('getloadavg') == false | 202 | if cc.has_function('getloadavg') == false |
175 | error('getloadadv missing') | 203 | error('getloadadv missing') |
176 | endif | 204 | endif |
177 | if compiler.has_function('strnlen', prefix : '#include <string.h>') | 205 | if cc.has_function('strnlen', prefix : '#include <string.h>') |
178 | cdata.set('HAVE_STRNLEN', 1) | 206 | cdata.set('HAVE_STRNLEN', 1) |
179 | endif | 207 | endif |
180 | if compiler.has_function('memset_s') | 208 | if cc.has_function('memset_s') |
181 | cdata.set('HAVE_MEMSET_S', 1) | 209 | cdata.set('HAVE_MEMSET_S', 1) |
182 | endif | 210 | endif |
183 | if compiler.has_function('explicit_bzero') | 211 | if cc.has_function('explicit_bzero') |
184 | cdata.set('HAVE_EXPLICIT_BZERO', 1) | 212 | cdata.set('HAVE_EXPLICIT_BZERO', 1) |
185 | endif | 213 | endif |
186 | 214 | ||