doc: Build documentation with hotdoc
[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-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     'gstframepositioner.c'
65 ])
66
67 ges_headers = files([
68     'ges-types.h',
69     'ges.h',
70     'ges-prelude.h',
71     'ges-enums.h',
72     'ges-gerror.h',
73     'ges-meta-container.h',
74     'ges-timeline.h',
75     'ges-layer.h',
76     'ges-clip.h',
77     'ges-pipeline.h',
78     'ges-source-clip.h',
79     'ges-uri-clip.h',
80     'ges-base-effect-clip.h',
81     'ges-effect-clip.h',
82     'ges-operation-clip.h',
83     'ges-base-transition-clip.h',
84     'ges-transition-clip.h',
85     'ges-test-clip.h',
86     'ges-title-clip.h',
87     'ges-overlay-clip.h',
88     'ges-text-overlay-clip.h',
89     'ges-base-effect.h',
90     'ges-effect.h',
91     'ges-track.h',
92     'ges-audio-track.h',
93     'ges-video-track.h',
94     'ges-track-element.h',
95     'ges-source.h',
96     'ges-operation.h',
97     'ges-video-source.h',
98     'ges-audio-source.h',
99     'ges-video-uri-source.h',
100     'ges-audio-uri-source.h',
101     'ges-image-source.h',
102     'ges-multi-file-source.h',
103     'ges-transition.h',
104     'ges-audio-transition.h',
105     'ges-video-transition.h',
106     'ges-video-test-source.h',
107     'ges-audio-test-source.h',
108     'ges-title-source.h',
109     'ges-text-overlay.h',
110     'ges-screenshot.h',
111     'ges-formatter.h',
112     'ges-asset.h',
113     'ges-uri-asset.h',
114     'ges-clip-asset.h',
115     'ges-track-element-asset.h',
116     'ges-extractable.h',
117     'ges-project.h',
118     'ges-base-xml-formatter.h',
119     'ges-xml-formatter.h',
120     'ges-command-line-formatter.h',
121     'ges-timeline-element.h',
122     'ges-container.h',
123     'ges-effect-asset.h',
124     'ges-utils.h',
125     'ges-group.h'
126 ])
127
128 if libxml_dep.found()
129   ges_sources += files(['ges-pitivi-formatter.c'])
130   ges_headers += files(['ges-pitivi-formatter.h'])
131 endif
132
133 version_data = configuration_data()
134 version_data.set('GES_VERSION_MAJOR', gst_version_major)
135 version_data.set('GES_VERSION_MINOR', gst_version_minor)
136 version_data.set('GES_VERSION_MICRO', gst_version_micro)
137 version_data.set('GES_VERSION_NANO', gst_version_nano)
138
139 configure_file(input : 'ges-version.h.in',
140   output : 'ges-version.h',
141   install_dir : join_paths(get_option('includedir'), 'gstreamer-1.0/ges'),
142   configuration : version_data)
143
144 install_headers(ges_headers, subdir : 'gstreamer-1.0/ges')
145
146 flex = find_program('flex', required : false)
147 if not flex.found()
148   flex = find_program('win_flex', required : false)
149   if not flex.found()
150     error('flex not found')
151   endif
152 endif
153
154 parser = custom_target('gesparselex',
155   input : 'parse.l',
156   output : ['lex.priv_ges_parse_yy.c', 'ges-parse-lex.h'],
157   command : [flex, '-Ppriv_ges_parse_yy', '--header-file=@OUTPUT1@', '-o', '@OUTPUT0@', '@INPUT@']
158 )
159
160 libges = library('ges-1.0', ges_sources, parser,
161     version : libversion,
162     soversion : soversion,
163     darwin_versions : osxversion,
164     c_args : [ges_c_args] + ['-DBUILDING_GES'],
165     include_directories : [configinc],
166     install : true,
167     dependencies : libges_deps)
168
169 ges_gen_sources = []
170 if build_gir
171     ges_gir_extra_args = gir_init_section + [ '--c-include=ges/ges.h' ]
172     if meson.is_subproject()
173       # FIXME: There must be a better way to do this
174       # Need to pass the include path to find gst/gst.h and gst/gstenumtypes.h (built)
175       ges_gir_extra_args += ['--cflags-begin',
176       '-I' + meson.current_source_dir() + '/..',
177       '-I' + meson.current_build_dir() + '/..',
178       '--cflags-end']
179     endif
180     ges_gir = gnome.generate_gir(libges,
181         sources : ges_sources + ges_headers,
182         namespace : 'GES',
183         nsversion : apiversion,
184         identifier_prefix : 'GES',
185         symbol_prefix : 'ges',
186         export_packages : 'gst-editing-services-1.0',
187         includes : ['Gst-1.0', 'GstPbutils-1.0', 'GstVideo-1.0', 'Gio-2.0', 'GObject-2.0'],
188         install : true,
189         dependencies : libges_deps,
190         extra_args : ges_gir_extra_args
191     )
192
193     ges_gen_sources += [ges_gir]
194 endif
195
196 ges_dep = declare_dependency(link_with : libges,
197   include_directories : [configinc],
198   sources : ges_gen_sources,
199   dependencies : libges_deps,
200 )