Meson: Use pkg-config generator
[platform/upstream/gstreamer.git] / ges / meson.build
1 ges_sources = files([
2     'ges.c',
3     'ges-enums.c',
4     'ges-meta-container.c',
5     'ges-timeline.c',
6     'ges-layer.c',
7     'ges-clip.c',
8     'ges-pipeline.c',
9     'ges-source-clip.c',
10     'ges-source-clip-asset.c',
11     'ges-base-effect-clip.c',
12     'ges-effect-clip.c',
13     'ges-uri-clip.c',
14     'ges-uri-source.c',
15     'ges-operation-clip.c',
16     'ges-base-transition-clip.c',
17     'ges-transition-clip.c',
18     'ges-time-overlay-clip.c',
19     'ges-test-clip.c',
20     'ges-title-clip.c',
21     'ges-overlay-clip.c',
22     'ges-text-overlay-clip.c',
23     'ges-track.c',
24     'ges-audio-track.c',
25     'ges-video-track.c',
26     'ges-track-element.c',
27     'ges-source.c',
28     'ges-operation.c',
29     'ges-video-source.c',
30     'ges-audio-source.c',
31     'ges-video-uri-source.c',
32     'ges-audio-uri-source.c',
33     'ges-image-source.c',
34     'ges-multi-file-source.c',
35     'ges-transition.c',
36     'ges-audio-transition.c',
37     'ges-video-transition.c',
38     'ges-video-test-source.c',
39     'ges-audio-test-source.c',
40     'ges-title-source.c',
41     'ges-text-overlay.c',
42     'ges-base-effect.c',
43     'ges-effect.c',
44     'ges-screenshot.c',
45     'ges-formatter.c',
46     'ges-asset.c',
47     'ges-uri-asset.c',
48     'ges-clip-asset.c',
49     'ges-track-element-asset.c',
50     'ges-extractable.c',
51     'ges-project.c',
52     'ges-base-xml-formatter.c',
53     'ges-xml-formatter.c',
54     'ges-command-line-formatter.c',
55     'ges-auto-transition.c',
56     'ges-timeline-element.c',
57     'ges-timeline-tree.c',
58     'ges-container.c',
59     'ges-effect-asset.c',
60     'ges-smart-adder.c',
61     'ges-smart-video-mixer.c',
62     'ges-utils.c',
63     'ges-group.c',
64     'ges-validate.c',
65     'ges-structured-interface.c',
66     'ges-structure-parser.c',
67     'ges-marker-list.c',
68     'gstframepositioner.c'
69 ])
70
71 ges_headers = files([
72     'ges-types.h',
73     'ges.h',
74     'ges-prelude.h',
75     'ges-enums.h',
76     'ges-gerror.h',
77     'ges-meta-container.h',
78     'ges-timeline.h',
79     'ges-layer.h',
80     'ges-clip.h',
81     'ges-pipeline.h',
82     'ges-source-clip.h',
83     'ges-source-clip-asset.h',
84     'ges-uri-clip.h',
85     'ges-base-effect-clip.h',
86     'ges-effect-clip.h',
87     'ges-operation-clip.h',
88     'ges-base-transition-clip.h',
89     'ges-transition-clip.h',
90     'ges-test-clip.h',
91     'ges-time-overlay-clip.h',
92     'ges-title-clip.h',
93     'ges-overlay-clip.h',
94     'ges-text-overlay-clip.h',
95     'ges-base-effect.h',
96     'ges-effect.h',
97     'ges-track.h',
98     'ges-audio-track.h',
99     'ges-video-track.h',
100     'ges-track-element.h',
101     'ges-track-element-deprecated.h',
102     'ges-source.h',
103     'ges-operation.h',
104     'ges-video-source.h',
105     'ges-audio-source.h',
106     'ges-video-uri-source.h',
107     'ges-audio-uri-source.h',
108     'ges-image-source.h',
109     'ges-multi-file-source.h',
110     'ges-transition.h',
111     'ges-audio-transition.h',
112     'ges-video-transition.h',
113     'ges-video-test-source.h',
114     'ges-audio-test-source.h',
115     'ges-title-source.h',
116     'ges-text-overlay.h',
117     'ges-screenshot.h',
118     'ges-formatter.h',
119     'ges-asset.h',
120     'ges-uri-asset.h',
121     'ges-clip-asset.h',
122     'ges-track-element-asset.h',
123     'ges-extractable.h',
124     'ges-project.h',
125     'ges-base-xml-formatter.h',
126     'ges-xml-formatter.h',
127     'ges-command-line-formatter.h',
128     'ges-timeline-element.h',
129     'ges-container.h',
130     'ges-effect-asset.h',
131     'ges-utils.h',
132     'ges-group.h',
133     'ges-marker-list.h'
134 ])
135
136 if libxml_dep.found()
137   ges_sources += files(['ges-pitivi-formatter.c'])
138   ges_headers += files(['ges-pitivi-formatter.h'])
139 endif
140
141 version_data = configuration_data()
142 version_data.set('GES_VERSION_MAJOR', gst_version_major)
143 version_data.set('GES_VERSION_MINOR', gst_version_minor)
144 version_data.set('GES_VERSION_MICRO', gst_version_micro)
145 version_data.set('GES_VERSION_NANO', gst_version_nano)
146
147 ges_headers += [configure_file(input : 'ges-version.h.in',
148   output : 'ges-version.h',
149   install_dir : join_paths(get_option('includedir'), 'gstreamer-1.0/ges'),
150   configuration : version_data)]
151
152 install_headers(ges_headers, subdir : 'gstreamer-1.0/ges')
153
154 flex = find_program('flex', required : false)
155 if not flex.found()
156   flex = find_program('win_flex', required : false)
157   if not flex.found()
158     error('flex not found')
159   endif
160 endif
161
162 parser = custom_target('gesparselex',
163   input : 'parse.l',
164   output : ['lex.priv_ges_parse_yy.c', 'ges-parse-lex.h'],
165   command : [flex, '-Ppriv_ges_parse_yy', '--header-file=@OUTPUT1@', '-o', '@OUTPUT0@', '@INPUT@']
166 )
167
168 ges_resources = []
169 if has_python
170   ges_resources = gnome.compile_resources(
171       'ges-resources', 'ges.resource',
172       source_dir: '.',
173       c_name: 'ges'
174   )
175 endif
176
177 libges = library('ges-1.0', ges_sources, parser, ges_resources,
178     version : libversion,
179     soversion : soversion,
180     darwin_versions : osxversion,
181     c_args : [ges_c_args] + ['-DBUILDING_GES'],
182     include_directories : [configinc],
183     install : true,
184     dependencies : libges_deps)
185
186 pkgconfig.generate(libges,
187   libraries : [gst_dep, gstbase_dep, gstpbutils_dep, gstcontroller_dep],
188   subdirs : pkgconfig_subdirs,
189   name : 'gst-editing-services-1.0',
190   description : 'GStreamer Editing Services',
191 )
192
193 ges_gen_sources = []
194 if build_gir
195     ges_gir_extra_args = gir_init_section + [ '--c-include=ges/ges.h' ]
196     if meson.is_subproject()
197       # FIXME: There must be a better way to do this
198       # Need to pass the include path to find gst/gst.h and gst/gstenumtypes.h (built)
199       ges_gir_extra_args += ['--cflags-begin',
200       '-I' + meson.current_source_dir() + '/..',
201       '-I' + meson.current_build_dir() + '/..',
202       '--cflags-end']
203     endif
204     ges_gir = gnome.generate_gir(libges,
205         sources : ges_sources + ges_headers,
206         namespace : 'GES',
207         nsversion : apiversion,
208         identifier_prefix : 'GES',
209         symbol_prefix : 'ges',
210         export_packages : 'gst-editing-services-1.0',
211         includes : ['Gst-1.0', 'GstPbutils-1.0', 'GstVideo-1.0', 'Gio-2.0', 'GObject-2.0'],
212         install : true,
213         dependencies : libges_deps,
214         extra_args : ges_gir_extra_args
215     )
216
217     ges_gen_sources += [ges_gir]
218 endif
219
220 ges_dep = declare_dependency(link_with : libges,
221   include_directories : [configinc],
222   sources : ges_gen_sources,
223   dependencies : libges_deps,
224 )
225
226 meson.override_dependency('gst-editing-services-1.0', ges_dep)