aboutsummaryrefslogtreecommitdiff
path: root/src/conversation/meson.build
blob: b3fb070d921328a0f4d80bfd831bd2f283098d7e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
libgnunetconversation_src = ['conversation_api.c', 'conversation_api_call.c']

gnunetserviceconversation_src = ['gnunet-service-conversation.c']

gnunetconversationproxy_src = ['gnunet-conversation-proxy.c']

configure_file(input : 'conversation.conf.in',
               output : 'conversation.conf',
               configuration : cdata,
               install: true,
               install_dir: pkgcfgdir)


if get_option('monolith')
  foreach p : libgnunetconversation_src + gnunetserviceconversation_src
    gnunet_src += 'conversation/' + p
  endforeach
  subdir_done()
endif

libgnunetmicrophone = library('gnunetmicrophone',
        ['microphone.c'],
        soversion: '0',
        version: '0.0.0',
        dependencies: [libgnunetutil_dep],
        include_directories: [incdir, configuration_inc],
        install: true,
        install_dir: get_option('libdir'))
libgnunetmicrophone_dep = declare_dependency(link_with : libgnunetmicrophone)
pkg.generate(libgnunetmicrophone, url: 'https://www.gnunet.org',
             description : 'Provides API to access to microphone')

libgnunetspeaker = library('gnunetspeaker',
        ['speaker.c'],
        soversion: '0',
        version: '0.0.0',
        dependencies: [libgnunetutil_dep],
        include_directories: [incdir, configuration_inc],
        install: true,
        install_dir: get_option('libdir'))
libgnunetspeaker_dep = declare_dependency(link_with : libgnunetspeaker)
pkg.generate(libgnunetspeaker, url: 'https://www.gnunet.org',
             description : 'Provides API to access to speaker')

libgnunetconversation = library('gnunetconversation',
        libgnunetconversation_src,
        soversion: '0',
        version: '0.0.0',
        dependencies: [libgnunetutil_dep,
                       libgnunetgnsrecord_dep,
                       libgnunetgns_dep,
                       libgnunetnamestore_dep,
                       libgnunetidentity_dep],
        include_directories: [incdir, configuration_inc],
        install: true,
        install_dir: get_option('libdir'))
libgnunetconversation_dep = declare_dependency(link_with : libgnunetconversation)
pkg.generate(libgnunetconversation, url: 'https://www.gnunet.org',
             description : 'Provides API to access to conversation')

shared_module('gnunet_plugin_gnsrecord_conversation',
        ['plugin_gnsrecord_conversation.c'],
        dependencies: [libgnunetutil_dep,
                       libgnunetconversation_dep,
                       libgnunetgns_dep,
                       libgnunetgnsrecord_dep,
                       libgnunetidentity_dep],
        include_directories: [incdir, configuration_inc],
        install: true,
        install_dir: get_option('libdir')/'gnunet')

executable ('gnunet-conversation',
            'gnunet-conversation.c',
            dependencies: [libgnunetconversation_dep,
                           libgnunetgns_dep,
                           libgnunetgnsrecord_dep,
                           libgnunetnamestore_dep,
                           libgnunetspeaker_dep,
                           libgnunetmicrophone_dep,
                           libgnunetidentity_dep,
                           libgnunetutil_dep],
            include_directories: [incdir, configuration_inc],
            install: true,
            install_dir: get_option('bindir'))

executable ('gnunet-service-conversation',
            gnunetserviceconversation_src,
            dependencies: [libgnunetconversation_dep,
                           libgnunetutil_dep,
                           libgnunetspeaker_dep,
                           libgnunetmicrophone_dep,
                           libgnunetidentity_dep,
                           libgnunetcadet_dep],
            include_directories: [incdir, configuration_inc],
            install: true,
            install_dir: get_option('libdir') / 'gnunet' / 'libexec')

helperrecord_src = ['gnunet-helper-audio-record.c']
helperplayback_src = ['gnunet-helper-audio-record.c']
if conversation_backend == 'gst'
  helperrecord_src = ['gnunet-helper-audio-record-gst.c']
  helperplayback_src = ['gnunet-helper-audio-playback-gst.c']
endif

executable ('gnunet-helper-audio-record',
            helperrecord_src,
            dependencies: [libgnunetconversation_dep,
                           libgnunetutil_dep,
                           libgnunetspeaker_dep,
                           libgnunetmicrophone_dep,
                           gst_dep,
                           ogg_dep,
                           pulse_dep,
                           opus_dep
                           ],
            include_directories: [incdir, configuration_inc],
            install: true,
            install_dir: get_option('libdir') / 'gnunet' / 'libexec')

executable ('gnunet-helper-audio-playback',
         helperplayback_src,
          dependencies: [libgnunetconversation_dep,
                         libgnunetutil_dep,
                         libgnunetspeaker_dep,
                         libgnunetmicrophone_dep,
                         gst_dep,
                         ogg_dep,
                         pulse_dep,
                         opus_dep
                         ],
          include_directories: [incdir, configuration_inc],
          install: true,
          install_dir: get_option('libdir') / 'gnunet' / 'libexec')

testconvapi = executable ('test_conversation_api',
         ['test_conversation_api.c'],
          dependencies: [libgnunetconversation_dep,
                         libgnunetutil_dep,
                         libgnunetidentity_dep,
                         libgnunettesting_dep,
                         libgnunetgnsrecord_dep,
                         libgnunetnamestore_dep,
                         libgnunetspeaker_dep,
                         libgnunetmicrophone_dep,
                         ],
          include_directories: [incdir, configuration_inc],
          install: true,
          install_dir: get_option('libdir') / 'gnunet' / 'libexec')

testconvapitwo = executable ('test_conversation_api_twocalls',
         ['test_conversation_api_twocalls.c'],
          dependencies: [libgnunetconversation_dep,
                         libgnunetutil_dep,
                         libgnunetidentity_dep,
                         libgnunettesting_dep,
                         libgnunetgnsrecord_dep,
                         libgnunetnamestore_dep,
                         libgnunetspeaker_dep,
                         libgnunetmicrophone_dep,
                         ],
          include_directories: [incdir, configuration_inc],
          install: true,
          install_dir: get_option('libdir') / 'gnunet' / 'libexec')

testconvapireject = executable ('test_conversation_api_reject',
         ['test_conversation_api_reject.c'],
          dependencies: [libgnunetconversation_dep,
                         libgnunetutil_dep,
                         libgnunetidentity_dep,
                         libgnunettesting_dep,
                         libgnunetgnsrecord_dep,
                         libgnunetnamestore_dep,
                         libgnunetspeaker_dep,
                         libgnunetmicrophone_dep,
                         ],
          include_directories: [incdir, configuration_inc],
          install: true,
          install_dir: get_option('libdir') / 'gnunet' / 'libexec')

configure_file(input : 'test_conversation.conf',
               output : 'test_conversation.conf',
               copy: true,
               install: false)

test('test_conversation_api', testconvapi, workdir: meson.current_build_dir(),
     suite: 'conversation')

test('test_conversation_api_twocalls', testconvapitwo, workdir: meson.current_build_dir(),
     suite: 'conversation')

test('test_conversation_api_reject', testconvapireject, workdir: meson.current_build_dir(),
     suite: 'conversation')