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
|
From a4a4f5e02ac1cc396bbd1fb8e0c0c460a833512e Mon Sep 17 00:00:00 2001
From: Daniel Golle <daniel@makrotopia.org>
Date: Fri, 10 Oct 2025 01:15:11 +0100
Subject: [PATCH 5/8] meson: detect libcurl-gnutls
Instead of only checking if cURL is built against gnuTLS, also test of
there is a dedicated libcurl-gnutls library and favor using it.
---
meson.build | 67 +++++++++++++++++++++++++++++++++++++++++------------
1 file changed, 52 insertions(+), 15 deletions(-)
--- a/meson.build
+++ b/meson.build
@@ -197,10 +197,17 @@ if not sqlite_dep.found()
error('Sqlite version >= 3.35.0 requried')
endif
endif
-curl_dep = dependency('libcurl', version: '>=7.85.0', required: false)
-if not curl_dep.found()
- curl_dep = cc.find_library('curl', required: true)
- curl_version_check = '''#include <curl/curl.h>
+
+curl_gnutls_dep = dependency(
+ 'libcurl-gnutls',
+ version: '>=7.85.0',
+ required: false,
+)
+if not curl_gnutls_dep.found()
+ curl_gnutls_dep = cc.find_library('curl-gnutls', required: false)
+endif
+
+curl_version_check = '''#include <curl/curl.h>
int main(int argc, char **argv) {
#if LIBCURL_VERSION_NUM < 0x075500
#error "cURL version >= 7.85.0 required"
@@ -208,12 +215,34 @@ if not curl_dep.found()
return 0;
}
'''
- if not cc.compiles(
- curl_version_check,
- name: 'cURL version check',
- dependencies: curl_dep,
- )
- error('cURL version >=7.85.0 required')
+
+# If libcurl-gnutls found, use it and we know it has gnutls support
+curl_is_gnutls = false
+if curl_gnutls_dep.found()
+ curl_dep = curl_gnutls_dep
+ curl_is_gnutls = true
+ # Check version for libcurl-gnutls if it was found via find_library
+ if curl_gnutls_dep.type_name() != 'pkgconfig'
+ if not cc.compiles(
+ curl_version_check,
+ name: 'cURL-gnutls version check',
+ dependencies: curl_dep,
+ )
+ error('libcurl-gnutls version >=7.85.0 required')
+ endif
+ endif
+else
+ # Fall back to regular libcurl
+ curl_dep = dependency('libcurl', version: '>=7.85.0', required: false)
+ if not curl_dep.found()
+ curl_dep = cc.find_library('curl', required: true)
+ if not cc.compiles(
+ curl_version_check,
+ name: 'cURL version check',
+ dependencies: curl_dep,
+ )
+ error('cURL version >=7.85.0 required')
+ endif
endif
endif
zlib_dep = dependency('zlib', required: false)
@@ -492,13 +521,22 @@ curl_ssl_check = '''#include <curl/curl.
}
'''
-result = cc.run(
- curl_ssl_check,
- name: 'cURL gnutls check',
- dependencies: curl_dep,
-)
+# Check if we found libcurl-gnutls (has gnutls support by definition)
+curl_gnutls_available = false
+if curl_is_gnutls
+ curl_gnutls_available = true
+else
+ # Fall back to runtime check for regular libcurl with gnutls support
+ result = cc.run(
+ curl_ssl_check,
+ name: 'cURL gnutls check',
+ dependencies: curl_dep,
+ )
+ curl_gnutls_available = result.returncode() == 0
+endif
+
private_config.set('curl_gnutls', 0)
-if result.returncode() == 0
+if curl_gnutls_available
private_config.set('curl_gnutls', 1)
endif
|