Skip to content

Commit a4135da

Browse files
kaecheleyegorich
authored andcommitted
Move to Meson build system.
Signed-off-by: Felix Kaechele <felix@kaechele.ca> Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
1 parent a776fb6 commit a4135da

File tree

16 files changed

+759
-0
lines changed

16 files changed

+759
-0
lines changed

c++/examples/meson.build

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
executable(
2+
'mdns',
3+
'mdns.cc',
4+
link_with: [
5+
libgensiomdnscpp,
6+
libgensiooshcpp,
7+
libgensioosh,
8+
libgensio,
9+
],
10+
include_directories: [top_inc, inc_inc, cpp_inc],
11+
install: false,
12+
)
13+
14+
executable(
15+
'telnet_client',
16+
'telnet_client.cc',
17+
link_with: [
18+
libgensiooshcpp,
19+
libgensioosh,
20+
libgensiocpp,
21+
libgensio,
22+
],
23+
include_directories: [top_inc, inc_inc, cpp_inc],
24+
install: false,
25+
)
26+
27+
executable(
28+
'telnet_server',
29+
'telnet_server.cc',
30+
link_with: [
31+
libgensiooshcpp,
32+
libgensioosh,
33+
libgensiocpp,
34+
libgensio,
35+
],
36+
include_directories: [top_inc, inc_inc, cpp_inc],
37+
install: false,
38+
)

c++/include/gensio/meson.build

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
install_headers(
2+
'gensio',
3+
'gensio_dllvisibility',
4+
'gensiomdns',
5+
'gensioosh',
6+
'gensioosh_dllvisibility',
7+
subdir: meson.project_name()
8+
)

c++/lib/meson.build

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
libgensiooshcpp = library(
2+
'gensiooshcpp',
3+
sources: ['gensioosh.cc'],
4+
include_directories: [top_inc, inc_inc, cplusplus_inc],
5+
cpp_args: [
6+
'-DBUILDING_GENSIOOSHCPP_DLL',
7+
],
8+
install: true,
9+
soversion: soversion,
10+
link_with: [libgensioosh],
11+
)
12+
13+
pkg.generate(
14+
libgensiooshcpp,
15+
name: 'libgensiooshcpp',
16+
description: 'A C++ wrapper for the gensio library',
17+
)
18+
19+
libgensiocpp = library(
20+
'gensiocpp',
21+
sources: ['gensio.cc'],
22+
include_directories: [top_inc, inc_inc, cplusplus_inc],
23+
cpp_args: [
24+
'-DBUILDING_GENSIOCPP_DLL',
25+
],
26+
install: true,
27+
soversion: soversion,
28+
link_with: [libgensiooshcpp, libgensioosh, libgensio],
29+
)
30+
31+
pkg.generate(
32+
libgensiocpp,
33+
name: 'libgensiocpp',
34+
description: 'A C++ wrapper for the OS handler library for gensio',
35+
)
36+
37+
libgensiomdnscpp = library(
38+
'gensiomdnscpp',
39+
sources: ['gensiomdns.cc'],
40+
include_directories: [top_inc, inc_inc, cplusplus_inc],
41+
cpp_args: [
42+
'-DBUILDING_GENSIOMDNSCPP_DLL',
43+
],
44+
install: true,
45+
soversion: soversion,
46+
link_with: [libgensiomdns, libgensiooshcpp, libgensioosh, libgensiocpp],
47+
)
48+
pkg.generate(
49+
libgensiomdnscpp,
50+
name: 'libgensiomdnscpp',
51+
description: 'A C++ wrapper for the gensiolibrary to abstract MDNS interfaces',
52+
)

c++/meson.build

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
add_languages('cpp')
2+
3+
cpp_inc = include_directories('include')
4+
5+
subdir('lib')
6+
subdir('examples')
7+
subdir('tests')
8+
subdir('include/gensio')

c++/tests/meson.build

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
executable(
2+
'basic_cpp_test',
3+
'basic_cpp_test.cc',
4+
link_with: [
5+
libgensiooshcpp,
6+
libgensiocpp,
7+
libgensioosh,
8+
libgensio,
9+
],
10+
include_directories: [top_inc, inc_inc, cpp_inc],
11+
install: false,
12+
)
13+
14+
executable(
15+
'serial_test',
16+
'serial_test.cc',
17+
link_with: [
18+
libgensiooshcpp,
19+
libgensiocpp,
20+
libgensioosh,
21+
libgensio,
22+
],
23+
include_directories: [top_inc, inc_inc, cpp_inc],
24+
install: false,
25+
)

examples/meson.build

Whitespace-only changes.

glib/include/gensio/meson.build

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
install_headers(
2+
'gensio_glib_dllvisibility.h',
3+
'gensio_glib.h',
4+
)

