Meson: Use pkg-config generator
[platform/upstream/gstreamer.git] / gst-libs / gst / audio / meson.build
1 audio_src= [
2   'audio.c',
3   'audio-buffer.c',
4   'audio-channel-mixer.c',
5   'audio-channels.c',
6   'audio-converter.c',
7   'audio-format.c',
8   'audio-info.c',
9   'audio-quantize.c',
10   'audio-resampler.c',
11   'gstaudioaggregator.c',
12   'gstaudiobasesink.c',
13   'gstaudiobasesrc.c',
14   'gstaudiocdsrc.c',
15   'gstaudioclock.c',
16   'gstaudiodecoder.c',
17   'gstaudioencoder.c',
18   'gstaudiofilter.c',
19   'gstaudioiec61937.c',
20   'gstaudiometa.c',
21   'gstaudioringbuffer.c',
22   'gstaudiosink.c',
23   'gstaudiosrc.c',
24   'gstaudioutilsprivate.c',
25   'streamvolume.c',
26   'gstaudiostreamalign.c',
27 ]
28
29 audio_mkenum_headers = [
30   'audio.h',
31   'audio-format.h',
32   'audio-channels.h',
33   'audio-channel-mixer.h',
34   'audio-converter.h',
35   'audio-info.h',
36   'audio-quantize.h',
37   'audio-resampler.h',
38   'gstaudioaggregator.h',
39   'gstaudioringbuffer.h',
40   'gstaudiobasesrc.h',
41   'gstaudiocdsrc.h',
42   'gstaudiobasesink.h',
43   'gstaudiostreamalign.h',
44 ]
45
46 # FIXME: check headers
47 audio_headers = audio_mkenum_headers + [
48   'audio-prelude.h',
49   'audio-buffer.h',
50   'gstaudiobasesink.h',
51   'gstaudiobasesrc.h',
52   'gstaudiocdsrc.h',
53   'gstaudioclock.h',
54   'gstaudiodecoder.h',
55   'gstaudioencoder.h',
56   'gstaudiofilter.h',
57   'gstaudioiec61937.h',
58   'gstaudiometa.h',
59   'gstaudiosink.h',
60   'gstaudiosrc.h',
61   'streamvolume.h',
62 ]
63 install_headers(audio_headers, subdir : 'gstreamer-1.0/gst/audio/')
64
65 audio_enums = gnome.mkenums_simple('audio-enumtypes',
66   sources : audio_mkenum_headers,
67   body_prefix : '#ifdef HAVE_CONFIG_H\n#include "config.h"\n#endif',
68   header_prefix : '#include <gst/audio/audio-prelude.h>',
69   decorator : 'GST_AUDIO_API',
70   install_header: true,
71   install_dir : join_paths(get_option('includedir'), 'gstreamer-1.0/gst/audio'))
72 gstaudio_c = audio_enums[0]
73 gstaudio_h = audio_enums[1]
74
75 audio_gen_sources = [gstaudio_h]
76
77 gstaudio_deps = [tag_dep, gst_base_dep, libm]
78 orcsrc = 'gstaudiopack'
79 if have_orcc
80   gstaudio_deps += [orc_dep]
81   orc_h = custom_target(orcsrc + '.h',
82     input : orcsrc + '.orc',
83     output : orcsrc + '.h',
84     command : orcc_args + ['--header', '-o', '@OUTPUT@', '@INPUT@'])
85   orc_c = custom_target(orcsrc + '.c',
86     input : orcsrc + '.orc',
87     output : orcsrc + '.c',
88     command : orcc_args + ['--implementation', '-o', '@OUTPUT@', '@INPUT@'])
89   orc_targets += {'name': orcsrc, 'orc-source': files(orcsrc + '.orc'), 'header': orc_h, 'source': orc_c}
90 else
91   orc_h = configure_file(input : orcsrc + '-dist.h',
92     output : orcsrc + '.h',
93     copy : true)
94   orc_c = configure_file(input : orcsrc + '-dist.c',
95     output : orcsrc + '.c',
96     copy : true)
97 endif
98
99 simd_cargs = []
100 simd_dependencies = []
101
102 if have_sse
103   audio_resampler_sse = static_library('audio_resampler_sse',
104     ['audio-resampler-x86-sse.c', gstaudio_h],
105     c_args : gst_plugins_base_args + [sse_args],
106     include_directories : [configinc, libsinc],
107     dependencies : [gst_base_dep],
108     pic : true,
109     install : false
110   )
111   simd_cargs += ['-DHAVE_SSE']
112   simd_dependencies += audio_resampler_sse
113 endif
114
115 if have_sse2
116   audio_resampler_sse2 = static_library('audio_resampler_sse2',
117     ['audio-resampler-x86-sse2.c', gstaudio_h],
118     c_args : gst_plugins_base_args + [sse2_args],
119     include_directories : [configinc, libsinc],
120     dependencies : [gst_base_dep],
121     pic : true,
122     install : false
123   )
124
125   simd_cargs += ['-DHAVE_SSE2']
126   simd_dependencies += audio_resampler_sse2
127 endif
128
129 if have_sse41
130   audio_resampler_sse41 = static_library('audio_resampler_sse41',
131     ['audio-resampler-x86-sse41.c', gstaudio_h],
132     c_args : gst_plugins_base_args + [sse41_args],
133     include_directories : [configinc, libsinc],
134     dependencies : [gst_base_dep],
135     pic : true,
136     install : false
137   )
138
139   simd_cargs += ['-DHAVE_SSE41']
140   simd_dependencies += audio_resampler_sse41
141 endif
142
143 gstaudio = library('gstaudio-@0@'.format(api_version),
144   audio_src, gstaudio_h, gstaudio_c, orc_c, orc_h,
145   c_args : gst_plugins_base_args + simd_cargs + ['-DBUILDING_GST_AUDIO'],
146   include_directories: [configinc, libsinc],
147   link_with : simd_dependencies,
148   version : libversion,
149   soversion : soversion,
150   darwin_versions : osxversion,
151   install : true,
152   dependencies : gstaudio_deps,
153 )
154
155 pkgconfig.generate(gstaudio,
156   libraries : [gst_dep, gst_base_dep],
157   variables : pkgconfig_variables,
158   subdirs : pkgconfig_subdirs,
159   name : 'gstreamer-audio-1.0',
160   description : 'Audio helper functions and base classes',
161 )
162
163 if build_gir
164   gst_gir_extra_args = gir_init_section + [ '--c-include=gst/audio/audio.h' ]
165   audio_gir = gnome.generate_gir(gstaudio,
166     sources : audio_src + audio_headers + [gstaudio_c] + [gstaudio_h],
167     namespace : 'GstAudio',
168     nsversion : api_version,
169     identifier_prefix : 'Gst',
170     symbol_prefix : 'gst',
171     export_packages : 'gstreamer-audio-1.0',
172     includes : ['Gst-1.0', 'GstBase-1.0', 'GLib-2.0', 'GObject-2.0', 'GModule-2.0' ],
173     install : true,
174     extra_args : gst_gir_extra_args,
175     dependencies : gstaudio_deps
176   )
177   audio_gen_sources += [audio_gir]
178 endif
179
180 audio_dep = declare_dependency(link_with : gstaudio,
181   include_directories : [libsinc],
182   dependencies : gstaudio_deps,
183   sources : audio_gen_sources)
184
185 meson.override_dependency('gstreamer-audio-1.0', audio_dep)