['gpgsql', ['pgsql']],
['gsqlite3', ['sqlite3']],
['ldap', ['ldap']],
- ['remote', ['curl']],
+ ['remote', ['prog-curl', 'zeromq']],
['tinydns', ['cdb']],
['geoip', ['geoip']],
['lmdb', ['lmdb', 'boost-serialization']],
opt = get_option('module-' + name)
opt_dyn = get_option('module-' + name + '-dyn')
- if opt or opt_dyn
- if opt
+ if name == 'remote' and (opt != 'disabled' or opt_dyn != 'disabled')
+ if opt != 'disabled'
selected_modules += name
endif
- if opt_dyn
+ if opt_dyn != 'disabled'
selected_dyn_modules += name
endif
foreach dep: module_deps
- if name == 'remote' and dep == 'curl' and not opt_unittests
- continue # We only need cURL for unit tests.
+ if dep == 'prog-curl'
+ if not opt_unittests
+ continue # We only need cURL for unit tests.
+ endif
+ elif dep == 'zeromq'
+ if opt != 'with-zeromq' and opt_dyn != 'with-zeromq'
+ continue
+ endif
endif
subdir('meson' / dep)
endforeach
+ # TODO Also build the actual backend.
+ elif opt or opt_dyn
+ if opt
+ selected_modules += name
+ endif
+
+ if opt_dyn
+ selected_dyn_modules += name
+ endif
+
+ foreach dep: module_deps
+ subdir('meson' / dep)
+ endforeach
+
# TODO Also build the actual backend.
endif
endforeach
--- /dev/null
+# Remote ZeroMQ Backend
+# Inputs: conf
+# Outputs: dep_zeromq
+
+dep_zeromq = dependency('libzmq', required: true)
+conf.set10('HAVE_LIBZMQ', dep_zeromq.found(), description: 'Whether we have libzmq')
+conf.set10('REMOTEBACKEND_ZEROMQ', dep_zeromq.found(), description: 'Whether we have ZeroMQ connector')
+summary('ZeroMQ', dep_zeromq.found(), bool_yn: true, section: 'Configuration')
option('module-gsqlite3-dyn', type: 'boolean', value: false, description: 'Build the dynamically loadable gsqlite3 backend')
option('module-ldap', type: 'boolean', value: false, description: 'Build the LDAP backend')
option('module-ldap-dyn', type: 'boolean', value: false, description: 'Build the dynamically loadable LDAP backend')
-option('module-remote', type: 'boolean', value: false, description: 'Build the remote backend')
-option('module-remote-dyn', type: 'boolean', value: false, description: 'Build the dynamically loadable remote backend')
+option('module-remote', type: 'combo', choices: ['disabled', 'with-zeromq', 'without-zeromq'], value: 'with-zeromq', description: 'Build the remote backend')
+option('module-remote-dyn', type: 'combo', choices: ['disabled', 'with-zeromq', 'without-zeromq'], value: 'disabled', description: 'Build the dynamically loadable remote backend')
option('module-tinydns', type: 'boolean', value: false, description: 'Build the tinyDNS backend')
option('module-tinydns-dyn', type: 'boolean', value: false, description: 'Build the dynamically loadable tinyDNS backend')
option('module-geoip', type: 'boolean', value: false, description: 'Build the GeoIP backend')