glib/meson.build

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
libgensioglib = library(
2+
'gensioglib',
3+
sources: ['gensio_glib.c'],
4+
include_directories: [top_inc, glib_inc, inc_inc],
5+
link_with: [libgensioosh, libgensio],
6+
dependencies: [found_deps['glib-2.0'], found_deps['openssl']],
7+
install: true,
8+
soversion: soversion,
9+
)
10+
11+
pkg.generate(
12+
libgensioglib,
13+
name: 'libgensioglib',
14+
description: 'Glib bindings for gensio',
15+
)
16+
17+
install_man('gensio_glib_funcs_alloc.3')
18+
19+
subdir('include/gensio')

include/gensio/meson.build

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
configure_file(input : 'gensio_version.h.in',
2+
output : 'gensio_version.h',
3+
configuration : version_conf,
4+
install : true,
5+
install_dir : gensio_includedir)
6+
7+
install_headers(
8+
'argvutils.h',
9+
'gensio_acc_gensio.h',
10+
'gensio_addr.h',
11+
'gensio_ax25_addr.h',
12+
'gensio_base.h',
13+
'gensio_buffer.h',
14+
'gensio_circbuf.h',
15+
'gensio_class.h',
16+
'gensio_control.h',
17+
'gensio_deprecated.h',
18+
'gensio_dllvisibility.h',
19+
'gensio_err.h',
20+
'gensio_list.h',
21+
'gensio_ll_fd.h',
22+
'gensio_ll_gensio.h',
23+
'gensio_mdns.h',
24+
'gensio_os_funcs_public.h',
25+
'gensio_os_funcs.h',
26+
'gensio_osops_addrinfo.h',
27+
'gensio_osops_env.h',
28+
'gensio_osops_stdsock.h',
29+
'gensio_osops.h',
30+
'gensio_selector.h',
31+
'gensio_time.h',
32+
'gensio_types.h',
33+
'gensio_unix.h',
34+
'gensio_utils.h',
35+
'gensio_win.h',
36+
'gensio.h',
37+
'gensioosh_dllvisibility.h',
38+
'netif.h',
39+
'selector.h',
40+
'sergensio_class.h',
41+
'sergensio.h',
42+
)

include/meson.build

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
subdir('gensio')

lib/meson.build

