We have several other options that depend on result of `driver_remote`
option check so we need to do it early to have the result available.
Fixes:
https://gitlab.com/libvirt/libvirt/-/issues/185
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
meson.build | 65 ++++++++++++++++++++++++++++-------------------------
1 file changed, 34 insertions(+), 31 deletions(-)
diff --git a/meson.build b/meson.build
index c95c7f7444..ca4291e37a 100644
--- a/meson.build
+++ b/meson.build
@@ -848,6 +848,37 @@ foreach name : optional_programs
endforeach
+# early checks where lot of other packages depend on the result
+
+# On MinGW portablexdr provides XDR functions, on linux they are
+# provided by libtirpc and on FreeBSD/macOS there is no need to
+# use extra library as it's provided by libc directly.
+if host_machine.system() == 'windows'
+ xdr_dep = cc.find_library('portablexdr', required: false)
+elif host_machine.system() == 'linux'
+ xdr_dep = dependency('libtirpc', required: false)
+elif host_machine.system() in [ 'freebsd', 'darwin' ]
+ xdr_dep = cc.find_library('c', required: false)
+else
+ xdr_dep = dependency('', required: false)
+endif
+
+if not get_option('driver_remote').disabled()
+ use_remote = true
+
+ if not xdr_dep.found()
+ use_remote = false
+ if get_option('driver_remote').enabled()
+ error('XDR is required for remote driver')
+ endif
+ endif
+
+ if use_remote
+ conf.set('WITH_REMOTE', 1)
+ endif
+endif
+
+
# generic build dependencies
# FIXME rewrite to use dependency()
@@ -1005,7 +1036,7 @@ else
endif
libssh_version = '0.7'
-if not get_option('driver_remote').disabled()
+if conf.has('WITH_REMOTE')
libssh_dep = dependency('libssh', version: '>=' + libssh_version,
required: get_option('libssh'))
if libssh_dep.found()
conf.set('WITH_LIBSSH', 1)
@@ -1028,7 +1059,7 @@ else
endif
libssh2_version = '1.3'
-if not get_option('driver_remote').disabled()
+if conf.has('WITH_REMOTE')
libssh2_dep = dependency('libssh2', version: '>=' + libssh2_version,
required: get_option('libssh2'))
if libssh2_dep.found()
conf.set('WITH_SSH2', 1)
@@ -1172,7 +1203,7 @@ if not get_option('sanlock').disabled()
endif
sasl_version = '2.1.26'
-if get_option('driver_remote').enabled()
+if conf.has('WITH_REMOTE')
sasl_dep = dependency('libsasl2', version: '>=' + sasl_version,
required: get_option('sasl'))
if sasl_dep.found()
conf.set('WITH_SASL', 1)
@@ -1280,19 +1311,6 @@ if wireshark_dep.found()
endif
endif
-# On MinGW portablexdr provides XDR functions, on linux they are
-# provided by libtirpc and on FreeBSD/macOS there is no need to
-# use extra library as it's provided by libc directly.
-if host_machine.system() == 'windows'
- xdr_dep = cc.find_library('portablexdr', required: false)
-elif host_machine.system() == 'linux'
- xdr_dep = dependency('libtirpc', required: false)
-elif host_machine.system() in [ 'freebsd', 'darwin' ]
- xdr_dep = cc.find_library('c', required: false)
-else
- xdr_dep = dependency('', required: false)
-endif
-
yajl_version = '2.0.3'
yajl_dep = dependency('yajl', version: '>=' + yajl_version, required:
get_option('yajl'))
if yajl_dep.found()
@@ -1406,21 +1424,6 @@ endif
# build driver options
-if not get_option('driver_remote').disabled()
- use_remote = true
-
- if not xdr_dep.found()
- use_remote = false
- if get_option('driver_remote').enabled()
- error('XDR is required for remote driver')
- endif
- endif
-
- if use_remote
- conf.set('WITH_REMOTE', 1)
- endif
-endif
-
remote_default_mode = get_option('remote_default_mode')
if remote_default_mode == 'direct'
conf.set('REMOTE_DRIVER_AUTOSTART_DIRECT', '1')
--
2.31.1