From 5162b6584b14d6963b71a7e0312f3eabade6be70 Mon Sep 17 00:00:00 2001 From: Martin Schanzenbach Date: Sat, 23 Sep 2023 09:56:57 +0200 Subject: BUILD: More pkg-config and soversions --- src/block/meson.build | 1 + src/core/meson.build | 1 + src/dht/meson.build | 56 +++++++++++++------------- src/gns/meson.build | 106 ++++++++++++++++++++++++++------------------------ src/util/meson.build | 99 ++++++++++++++++++++++++---------------------- 5 files changed, 139 insertions(+), 124 deletions(-) diff --git a/src/block/meson.build b/src/block/meson.build index 660f6e947..18fd71bb0 100644 --- a/src/block/meson.build +++ b/src/block/meson.build @@ -24,6 +24,7 @@ libgnunetblockgroup = library('gnunetblockgroup', soversion: '0.0.0', install_dir: get_option('libdir')) libgnunetblockgroup_dep = declare_dependency(link_with : libgnunetblockgroup) + plugin_dep = [libgnunetutil_dep, libgnunetblock_dep, libgnunetblockgroup_dep] shared_module('gnunet_plugin_block_test', ['plugin_block_test.c'], diff --git a/src/core/meson.build b/src/core/meson.build index 5493f9ae9..0b48d04fb 100644 --- a/src/core/meson.build +++ b/src/core/meson.build @@ -29,6 +29,7 @@ libgnunetcore = library('gnunetcore', 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, diff --git a/src/dht/meson.build b/src/dht/meson.build index 686d8e7ed..8b595a58f 100644 --- a/src/dht/meson.build +++ b/src/dht/meson.build @@ -1,7 +1,5 @@ libgnunetdht_src = ['dht_api.c'] -libgnunetpluginblockdht_src = ['plugin_block_dht.c'] - gnunetservicedht_src = ['gnunet-service-dht.c', 'gnunet-service-dht_datacache.c', 'gnunet-service-dht_neighbours.c', @@ -13,32 +11,36 @@ configure_file(input : 'dht.conf.in', install: true, install_dir: pkgcfgdir) -if get_option('monolith') == false - libgnunetdht = library('gnunetdht', - libgnunetdht_src, - dependencies: libgnunetutil_dep, - include_directories: [incdir, configuration_inc]) - libgnunetdht_dep = declare_dependency(link_with : libgnunetdht) - libgnunetpluginblockdht = library('gnunet_plugin_block_dht', - libgnunetpluginblockdht_src, - dependencies: [libgnunetutil_dep, - libgnunethello_dep, - libgnunetblock_dep, - libgnunetblockgroup_dep], - include_directories: [incdir, configuration_inc]) - libgnunetpluginblockdht_dep = declare_dependency(link_with : libgnunetpluginblockdht) - executable ('gnunet-service-dht', - gnunetservicedht_src, - dependencies: [libgnunetdht_dep, libgnunetutil_dep, - libgnunetblock_dep, - m_dep, - libgnunetdatacache_dep, - libgnunetstatistics_dep, - libgnunetblockgroup_dep, - libgnunethello_dep], - include_directories: [incdir, configuration_inc]) -else +if get_option('monolith') foreach p : libgnunetdht_src + gnunetservicedht_src gnunet_src += 'dht/' + p endforeach endif + +libgnunetdht = library('gnunetdht', + libgnunetdht_src, + soversion: '4.0.0', + dependencies: libgnunetutil_dep, + include_directories: [incdir, configuration_inc]) +libgnunetdht_dep = declare_dependency(link_with : libgnunetdht) +pkg.generate(libgnunetdht, url: 'https://www.gnunet.org', + description : 'Provides API for the R5N distributed hash table') + +shared_module('gnunet_plugin_block_dht', + ['plugin_block_dht.c'], + dependencies: [libgnunetutil_dep, + libgnunethello_dep, + libgnunetblock_dep, + libgnunetblockgroup_dep], + include_directories: [incdir, configuration_inc]) + +executable ('gnunet-service-dht', + gnunetservicedht_src, + dependencies: [libgnunetdht_dep, libgnunetutil_dep, + libgnunetblock_dep, + m_dep, + libgnunetdatacache_dep, + libgnunetstatistics_dep, + libgnunetblockgroup_dep, + libgnunethello_dep], + include_directories: [incdir, configuration_inc]) diff --git a/src/gns/meson.build b/src/gns/meson.build index eef8224ef..fa6837a4b 100644 --- a/src/gns/meson.build +++ b/src/gns/meson.build @@ -13,57 +13,63 @@ configure_file(input : 'gns.conf.in', install_dir: pkgcfgdir) -if get_option('monolith') == false - libgnunetgns = library('gnunetgns', - libgnunetgns_src, - dependencies: [libgnunetutil_dep, - libgnunetgnsrecord_dep, - libgnunetidentity_dep], - include_directories: [incdir, configuration_inc], - install: true, - install_dir: get_option('libdir')) - libgnunetgns_dep = declare_dependency(link_with : libgnunetgns) - executable ('gnunet-gns', - 'gnunet-gns.c', - dependencies: [libgnunetgns_dep, - libgnunetgnsrecord_dep, - idn_dep, - libgnunetutil_dep], - include_directories: [incdir, configuration_inc], - install: true, - install_dir: get_option('bindir')) - executable ('gnunet-gns-proxy', - gnunetgnsproxy_src, - dependencies: [libgnunetgns_dep, - libgnunetutil_dep, - mhd_dep, - idn_dep, - curl_dep, - gnutls_dep, - libgnunetidentity_dep], - include_directories: [incdir, configuration_inc], - install: true, - install_dir: get_option('libdir') / 'gnunet' / 'libexec') - executable ('gnunet-service-gns', - gnunetservicegns_src, - dependencies: [libgnunetgns_dep, - libgnunetutil_dep, - libgnunetstatistics_dep, - libgnunetcore_dep, - libgnunetdht_dep, - libgnunetdns_dep, - idn_dep, - libgnunetidentity_dep, - libgnunetnamecache_dep, - libgnunetrevocation_dep, - libgnunetgnsrecord_dep, - libgnunetcadet_dep, - libgnunetblock_dep], - include_directories: [incdir, configuration_inc], - install: true, - install_dir: get_option('libdir') / 'gnunet' / 'libexec') -else +if get_option('monolith') foreach p : libgnunetgns_src + gnunetservicegns_src gnunet_src += 'gns/' + p endforeach + subdir_done() endif + +libgnunetgns = library('gnunetgns', + libgnunetgns_src, + soversion: '0.0.0', + dependencies: [libgnunetutil_dep, + libgnunetgnsrecord_dep, + libgnunetidentity_dep], + include_directories: [incdir, configuration_inc], + install: true, + install_dir: get_option('libdir')) +libgnunetgns_dep = declare_dependency(link_with : libgnunetgns) +pkg.generate(libgnunetgns, url: 'https://www.gnunet.org', + description : 'Provides API to access the GNU Name System') + + +executable ('gnunet-gns', + 'gnunet-gns.c', + dependencies: [libgnunetgns_dep, + libgnunetgnsrecord_dep, + idn_dep, + libgnunetutil_dep], + include_directories: [incdir, configuration_inc], + install: true, + install_dir: get_option('bindir')) +executable ('gnunet-gns-proxy', + gnunetgnsproxy_src, + dependencies: [libgnunetgns_dep, + libgnunetutil_dep, + mhd_dep, + idn_dep, + curl_dep, + gnutls_dep, + libgnunetidentity_dep], + include_directories: [incdir, configuration_inc], + install: true, + install_dir: get_option('libdir') / 'gnunet' / 'libexec') +executable ('gnunet-service-gns', + gnunetservicegns_src, + dependencies: [libgnunetgns_dep, + libgnunetutil_dep, + libgnunetstatistics_dep, + libgnunetcore_dep, + libgnunetdht_dep, + libgnunetdns_dep, + idn_dep, + libgnunetidentity_dep, + libgnunetnamecache_dep, + libgnunetrevocation_dep, + libgnunetgnsrecord_dep, + libgnunetcadet_dep, + libgnunetblock_dep], + include_directories: [incdir, configuration_inc], + install: true, + install_dir: get_option('libdir') / 'gnunet' / 'libexec') diff --git a/src/util/meson.build b/src/util/meson.build index d4b03479a..9cda9f193 100644 --- a/src/util/meson.build +++ b/src/util/meson.build @@ -76,54 +76,59 @@ configure_file(input : 'util.conf', install_dir: pkgcfgdir) -if get_option('monolith') == false - libgnunetutil = library('gnunetutil', - libgnunetutil_src, - dependencies: gnunetdeps, - include_directories: [incdir, configuration_inc]) - libgnunetutil_dep = declare_dependency(link_with : libgnunetutil) - testcommonalloc = executable ('test_common_allocation', - ['test_common_allocation.c'], - dependencies: [libgnunetutil_dep, libgnunetutil_dep], - include_directories: [incdir, configuration_inc], - install: false) - test('test_common_allocation', testcommonalloc, - workdir: meson.current_source_dir(), - suite: ['util', 'util-common']) - testcommonlog = executable ('test_common_logging', - ['test_common_logging.c'], - dependencies: [libgnunetutil_dep, libgnunetutil_dep], - include_directories: [incdir, configuration_inc], - install: false) - test('test_common_logging', testcommonlog, - workdir: meson.current_source_dir(), - suite: ['util', 'util-common']) - testcommonendian = executable ('test_common_endian', - ['test_common_endian.c'], - dependencies: [libgnunetutil_dep, libgnunetutil_dep], - include_directories: [incdir, configuration_inc], - install: false) - test('test_common_endian', testcommonendian, - workdir: meson.current_source_dir(), - suite: ['util', 'util-common']) - testconf = executable ('test_configuration', - ['test_configuration.c'], - dependencies: [libgnunetutil_dep, libgnunetutil_dep], - include_directories: [incdir, configuration_inc], - install: false) - test('test_configuration', testconf, - workdir: meson.current_source_dir(), - suite: ['util', 'util-configuration']) - testcontainerbloom = executable ('test_container_bloomfilter', - ['test_container_bloomfilter.c'], - dependencies: [libgnunetutil_dep, libgnunetutil_dep], - include_directories: [incdir, configuration_inc], - install: false) - test('test_container_bloomfilter', testcontainerbloom, - workdir: meson.current_source_dir(), - suite: ['util', 'util-container']) -else +if get_option('monolith') foreach p : libgnunetutil_src gnunet_src += 'util/' + p endforeach endif + +libgnunetutil = library('gnunetutil', + libgnunetutil_src, + soversion: '15.0.0', + dependencies: gnunetdeps, + include_directories: [incdir, configuration_inc]) +libgnunetutil_dep = declare_dependency(link_with : libgnunetutil) +pkg.generate(libgnunetutil, url: 'https://www.gnunet.org', + description : 'Provides miscellaneous utility functions and API for GNUnet') + + +testcommonalloc = executable ('test_common_allocation', + ['test_common_allocation.c'], + dependencies: [libgnunetutil_dep, libgnunetutil_dep], + include_directories: [incdir, configuration_inc], + install: false) +test('test_common_allocation', testcommonalloc, + workdir: meson.current_source_dir(), + suite: ['util', 'util-common']) +testcommonlog = executable ('test_common_logging', + ['test_common_logging.c'], + dependencies: [libgnunetutil_dep, libgnunetutil_dep], + include_directories: [incdir, configuration_inc], + install: false) +test('test_common_logging', testcommonlog, + workdir: meson.current_source_dir(), + suite: ['util', 'util-common']) +testcommonendian = executable ('test_common_endian', + ['test_common_endian.c'], + dependencies: [libgnunetutil_dep, libgnunetutil_dep], + include_directories: [incdir, configuration_inc], + install: false) +test('test_common_endian', testcommonendian, + workdir: meson.current_source_dir(), + suite: ['util', 'util-common']) +testconf = executable ('test_configuration', + ['test_configuration.c'], + dependencies: [libgnunetutil_dep, libgnunetutil_dep], + include_directories: [incdir, configuration_inc], + install: false) +test('test_configuration', testconf, + workdir: meson.current_source_dir(), + suite: ['util', 'util-configuration']) +testcontainerbloom = executable ('test_container_bloomfilter', + ['test_container_bloomfilter.c'], + dependencies: [libgnunetutil_dep, libgnunetutil_dep], + include_directories: [incdir, configuration_inc], + install: false) +test('test_container_bloomfilter', testcontainerbloom, + workdir: meson.current_source_dir(), + suite: ['util', 'util-container']) -- cgit v1.2.3