1# libkres
2# SPDX-License-Identifier: GPL-3.0-or-later
3
4libkres_src = files([
5  'cache/api.c',
6  'cache/cdb_lmdb.c',
7  'cache/entry_list.c',
8  'cache/entry_pkt.c',
9  'cache/entry_rr.c',
10  'cache/knot_pkt.c',
11  'cache/nsec1.c',
12  'cache/nsec3.c',
13  'cache/peek.c',
14  'dnssec.c',
15  'dnssec/nsec.c',
16  'dnssec/nsec3.c',
17  'dnssec/signature.c',
18  'dnssec/ta.c',
19  'generic/lru.c',
20  'generic/map.c',
21  'generic/queue.c',
22  'generic/trie.c',
23  'layer/cache.c',
24  'layer/iterate.c',
25  'layer/validate.c',
26  'log.c',
27  'module.c',
28  'resolve.c',
29  'rplan.c',
30  'selection.c',
31  'selection_forward.c',
32  'selection_iter.c',
33  'utils.c',
34  'zonecut.c',
35])
36c_src_lint += libkres_src
37
38libkres_headers = files([
39  'cache/api.h',
40  'cache/cdb_api.h',
41  'cache/cdb_lmdb.h',
42  'cache/impl.h',
43  'defines.h',
44  'dnssec.h',
45  'dnssec/nsec.h',
46  'dnssec/nsec3.h',
47  'dnssec/signature.h',
48  'dnssec/ta.h',
49  'generic/array.h',
50  'generic/lru.h',
51  'generic/map.h',
52  'generic/pack.h',
53  'generic/queue.h',
54  'generic/trie.h',
55  'layer.h',
56  'layer/iterate.h',
57  'log.h',
58  'module.h',
59  'resolve.h',
60  'rplan.h',
61  'selection.h',
62  'selection_forward.h',
63  'selection_iter.h',
64  'utils.h',
65  'zonecut.h',
66])
67
68unit_tests += [
69  ['array', files('generic/test_array.c')],
70  ['lru', files('generic/test_lru.c')],
71  ['map', files('generic/test_map.c')],
72  ['pack', files('generic/test_pack.c')],
73  ['queue', files('generic/test_queue.c')],
74  ['set', files('generic/test_set.c')],
75  ['trie', files('generic/test_trie.c')],
76  ['module', files('test_module.c')],
77  ['rplan', files('test_rplan.c')],
78  ['utils', files('test_utils.c')],
79  ['zonecut', files('test_zonecut.c')],
80]
81
82integr_tests += [
83  ['cache_overflow', meson.current_source_dir() / 'cache' / 'overflow.test.integr'],
84  ['cache_minimal_nsec', meson.current_source_dir() / 'cache' / 'test.integr'],
85  ['iter_limits' , meson.current_source_dir() / 'layer' / 'test.integr'],
86  ['validate' , meson.current_source_dir() / 'layer' / 'validate.test.integr'],
87]
88
89libkres_inc = include_directories('..')
90
91libkres_lib = library('kres',
92  libkres_src,
93  soversion: libkres_soversion,
94  include_directories: libkres_inc,
95  dependencies: [
96    contrib_dep,
97    kresconfig_dep,
98    libuv,
99    lmdb,
100    libknot,
101    libdnssec,
102    gnutls,
103    luajit,
104    libsystemd,
105  ],
106  install: true,
107)
108
109libkres_dep = declare_dependency(
110  include_directories: libkres_inc,
111  link_with: libkres_lib
112)
113
114install_headers(
115  libkres_headers,
116  subdir: 'libkres',
117)
118
119pkgconfig = import('pkgconfig')
120pkgconfig.generate(
121  name: 'libkres',
122  description: 'Knot Resolver library',
123  url: 'https://knot-resolver.cz/',
124  libraries: [libkres_lib],
125)
126