aboutsummaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build88
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 @@
2project('gnunet', 'c', license: 'AGPLv3', 2project('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
5compiler = meson.get_compiler('c') 5cc = meson.get_compiler('c')
6incdir = include_directories('src/include') 6incdir = include_directories('src/include')
7cdata = configuration_data() 7cdata = configuration_data()
8 8
@@ -32,10 +32,10 @@ cdata.set('extractor', 0)
32 32
33 33
34# Various checks 34# Various checks
35if compiler.has_member ('struct sockaddr_in', 'sin_len', prefix : ['#include <sys/types.h>', '#include <sys/socket.h>', '#include <netinet/in.h>']) 35if 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')
37endif 37endif
38if compiler.has_member ('struct sockaddr_un', 'sun_len', prefix : ['#include <sys/types.h>', '#include <sys/socket.h>', '#include <sys/un.h>']) 38if 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')
40endif 40endif
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
63add_project_arguments('-fno-strict-aliasing', language : 'c') 63add_project_arguments('-fno-strict-aliasing', language : 'c')
64if compiler.has_argument('-Wno-address-of-packed-member') 64if 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')
66endif 66endif
67if compiler.has_argument('-Wno-tautological-constant-out-of-range-compare') 67if 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')
69endif 69endif
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
91ltdl_dep = compiler.find_library('ltdl', required : true) 91ltdl_dep = dependency ('libltdl', required: false)
92unistr_dep = compiler.find_library('unistring', required : true) 92if not ltdl_dep.found()
93sqlite_dep = compiler.find_library('sqlite3', required : true) 93 ltdl_dep = cc.find_library('ltdl', required : true)
94curl_dep = dependency('libcurl') 94endif
95zlib_dep = dependency('zlib') 95unistr_dep = dependency('libunistring', required : false)
96mhd_dep = dependency('libmicrohttpd') 96if not unistr_dep.found()
97json_dep = compiler.find_library('jansson', required : true) 97 unistr_dep = cc.find_library('unistring', required : true)
98gcrypt_dep = dependency('libgcrypt') 98endif
99gnutls_dep = compiler.find_library('gnutls', required : false) 99sqlite_dep = dependency ('sqlite3', required : false)
100if gnutls_dep.found() == false 100if not sqlite_dep.found()
101 gnutls_dep = compiler.find_library('gnutls-dane', required : true) 101 sqlite_dep = cc.find_library('sqlite3', required : true)
102endif 102endif
103 103curl_dep = dependency('libcurl', required : false)
104sodium_dep = dependency('libsodium') 104if not curl_dep.found()
105cc = meson.get_compiler('c') 105 curl_dep = cc.find_library('curl', required : true)
106endif
107zlib_dep = dependency('zlib', required : false)
108if not zlib_dep.found()
109 zlib_dep = cc.find_library('zlib', required : true)
110endif
111mhd_dep = dependency('libmicrohttpd', required : false)
112if not mhd_dep.found()
113 mhd_dep = cc.find_library('microhttpd', required : true)
114endif
115json_dep = dependency('libjansson', required : false)
116if not json_dep.found()
117 json_dep = cc.find_library('jansson', required : true)
118endif
119gcrypt_dep = dependency('libgcrypt', required : false)
120if not gcrypt_dep.found()
121 gcrypt_dep = cc.find_library('gcrypt', required : true)
122endif
123gnutls_dep = dependency('libgnutls', required : false)
124if 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
129endif
130sodium_dep = dependency('libsodium', required : false)
131if not sodium_dep.found()
132 sodium_dep = cc.find_library('sodium', required : true)
133endif
106m_dep = cc.find_library('m', required : false) 134m_dep = cc.find_library('m', required : false)
107if m_dep.found() 135if 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
139add_project_arguments('-DNEED_LIBGCRYPT_VERSION="1.6.0"', language : 'c') 167add_project_arguments('-DNEED_LIBGCRYPT_VERSION="1.6.0"', language : 'c')
140 168
141if compiler.has_header('sys/time.h') 169if 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')
143endif 171endif
144if compiler.has_header('sys/param.h') 172if 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')
146endif 174endif
147 175
148if compiler.has_header('idn2.h') 176if 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')
151endif 179endif
152 180
153 181
154# GNUTLS DANE 182# GNUTLS DANE
155if compiler.has_header('gnutls/dane.h') 183if 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'''
167result = compiler.run(curl_ssl_check, name : 'cURL gnutls check', 195result = cc.run(curl_ssl_check, name : 'cURL gnutls check',
168 dependencies: curl_dep) 196 dependencies: curl_dep)
169cdata.set('curl_gnutls', 0) 197cdata.set('curl_gnutls', 0)
170if result.returncode() == 0 198if result.returncode() == 0
171 cdata.set('curl_gnutls', 1) 199 cdata.set('curl_gnutls', 1)
172endif 200endif
173 201
174if compiler.has_function('getloadavg') == false 202if cc.has_function('getloadavg') == false
175 error('getloadadv missing') 203 error('getloadadv missing')
176endif 204endif
177if compiler.has_function('strnlen', prefix : '#include <string.h>') 205if cc.has_function('strnlen', prefix : '#include <string.h>')
178 cdata.set('HAVE_STRNLEN', 1) 206 cdata.set('HAVE_STRNLEN', 1)
179endif 207endif
180if compiler.has_function('memset_s') 208if cc.has_function('memset_s')
181 cdata.set('HAVE_MEMSET_S', 1) 209 cdata.set('HAVE_MEMSET_S', 1)
182endif 210endif
183if compiler.has_function('explicit_bzero') 211if cc.has_function('explicit_bzero')
184 cdata.set('HAVE_EXPLICIT_BZERO', 1) 212 cdata.set('HAVE_EXPLICIT_BZERO', 1)
185endif 213endif
186 214