adg: install adg-cairo-fallback.h
[adg.git] / src / adg / meson.build
blobc3bcf2ede8da95198f84704ec8428bfd22dd7906
1 adg_directories = include_directories('.')
4 adg_canvas_h = configure_file(
5     input:         'adg-canvas.h.in',
6     output:        '@BASENAME@',
7     configuration: data
10 adg_marshal = gnome.genmarshal('adg-marshal',
11     sources:        'adg-marshal.genmarshal',
12     prefix:         'adg_marshal',
13     internal:       true,
14     install_header: true,
15     install_dir:    join_paths(includedir, 'adg'),
16     extra_args:     [ '--quiet' ]
18 adg_marshal_c = adg_marshal[0]
19 adg_marshal_h = adg_marshal[1]
21 adg_type_builtins = gnome.mkenums('adg-type-builtins',
22     sources:        'adg-enums.h',
23     c_template:     'adg-type-builtins.c.mkenums',
24     h_template:     'adg-type-builtins.h.mkenums',
25     install_header: true,
26     install_dir:    join_paths(includedir, 'adg')
28 adg_type_builtins_c = adg_type_builtins[0]
29 adg_type_builtins_h = adg_type_builtins[1]
31 adg_c_built = [ adg_type_builtins_c, adg_marshal_c ]
32 adg_h_built = [ adg_type_builtins_h, adg_marshal_h, adg_canvas_h ]
34 adg_c_files = files([
35     'adg-adim.c',
36     'adg-alignment.c',
37     'adg-arrow.c',
38     'adg-cairo-fallback.c',
39     'adg-canvas.c',
40     'adg-color-style.c',
41     'adg-container.c',
42     'adg-dash.c',
43     'adg-dim-style.c',
44     'adg-dim.c',
45     'adg-dress.c',
46     'adg-edges.c',
47     'adg-entity.c',
48     'adg-enums.c',
49     'adg-fill-style.c',
50     'adg-font-style.c',
51     'adg-hatch.c',
52     'adg-ldim.c',
53     'adg-line-style.c',
54     'adg-logo.c',
55     'adg-marker.c',
56     'adg-matrix.c',
57     'adg-model.c',
58     'adg-param-dress.c',
59     'adg-path.c',
60     'adg-point.c',
61     'adg-projection.c',
62     'adg-rdim.c',
63     'adg-ruled-fill.c',
64     'adg-stroke.c',
65     'adg-style.c',
66     'adg-table-cell.c',
67     'adg-table-row.c',
68     'adg-table-style.c',
69     'adg-table.c',
70     'adg-text.c',
71     'adg-textual.c',
72     'adg-title-block.c',
73     'adg-toy-text.c',
74     'adg-trail.c',
75     'adg-utils.c',
78 adg_h_files = files([
79     'adg-adim.h',
80     'adg-alignment.h',
81     'adg-arrow.h',
82     'adg-cairo-fallback.h',
83     'adg-color-style.h',
84     'adg-container.h',
85     'adg-dash.h',
86     'adg-dim-style.h',
87     'adg-dim.h',
88     'adg-dress.h',
89     'adg-edges.h',
90     'adg-entity.h',
91     'adg-enums.h',
92     'adg-fill-style.h',
93     'adg-font-style.h',
94     'adg-forward-declarations.h',
95     'adg-hatch.h',
96     'adg-ldim.h',
97     'adg-line-style.h',
98     'adg-logo.h',
99     'adg-marker.h',
100     'adg-matrix.h',
101     'adg-model.h',
102     'adg-param-dress.h',
103     'adg-path.h',
104     'adg-point.h',
105     'adg-projection.h',
106     'adg-rdim.h',
107     'adg-ruled-fill.h',
108     'adg-stroke.h',
109     'adg-style.h',
110     'adg-table-cell.h',
111     'adg-table-row.h',
112     'adg-table-style.h',
113     'adg-table.h',
114     'adg-text.h',
115     'adg-text-internal.h',
116     'adg-textual.h',
117     'adg-toy-text.h',
118     'adg-title-block.h',
119     'adg-trail.h',
120     'adg-utils.h',
123 adg_internal_names = [
124     'adg-adim-private.h',
125     'adg-alignment-private.h',
126     'adg-arrow-private.h',
127     'adg-canvas-private.h',
128     'adg-color-style-private.h',
129     'adg-container-private.h',
130     'adg-dash-private.h',
131     'adg-dim-private.h',
132     'adg-dim-style-private.h',
133     'adg-dress-private.h',
134     'adg-edges-private.h',
135     'adg-entity-private.h',
136     'adg-fill-style-private.h',
137     'adg-font-style-private.h',
138     'adg-hatch-private.h',
139     'adg-internal.h',
140     'adg-ldim-private.h',
141     'adg-line-style-private.h',
142     'adg-logo-private.h',
143     'adg-marker-private.h',
144     'adg-model-private.h',
145     'adg-path-private.h',
146     'adg-projection-private.h',
147     'adg-rdim-private.h',
148     'adg-ruled-fill-private.h',
149     'adg-stroke-private.h',
150     'adg-table-private.h',
151     'adg-table-style-private.h',
152     'adg-text-private.h',
153     'adg-title-block-private.h',
154     'adg-toy-text-private.h',
155     'adg-trail-private.h',
158 if pangocairo_dep.found()
159     adg_c_files += files([
160         'adg-pango-style.c',
161     ])
162     adg_h_files += files([
163         'adg-pango-style.h',
164     ])
165     adg_internal_names += 'adg-pango-style-private.h'
166 endif
168 if gtk_dep.found()
169     adg_c_files += files([
170         'adg-gtk-area.c',
171         'adg-gtk-layout.c',
172         'adg-gtk-utils.c',
173     ])
174     adg_h_files += files([
175         'adg-gtk-area.h',
176         'adg-gtk-layout.h',
177         'adg-gtk-utils.h',
178     ])
179     adg_internal_names += [
180         'adg-gtk-area-private.h',
181         'adg-gtk-layout-private.h',
182     ]
183 endif
185 adg_internal_files = files(adg_internal_names)
188 # Build the ADG library
189 adg_deps = [
190     cpml_dep,
191     pangocairo_dep,
192     gtk_dep,
195 adg_cflags = [
196     '-DLOCALEDIR="' + localedir + '"',
199 adg_soversion = '@0@.@1@.@2@'.format(
200     adg_current - adg_age,
201     adg_age,
202     adg_revision
205 adg = library('adg-' + metadata['api'],
206     sources:      adg_c_files + adg_c_built + adg_h_files + adg_h_built + adg_internal_files,
207     dependencies: adg_deps,
208     version:      adg_soversion,
209     c_args:       adg_cflags,
210     install:      true
213 adg_dep = declare_dependency(
214     sources:             adg_h_built,
215     dependencies:        adg_deps,
216     compile_args:        adg_cflags,
217     link_with:           adg,
218     include_directories: src_directories
221 install_headers(adg_h_files, subdir: 'adg')
224 # pkg-config support for ADG library
225 pkgconfig.generate(adg,
226     name:        'ADG',
227     filebase:    'adg-' + metadata['api'],
228     description: 'Automatic Drawing Generation',
229     url:         metadata['homepage'],
230     subdirs:     pkgdir,
231     version:     meson.project_version()
235 # GObject introspection support for ADG library
236 if introspection_dep.found()
237     adg_gir_includes = [ 'GObject-2.0', 'cairo-1.0', cpml_gir[0] ]
238     if pangocairo_dep.found()
239         adg_gir_includes += 'PangoCairo-1.0'
240     endif
241     if gtk_dep.found()
242         adg_gir_includes += use_gtk2 ? 'Gtk-2.0' : 'Gtk-3.0'
243     endif
244     adg_gir = gnome.generate_gir(adg,
245         sources:             [ adg_h ] + adg_h_files + adg_h_built + adg_c_files + adg_c_built,
246         namespace:           'Adg',
247         nsversion:           metadata['api'],
248         identifier_prefix:   'Adg',
249         symbol_prefix:       'adg',
250         includes:            adg_gir_includes,
251         include_directories: src_directories,
252         header:              'adg.h',
253         install:             true,
254         extra_args: [
255             '--quiet',
256             '--sources-top-dirs=' + meson.current_source_dir(),
257             '--sources-top-dirs=' + meson.current_build_dir(),
258         ]
259     )
260 endif