libs: fix API export/import and 'inconsistent linkage' on MSVC
[platform/upstream/gstreamer.git] / gst-libs / gst / video / meson.build
1 video_sources = [
2   'colorbalance.c',
3   'colorbalancechannel.c',
4   'convertframe.c',
5   'gstvideoaffinetransformationmeta.c',
6   'gstvideodecoder.c',
7   'gstvideoencoder.c',
8   'gstvideofilter.c',
9   'gstvideometa.c',
10   'gstvideopool.c',
11   'gstvideosink.c',
12   'gstvideotimecode.c',
13   'gstvideoutils.c',
14   'gstvideoutilsprivate.c',
15   'navigation.c',
16   'video.c',
17   'video-anc.c',
18   'video-blend.c',
19   'video-chroma.c',
20   'video-color.c',
21   'video-converter.c',
22   'video-dither.c',
23   'video-event.c',
24   'video-format.c',
25   'video-frame.c',
26   'video-info.c',
27   'video-multiview.c',
28   'video-resampler.c',
29   'video-scaler.c',
30   'video-tile.c',
31   'video-overlay-composition.c',
32   'videodirection.c',
33   'videoorientation.c',
34   'videooverlay.c',
35 ]
36
37 video_headers = [
38   'colorbalance.h',
39   'colorbalancechannel.h',
40   'gstvideoaffinetransformationmeta.h',
41   'gstvideodecoder.h',
42   'gstvideoencoder.h',
43   'gstvideofilter.h',
44   'gstvideometa.h',
45   'gstvideopool.h',
46   'gstvideosink.h',
47   'gstvideotimecode.h',
48   'gstvideoutils.h',
49   'navigation.h',
50   'video.h',
51   'video-anc.h',
52   'video-event.h',
53   'video-format.h',
54   'video-chroma.h',
55   'video-color.h',
56   'video-converter.h',
57   'video-dither.h',
58   'video-info.h',
59   'video-frame.h',
60   'video-prelude.h',
61   'video-scaler.h',
62   'video-tile.h',
63   'videodirection.h',
64   'videoorientation.h',
65   'videooverlay.h',
66   'video-resampler.h',
67   'video-blend.h',
68   'video-overlay-composition.h',
69   'video-multiview.h',
70 ]
71 install_headers(video_headers, subdir : 'gstreamer-1.0/gst/video/')
72
73 video_mkenum_headers = [
74   'video.h',
75   'video-anc.h',
76   'video-format.h',
77   'video-frame.h',
78   'video-chroma.h',
79   'video-color.h',
80   'video-converter.h',
81   'video-dither.h',
82   'video-info.h',
83   'video-resampler.h',
84   'video-scaler.h',
85   'video-tile.h',
86   'colorbalance.h',
87   'navigation.h',
88 ]
89
90 video_enums = gnome.mkenums_simple('video-enumtypes',
91   sources : video_mkenum_headers,
92   body_prefix : '#ifdef HAVE_CONFIG_H\n#include "config.h"\n#endif',
93   header_prefix : '#include <gst/video/video-prelude.h>',
94   decorator : 'GST_VIDEO_API',
95   install_header: true,
96   install_dir : join_paths(get_option('includedir'), 'gstreamer-1.0/gst/video'))
97 gstvideo_c = video_enums[0]
98 gstvideo_h = video_enums[1]
99 video_gen_sources = [gstvideo_h]
100
101 orcsrc = 'video-orc'
102 gstvideo_deps = [gst_base_dep, libm]
103 if have_orcc
104   gstvideo_deps += [orc_dep]
105   orc_h = custom_target(orcsrc + '.h',
106     input : orcsrc + '.orc',
107     output : orcsrc + '.h',
108     command : orcc_args + ['--header', '-o', '@OUTPUT@', '@INPUT@'])
109   orc_c = custom_target(orcsrc + '.c',
110     input : orcsrc + '.orc',
111     output : orcsrc + '.c',
112     command : orcc_args + ['--implementation', '-o', '@OUTPUT@', '@INPUT@'])
113 else
114   orc_h = configure_file(input : orcsrc + '-dist.h',
115     output : orcsrc + '.h',
116     configuration : configuration_data())
117   orc_c = configure_file(input : orcsrc + '-dist.c',
118     output : orcsrc + '.c',
119     configuration : configuration_data())
120 endif
121
122 gstvideo = library('gstvideo-@0@'.format(api_version),
123   video_sources, gstvideo_h, gstvideo_c, orc_c, orc_h,
124   c_args : gst_plugins_base_args + ['-DBUILDING_GST_VIDEO'],
125   include_directories: [configinc, libsinc],
126   version : libversion,
127   soversion : soversion,
128   darwin_versions : osxversion,
129   install : true,
130   dependencies : gstvideo_deps,
131 )
132
133 if build_gir
134   gst_gir_extra_args = gir_init_section + [ '--c-include=gst/video/video.h' ]
135   video_gen_sources += [gnome.generate_gir(gstvideo,
136     sources : video_sources + video_headers + [gstvideo_c] + [gstvideo_h],
137     namespace : 'GstVideo',
138     nsversion : api_version,
139     identifier_prefix : 'Gst',
140     symbol_prefix : 'gst',
141     export_packages : 'gstreamer-video-1.0',
142     includes : ['Gst-1.0', 'GstBase-1.0'],
143     install : true,
144     extra_args : gst_gir_extra_args,
145     dependencies : gstvideo_deps
146   )]
147 endif
148
149 video_dep = declare_dependency(link_with : gstvideo,
150   include_directories : [libsinc],
151   dependencies : gstvideo_deps,
152   sources : video_gen_sources)