gnunet

Main GNUnet Logic
Log | Files | Refs | Submodules | README | LICENSE

commit ae8072c64e79ab54103e6e5267731b7b238586fd
parent 9c8d9a406f119698aa5a7ba7df8ba396828550f7
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date:   Fri, 22 Sep 2023 12:46:19 +0200

BUILD: Towards mode complete build

Diffstat:
Mmeson.build | 5++++-
Msrc/arm/meson.build | 95+++++++++++++++++++++++++++++++++++++++++--------------------------------------
Msrc/ats/meson.build | 35+++++++++++++++++++----------------
Msrc/block/meson.build | 4+++-
Msrc/cadet/meson.build | 76+++++++++++++++++++++++++++++++++++++++-------------------------------------
Msrc/core/meson.build | 37++++++++++++++++++++-----------------
Msrc/datacache/meson.build | 34++++++++++++++++++++--------------
Msrc/datastore/meson.build | 52++++++++++++++++++++++++++++++++++++----------------
8 files changed, 190 insertions(+), 148 deletions(-)

diff --git a/meson.build b/meson.build @@ -193,7 +193,8 @@ curl_ssl_check ='''#include <curl/curl.h> int main(int argc, char **argv) { return (CURLSSLSET_OK != curl_global_sslset(CURLSSLBACKEND_GNUTLS, NULL, NULL)); } -''' + ''' + result = cc.run(curl_ssl_check, name : 'cURL gnutls check', dependencies: curl_dep) cdata.set('curl_gnutls', 0) @@ -220,6 +221,8 @@ configure_file(#input: 'gnunet_private_config.h.in', configuration : cdata) configuration_inc = include_directories('.') +pkg = import('pkgconfig') + subdir('src') subdir('doc') subdir('contrib') diff --git a/src/arm/meson.build b/src/arm/meson.build @@ -15,53 +15,56 @@ configure_file(input : 'arm.conf.in', install: true, install_dir: pkgcfgdir) -if get_option('monolith') == false - libgnunetarm = library('gnunetarm', - libgnunetarm_src, - dependencies: libgnunetutil_dep, - soversion: '2.0.0', - include_directories: [incdir, configuration_inc], - install: true, - install_dir: get_option('libdir')) - libgnunetarm_dep = declare_dependency(link_with : libgnunetarm) - executable ('gnunet-arm', - gnunetarm_src, - dependencies: [libgnunetarm_dep, libgnunetutil_dep], - include_directories: [incdir, configuration_inc], - install: true, - install_dir: get_option('bindir')) - executable ('gnunet-service-arm', - gnunetservicearm_src, - dependencies: [libgnunetarm_dep, libgnunetutil_dep], - include_directories: [incdir, configuration_inc], - install: true, - install_dir: get_option('libdir') / 'gnunet' / 'libexec') - testarmapi = executable ('test_arm_api', - testarmapi_src, - dependencies: [libgnunetarm_dep, libgnunetutil_dep], - include_directories: [incdir, configuration_inc], - install: false) - testexpbo = executable ('test_exponential_backoff', - testexpbo_src, - dependencies: [libgnunetarm_dep, libgnunetutil_dep], - include_directories: [incdir, configuration_inc], - install: false) - testgnunetservice = executable ('test_gnunet_service', - testgnunetservice_src, - dependencies: [libgnunetarm_dep, libgnunetutil_dep], - include_directories: [incdir, configuration_inc], - install: false) - configure_file(copy: true, - input: 'test_arm_api_data.conf', - output: 'test_arm_api_data.conf') - test('test_arm_api', testarmapi, workdir: meson.current_source_dir(), - suite: 'arm') - # FIXME this test currently times out/fails. - #test('test_exponential_backoff', testexpbo, workdir: meson.current_source_dir()) - test('test_gnunet_service', testgnunetservice, workdir: meson.current_source_dir(), - suite: 'arm') -else +if get_option('monolith') foreach p : libgnunetarm_src + gnunetservicearm_src gnunet_src += 'arm/' + p endforeach + subdir_done() endif + +libgnunetarm = library('gnunetarm', + libgnunetarm_src, + dependencies: libgnunetutil_dep, + soversion: '2.0.0', + include_directories: [incdir, configuration_inc], + install: true, + install_dir: get_option('libdir')) +pkg.generate(libgnunetarm, url: 'https://www.gnunet.org', + description : 'Provides API for accessing the Automated Restart Manager service') +libgnunetarm_dep = declare_dependency(link_with : libgnunetarm) +executable ('gnunet-arm', + gnunetarm_src, + dependencies: [libgnunetarm_dep, libgnunetutil_dep], + include_directories: [incdir, configuration_inc], + install: true, + install_dir: get_option('bindir')) +executable ('gnunet-service-arm', + gnunetservicearm_src, + dependencies: [libgnunetarm_dep, libgnunetutil_dep], + include_directories: [incdir, configuration_inc], + install: true, + install_dir: get_option('libdir') / 'gnunet' / 'libexec') +testarmapi = executable ('test_arm_api', + testarmapi_src, + dependencies: [libgnunetarm_dep, libgnunetutil_dep], + include_directories: [incdir, configuration_inc], + install: false) +testexpbo = executable ('test_exponential_backoff', + testexpbo_src, + dependencies: [libgnunetarm_dep, libgnunetutil_dep], + include_directories: [incdir, configuration_inc], + install: false) +testgnunetservice = executable ('test_gnunet_service', + testgnunetservice_src, + dependencies: [libgnunetarm_dep, libgnunetutil_dep], + include_directories: [incdir, configuration_inc], + install: false) +configure_file(copy: true, + input: 'test_arm_api_data.conf', + output: 'test_arm_api_data.conf') +test('test_arm_api', testarmapi, workdir: meson.current_source_dir(), + suite: 'arm') +# FIXME this test currently times out/fails. +#test('test_exponential_backoff', testexpbo, workdir: meson.current_source_dir()) +test('test_gnunet_service', testgnunetservice, workdir: meson.current_source_dir(), + suite: 'arm') diff --git a/src/ats/meson.build b/src/ats/meson.build @@ -19,23 +19,26 @@ configure_file(input : 'ats.conf.in', install: true, install_dir: pkgcfgdir) -if get_option('monolith') == false - libgnunetats = library('gnunetats', - libgnunetats_src, - dependencies: [libgnunetutil_dep, libgnunethello_dep], - include_directories: [incdir, configuration_inc], - install: true, - install_dir: get_option('libdir')) - libgnunetats_dep = declare_dependency(link_with : libgnunetats) - executable ('gnunet-service-ats', - gnunetserviceats_src, - dependencies: [libgnunetats_dep, libgnunetutil_dep, - libgnunetnt_dep, libgnunetstatistics_dep], - include_directories: [incdir, configuration_inc], - install: true, - install_dir: get_option('libdir') / 'gnunet' / 'libexec') -else +if get_option('monolith') foreach p : libgnunetats_src + gnunetserviceats_src gnunet_src += 'ats/' + p endforeach + subdir_done() endif + +libgnunetats = library('gnunetats', + libgnunetats_src, + dependencies: [libgnunetutil_dep, libgnunethello_dep], + include_directories: [incdir, configuration_inc], + install: true, + install_dir: get_option('libdir')) +pkg.generate(libgnunetats, url : 'https://www.gnunet.org', + description : 'Provides API for allocating bandwidth, expressing preferences for certain peers and accessing allocation information') +libgnunetats_dep = declare_dependency(link_with : libgnunetats) +executable ('gnunet-service-ats', + gnunetserviceats_src, + dependencies: [libgnunetats_dep, libgnunetutil_dep, + libgnunetnt_dep, libgnunetstatistics_dep], + include_directories: [incdir, configuration_inc], + install: true, + install_dir: get_option('libdir') / 'gnunet' / 'libexec') diff --git a/src/block/meson.build b/src/block/meson.build @@ -13,6 +13,7 @@ libgnunetblock = library('gnunetblock', dependencies: libgnunetutil_dep, include_directories: [incdir, configuration_inc], install: true, + soversion: '0.0.0', install_dir: get_option('libdir')) libgnunetblock_dep = declare_dependency(link_with : libgnunetblock) libgnunetblockgroup = library('gnunetblockgroup', @@ -20,6 +21,7 @@ libgnunetblockgroup = library('gnunetblockgroup', dependencies: [libgnunetutil_dep, libgnunetblock_dep], include_directories: [incdir, configuration_inc], install: true, + soversion: '0.0.0', install_dir: get_option('libdir')) libgnunetblockgroup_dep = declare_dependency(link_with : libgnunetblockgroup) plugin_dep = [libgnunetutil_dep, libgnunetblock_dep, libgnunetblockgroup_dep] @@ -33,6 +35,6 @@ shared_module('gnunet_plugin_block_template', ['plugin_block_template.c'], dependencies: plugin_dep, include_directories: [incdir, configuration_inc], - install: true, + install: false, install_dir: get_option('libdir')) diff --git a/src/cadet/meson.build b/src/cadet/meson.build @@ -23,45 +23,47 @@ configure_file(input : 'cadet.conf.in', install: true, install_dir: pkgcfgdir) -if get_option('monolith') == false - libgnunetcadet = library('gnunetcadet', +if get_option('monolith') + foreach p : libgnunetcadet_src + gnunetservicecadet_src + gnunet_src += 'cadet/' + p + endforeach +endif + +libgnunetcadet = library('gnunetcadet', libgnunetcadet_src, dependencies: libgnunetutil_dep, include_directories: [incdir, configuration_inc], install: true, + soversion: '7.0.0', install_dir: get_option('libdir')) - libgnunetcadet_dep = declare_dependency(link_with : libgnunetcadet) - executable ('gnunet-cadet', - gnunetservicecadet_src, - dependencies: [libgnunetcadet_dep, - libgnunetutil_dep, - libgnunetcore_dep, - libgnunetdht_dep, - libgnunetstatistics_dep, - libgnunetpeerinfo_dep, - libgnunetats_dep, - libgnunettransport_dep, - libgnunethello_dep], - include_directories: [incdir, configuration_inc], - install: true, - install_dir: get_option('bindir')) - executable ('gnunet-service-cadet', - gnunetservicecadet_src, - dependencies: [libgnunetcadet_dep, - libgnunetutil_dep, - libgnunetats_dep, - libgnunetcore_dep, - libgnunetdht_dep, - libgnunetstatistics_dep, - libgnunettransport_dep, - libgnunetpeerinfo_dep, - libgnunethello_dep, - libgnunetblock_dep], - include_directories: [incdir, configuration_inc], - install: true, - install_dir: get_option('libdir') / 'gnunet' / 'libexec') -else - foreach p : libgnunetcadet_src + gnunetservicecadet_src - gnunet_src += 'cadet/' + p - endforeach -endif +libgnunetcadet_dep = declare_dependency(link_with : libgnunetcadet) +executable ('gnunet-cadet', + gnunetservicecadet_src, + dependencies: [libgnunetcadet_dep, + libgnunetutil_dep, + libgnunetcore_dep, + libgnunetdht_dep, + libgnunetstatistics_dep, + libgnunetpeerinfo_dep, + libgnunetats_dep, + libgnunettransport_dep, + libgnunethello_dep], + include_directories: [incdir, configuration_inc], + install: true, + install_dir: get_option('bindir')) +executable ('gnunet-service-cadet', + gnunetservicecadet_src, + dependencies: [libgnunetcadet_dep, + libgnunetutil_dep, + libgnunetats_dep, + libgnunetcore_dep, + libgnunetdht_dep, + libgnunetstatistics_dep, + libgnunettransport_dep, + libgnunetpeerinfo_dep, + libgnunethello_dep, + libgnunetblock_dep], + include_directories: [incdir, configuration_inc], + install: true, + install_dir: get_option('libdir') / 'gnunet' / 'libexec') + diff --git a/src/core/meson.build b/src/core/meson.build @@ -13,25 +13,28 @@ configure_file(input : 'core.conf.in', install_dir: pkgcfgdir) -if get_option('monolith') == false - libgnunetcore = library('gnunetcore', +if get_option('monolith') + foreach p : libgnunetcore_src + gnunetservicecore_src + gnunet_src += 'core/' + p + endforeach +endif + +libgnunetcore = library('gnunetcore', libgnunetcore_src, dependencies: libgnunetutil_dep, include_directories: [incdir, configuration_inc], install: true, + soversion: '0.1.0', install_dir: get_option('libdir')) - libgnunetcore_dep = declare_dependency(link_with : libgnunetcore) - executable ('gnunet-service-core', - gnunetservicecore_src, - dependencies: [libgnunetcore_dep, libgnunetutil_dep, - libgnunetstatistics_dep, - libgnunettransport_dep, - zlib_dep], - include_directories: [incdir, configuration_inc], - install: true, - install_dir: get_option('libdir') / 'gnunet' / 'libexec') -else - foreach p : libgnunetcore_src + gnunetservicecore_src - gnunet_src += 'core/' + p - endforeach -endif +libgnunetcore_dep = declare_dependency(link_with : libgnunetcore) +pkg.generate(libgnunetcore, url: 'https://www.gnunet.org', + description : 'Provides API for (encrypted) P2P communication') +executable ('gnunet-service-core', + gnunetservicecore_src, + dependencies: [libgnunetcore_dep, libgnunetutil_dep, + libgnunetstatistics_dep, + libgnunettransport_dep, + zlib_dep], + include_directories: [incdir, configuration_inc], + install: true, + install_dir: get_option('libdir') / 'gnunet' / 'libexec') diff --git a/src/datacache/meson.build b/src/datacache/meson.build @@ -7,22 +7,28 @@ configure_file(input : 'datacache.conf', configuration : cdata, install: true, install_dir: pkgcfgdir) +install_data ('datacache-0001.sql', + 'datacache-drop.sql', + install_dir: get_option('datadir')/'gnunet'/'sql') -if get_option('monolith') == false - libgnunetdatacache = library('gnunetdatacache', - libgnunetdatacache_src, - dependencies: [libgnunetutil_dep, libgnunetstatistics_dep], - include_directories: [incdir, configuration_inc]) - libgnunetdatacache_dep = declare_dependency(link_with : libgnunetdatacache) - libgnunetplugindatacache_sqlite = library('gnunet_plugin_datacache_sqlite', - libgnunetplugindatacache_sqlite_src, - dependencies: [libgnunetutil_dep, - libgnunetdatacache_dep, - sqlite_dep, - libgnunetsq_dep], - include_directories: [incdir, configuration_inc]) -else +if get_option('monolith') foreach p : libgnunetdatacache_src gnunet_src += 'datacache/' + p endforeach endif + +libgnunetdatacache = library('gnunetdatacache', + libgnunetdatacache_src, + soversion: '0.1.0', + dependencies: [libgnunetutil_dep, libgnunetstatistics_dep], + include_directories: [incdir, configuration_inc]) +libgnunetdatacache_dep = declare_dependency(link_with : libgnunetdatacache) +pkg.generate(libgnunetdatacache, url: 'https://www.gnunet.org', + description : 'Provides datacache API for temporary storage to disk') +shared_module('gnunet_plugin_datacache_sqlite', + libgnunetplugindatacache_sqlite_src, + dependencies: [libgnunetutil_dep, + libgnunetdatacache_dep, + sqlite_dep, + libgnunetsq_dep], + include_directories: [incdir, configuration_inc]) diff --git a/src/datastore/meson.build b/src/datastore/meson.build @@ -8,23 +8,43 @@ configure_file(input : 'datastore.conf.in', install: true, install_dir: pkgcfgdir) -if get_option('monolith') == false - libgnunetdatastore = library('gnunetdatastore', - libgnunetdatastore_src, - dependencies: [libgnunetutil_dep, - libgnunetstatistics_dep, - libgnunetdatacache_dep], - include_directories: [incdir, configuration_inc]) - libgnunetdatastore_dep = declare_dependency(link_with : libgnunetdatastore) - executable ('gnunet-service-datastore', - gnunetservicedatastore_src, - dependencies: [libgnunetdatastore_dep, - libgnunetutil_dep, - libgnunetstatistics_dep, - libgnunetdatacache_dep], - include_directories: [incdir, configuration_inc]) -else +install_data ('datastore-0001.sql', + 'datastore-drop.sql', + install_dir: get_option('datadir')/'gnunet'/'sql') + +if get_option('monolith') foreach p : libgnunetdatastore_src + gnunetservicedatastore_src gnunet_src += 'datastore/' + p endforeach endif +libgnunetdatastore = library('gnunetdatastore', + libgnunetdatastore_src, + soversion: '1.0.0', + dependencies: [libgnunetutil_dep, + libgnunetstatistics_dep, + libgnunetdatacache_dep], + include_directories: [incdir, configuration_inc]) +libgnunetdatastore_dep = declare_dependency(link_with : libgnunetdatastore) +pkg.generate(libgnunetdatastore, url: 'https://www.gnunet.org', + description : 'Management API for the datastore for persistent storage to disk') +executable ('gnunet-datastore', + ['gnunet-datastore.c'], + dependencies: [libgnunetdatastore_dep, + libgnunetutil_dep, + libgnunetstatistics_dep, + libgnunetdatacache_dep], + include_directories: [incdir, configuration_inc]) +executable ('gnunet-service-datastore', + gnunetservicedatastore_src, + dependencies: [libgnunetdatastore_dep, + libgnunetutil_dep, + libgnunetstatistics_dep, + libgnunetdatacache_dep], + include_directories: [incdir, configuration_inc]) +shared_module('gnunet_plugin_datastore_sqlite', + ['plugin_datastore_sqlite.c'], + dependencies: [libgnunetutil_dep, + libgnunetdatastore_dep, + sqlite_dep, + libgnunetsq_dep], + include_directories: [incdir, configuration_inc])