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