+178
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
1+
builtin_gensios = []
2+
builtin_gensios_str = '/* Do not edit, created by meson */\n'
3+
foreach g : builtin_gensios
4+
builtin_gensios_str += '\nINIT_GENSIO(@0@);'.format(g)
5+
endforeach
6+
builtin_gensios_h = custom_target(
7+
'builtin_gensios.h',
8+
output: 'builtin_gensios.h',
9+
capture: true,
10+
command: ['echo', builtin_gensios_str],
11+
)
12+
13+
libgensioosh_src = files(
14+
'gensio_addr.c',
15+
'gensio_addrinfo.c',
16+
'gensio_ax25_addr.c',
17+
'gensio_circbuf.c',
18+
'gensio_osops.c',
19+
'gensio_osops_env.c',
20+
'gensio_stdsock.c',
21+
'utils.c',
22+
)
23+
if target_machine.system() == 'linux'
24+
libgensioosh_src += files('gensio_unix.c', 'selector.c')
25+
endif
26+
if target_machine.system() == 'windows'
27+
libgensioosh_src += files('gensio_win.c')
28+
endif
29+
30+
libgensioosh = library(
31+
'gensioosh',
32+
sources: libgensioosh_src,
33+
include_directories: [top_inc, inc_inc],
34+
c_args: [
35+
'-DBUILDING_GENSIOOSH_DLL',
36+
'-DPKG_LIBEXEC="@0@"'.format(gensio_libexec),
37+
],
38+
install: true,
39+
soversion: soversion,
40+
dependencies: [found_deps['libsctp'], found_deps['threads'], found_deps['wrap']],
41+
)
42+
43+
pkg.generate(
44+
libgensioosh,
45+
name: 'libgensioosh',
46+
description: 'OS handler library for gensio',
47+
)
48+
49+
libgensiomdns_src = files('avahi_watcher.c', 'mdns.c')
50+
libgensiomdns = library(
51+
'gensiomdns',
52+
sources: libgensiomdns_src,
53+
include_directories: [top_inc, inc_inc],
54+
c_args: ['-DBUILDING_GENSIOMDNS_DLL'],
55+
link_with: [libgensioosh],
56+
dependencies: [found_deps['avahi-client']],
57+
install: true,
58+
soversion: soversion,
59+
)
60+
pkg.generate(
61+
libgensiomdns,
62+
name: 'libgensiomdns',
63+
description: 'A gensiolibrary to abstract MDNS interfaces',
64+
)
65+
66+
libgensio_src = files(
67+
'buffer.c',
68+
'gensio.c',
69+
'gensio_acc.c',
70+
'gensio_acc_gensio.c',
71+
'gensio_base.c',
72+
'gensio_ll_fd.c',
73+
'gensio_ll_gensio.c',
74+
'sergensio.c',
75+
)
76+
77+
libgensio = library(
78+
'gensio',
79+
sources: libgensio_src + [builtin_gensios_h],
80+
include_directories: [top_inc, inc_inc],
81+
c_args: ['-DBUILDING_GENSIO_DLL'],
82+
link_with: [libgensioosh],
83+
install: true,
84+
soversion: soversion,
85+
)
86+
pkg.generate(
87+
libgensio,
88+
name: 'libgensiomdns',
89+
description: 'A library to abstract stream I/O like serial port, TCP, telnet, UDP, SSL, IPMI SOL, etc.',
90+
)
91+
92+
93+
dynamic_gensio_rpath = '-rpath "@0@"'.format(gensio_libexec)
94+
dynamic_gensio_ldflags = [
95+
'-module',
96+
dynamic_gensio_rpath,
97+
'-avoid-version',
98+
]
99+
100+
gensios = [
101+
{'name': 'net'},
102+
{'name': 'udp'},
103+
{'name': 'sctp', 'deps': [found_deps['libsctp']]},
104+
{'name': 'stdio'},
105+
{'name': 'pty'},
106+
{'name': 'dummy'},
107+
{'name': 'conacc'},
108+
{'name': 'serialdev', 'src': ['sergensio_serialdev.c', 'seriallock.c']},
109+
{'name': 'echo'},
110+
{'name': 'file'},
111+
{
112+
'name': 'ipmisol',
113+
'src': ['gensio_ll_ipmisol.c', 'sergensio_ipmisol.c'],
114+
'deps': [found_deps['OpenIPMI']],
115+
},
116+
{'name': 'mdns', 'link': [libgensiomdns]},
117+
{
118+
'name': 'sound',
119+
'src': ['gensio_ll_sound.c', 'gensio_sound.c'],
120+
'deps': [found_deps['alsa']],
121+
},
122+
{'name': 'cm108gpio', 'deps': [found_deps['libudev']]},
123+
{
124+
'name': 'ssl',
125+
'src': ['gensio_ssl.c', 'gensio_filter_ssl.c'],
126+
'deps': [found_deps['openssl']],
127+
},
128+
{
129+
'name': 'certauth',
130+
'src': ['gensio_certauth.c', 'gensio_filter_certauth.c'],
131+
'deps': [found_deps['openssl']],
132+
},
133+
{'name': 'mux'},
134+
{
135+
'name': 'telnet',
136+
'src': ['sergensio_telnet.c', 'gensio_filter_telnet.c', 'telnet.c'],
137+
},
138+
{
139+
'name': 'msgdelim',
140+
'src': ['gensio_filter_msgdelim.c', 'gensio_msgdelim.c'],
141+
},
142+
{'name': 'relpkt', 'src': ['gensio_filter_relpkt.c', 'gensio_relpkt.c']},
143+
{'name': 'trace', 'src': ['gensio_filter_trace.c', 'gensio_trace.c']},
144+
{'name': 'perf', 'src': ['gensio_filter_perf.c', 'gensio_perf.c']},
145+
{'name': 'kiss', 'src': ['gensio_filter_kiss.c', 'gensio_kiss.c']},
146+
{'name': 'ax25'},
147+
{'name': 'xlt', 'src': ['gensio_filter_xlt.c', 'gensio_xlt.c']},
148+
{'name': 'keepopen'},
149+
{'name': 'script', 'src': ['gensio_filter_script.c', 'gensio_script.c']},
150+
{
151+
'name': 'ratelimit',
152+
'src': ['gensio_filter_ratelimit.c', 'gensio_ratelimit.c'],
153+
},
154+
{
155+
'name': 'afskmdm',
156+
'src': ['gensio_filter_afskmdm.c', 'gensio_afskmdm.c'],
157+
'deps': [libm_dep],
158+
},
159+
]
160+
161+
162+
foreach gensio : gensios
163+
name = gensio.get('name')
164+
src = gensio.get('src', 'gensio_@0@.c'.format(name))
165+
deps = gensio.get('deps', [])
166+
link = gensio.get('link', [])
167+
link_args = gensio.get('link-args', [])
168+
library(
169+
'gensio_' + name,
170+
src,
171+
include_directories: [top_inc, inc_inc],
172+
dependencies: [deps],
173+
link_with: [libgensio, libgensioosh] + link,
174+
link_args: link_args,
175+
install: true,
176+
install_dir: gensio_libexec,
177+
)
178+
endforeach

0 commit comments

Comments
 (0)