diff options
author | Mathieu Duponchelle <mathieu@centricular.com> | 2018-05-21 20:08:22 +0200 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.com> | 2020-07-31 12:21:50 +0100 |
commit | 596a82f2d185b101bd74645492821fe2f9e0daa0 (patch) | |
tree | 3a595c888df37054bebb989455e73ea3683c6477 /src/meson.build | |
parent | a75f8df95761bf88b54c326c5312117ea5073010 (diff) | |
download | cairo-596a82f2d185b101bd74645492821fe2f9e0daa0.tar.gz |
Add meson build definitions
Co-Authored by:
Nirbheek Chauhan <nirbheek@centricular.com>
lb90 <luca.bacci982@gmail.com>
Tim-Philipp Müller <tim@centricular.com>
Diffstat (limited to 'src/meson.build')
-rw-r--r-- | src/meson.build | 322 |
1 files changed, 322 insertions, 0 deletions
diff --git a/src/meson.build b/src/meson.build new file mode 100644 index 000000000..5a3fb92e5 --- /dev/null +++ b/src/meson.build @@ -0,0 +1,322 @@ +cairo_sources = [ + 'cairo-analysis-surface.c', + 'cairo-arc.c', + 'cairo-array.c', + 'cairo-atomic.c', + 'cairo-base64-stream.c', + 'cairo-base85-stream.c', + 'cairo-bentley-ottmann-rectangular.c', + 'cairo-bentley-ottmann-rectilinear.c', + 'cairo-bentley-ottmann.c', + 'cairo-botor-scan-converter.c', + 'cairo-boxes-intersect.c', + 'cairo-boxes.c', + 'cairo-cache.c', + 'cairo-clip-boxes.c', + 'cairo-clip-polygon.c', + 'cairo-clip-region.c', + 'cairo-clip-surface.c', + 'cairo-clip-tor-scan-converter.c', + 'cairo-clip.c', + 'cairo-color.c', + 'cairo-composite-rectangles.c', + 'cairo-compositor.c', + 'cairo-contour.c', + 'cairo-damage.c', + 'cairo-debug.c', + 'cairo-default-context.c', + 'cairo-device.c', + 'cairo-error.c', + 'cairo-fallback-compositor.c', + 'cairo-fixed.c', + 'cairo-font-face-twin-data.c', + 'cairo-font-face-twin.c', + 'cairo-font-face.c', + 'cairo-font-options.c', + 'cairo-freed-pool.c', + 'cairo-freelist.c', + 'cairo-gstate.c', + 'cairo-hash.c', + 'cairo-hull.c', + 'cairo-image-compositor.c', + 'cairo-image-info.c', + 'cairo-image-source.c', + 'cairo-image-surface.c', + 'cairo-line.c', + 'cairo-lzw.c', + 'cairo-mask-compositor.c', + 'cairo-matrix.c', + 'cairo-mempool.c', + 'cairo-mesh-pattern-rasterizer.c', + 'cairo-misc.c', + 'cairo-mono-scan-converter.c', + 'cairo-mutex.c', + 'cairo-no-compositor.c', + 'cairo-observer.c', + 'cairo-output-stream.c', + 'cairo-paginated-surface.c', + 'cairo-path-bounds.c', + 'cairo-path-fill.c', + 'cairo-path-fixed.c', + 'cairo-path-in-fill.c', + 'cairo-path-stroke-boxes.c', + 'cairo-path-stroke-polygon.c', + 'cairo-path-stroke-traps.c', + 'cairo-path-stroke-tristrip.c', + 'cairo-path-stroke.c', + 'cairo-path.c', + 'cairo-pattern.c', + 'cairo-pen.c', + 'cairo-polygon-intersect.c', + 'cairo-polygon-reduce.c', + 'cairo-polygon.c', + 'cairo-raster-source-pattern.c', + 'cairo-recording-surface.c', + 'cairo-rectangle.c', + 'cairo-rectangular-scan-converter.c', + 'cairo-region.c', + 'cairo-rtree.c', + 'cairo-scaled-font.c', + 'cairo-shape-mask-compositor.c', + 'cairo-slope.c', + 'cairo-spans-compositor.c', + 'cairo-spans.c', + 'cairo-spline.c', + 'cairo-stroke-dash.c', + 'cairo-stroke-style.c', + 'cairo-surface-clipper.c', + 'cairo-surface-fallback.c', + 'cairo-surface-observer.c', + 'cairo-surface-offset.c', + 'cairo-surface-snapshot.c', + 'cairo-surface-subsurface.c', + 'cairo-surface-wrapper.c', + 'cairo-surface.c', + 'cairo-time.c', + 'cairo-tor-scan-converter.c', + 'cairo-tor22-scan-converter.c', + 'cairo-toy-font-face.c', + 'cairo-traps-compositor.c', + 'cairo-traps.c', + 'cairo-tristrip.c', + 'cairo-unicode.c', + 'cairo-user-font.c', + 'cairo-version.c', + 'cairo-wideint.c', + 'cairo.c', + 'cairo-cff-subset.c', + 'cairo-scaled-font-subsets.c', + 'cairo-truetype-subset.c', + 'cairo-type1-fallback.c', + 'cairo-type1-glyph-names.c', + 'cairo-type1-subset.c', + 'cairo-type3-glyph-surface.c', + 'cairo-pdf-operators.c', + 'cairo-pdf-shading.c', + 'cairo-tag-attributes.c', + 'cairo-deflate-stream.c', +] + +cairo_headers = [ + 'cairo.h', + 'cairo-deprecated.h', +] + +cairo_feature_sources = { + 'cairo-png': [ + 'cairo-png.c', + ], + 'cairo-ft': [ + 'cairo-ft-font.c', + ], + + 'cairo-xlib': [ + 'cairo-xlib-display.c', + 'cairo-xlib-core-compositor.c', + 'cairo-xlib-fallback-compositor.c', + 'cairo-xlib-render-compositor.c', + 'cairo-xlib-screen.c', + 'cairo-xlib-source.c', + 'cairo-xlib-surface.c', + 'cairo-xlib-surface-shm.c', + 'cairo-xlib-visual.c', + 'cairo-xlib-xcb-surface.c', + ], + 'cairo-xcb': [ + 'cairo-xcb-connection.c', + 'cairo-xcb-connection-core.c', + 'cairo-xcb-connection-render.c', + 'cairo-xcb-connection-shm.c', + 'cairo-xcb-screen.c', + 'cairo-xcb-shm.c', + 'cairo-xcb-surface.c', + 'cairo-xcb-surface-core.c', + 'cairo-xcb-surface-render.c', + 'cairo-xcb-resources.c', + ], + 'cairo-qt': [ + 'cairo-qt-surface.cpp', + ], + 'cairo-quartz': [ + 'cairo-quartz-surface.c', + ], + 'cairo-quartz-image': [ + 'cairo-quartz-image-surface.c', + ], + 'cairo-quartz-font': [ + 'cairo-quartz-font.c', + ], + 'cairo-win32': [ + 'win32/cairo-win32-debug.c', + 'win32/cairo-win32-device.c', + 'win32/cairo-win32-gdi-compositor.c', + 'win32/cairo-win32-system.c', + 'win32/cairo-win32-surface.c', + 'win32/cairo-win32-display-surface.c', + 'win32/cairo-win32-printing-surface.c', + ], + 'cairo-win32-font': [ + 'win32/cairo-win32-font.c', + ], + 'cairo-drm': [ + 'drm/cairo-drm.c', + 'drm/cairo-drm-bo.c', + 'drm/cairo-drm-surface.c', + 'drm/cairo-drm-intel.c', + 'drm/cairo-drm-intel-debug.c', + 'drm/cairo-drm-intel-surface.c', + 'drm/cairo-drm-i915-surface.c', + 'drm/cairo-drm-i915-glyphs.c', + 'drm/cairo-drm-i915-shader.c', + 'drm/cairo-drm-i915-spans.c', + 'drm/cairo-drm-i965-surface.c', + 'drm/cairo-drm-i965-glyphs.c', + 'drm/cairo-drm-i965-shader.c', + 'drm/cairo-drm-i965-spans.c', + 'drm/cairo-drm-intel-brw-eu.c', + 'drm/cairo-drm-intel-brw-eu-emit.c', + 'drm/cairo-drm-intel-brw-eu-util.c', + 'drm/cairo-drm-radeon.c', + 'drm/cairo-drm-radeon-surface.c', + ], + 'cairo-gl': [ + 'cairo-gl-composite.c', + 'cairo-gl-device.c', + 'cairo-gl-dispatch.c', + 'cairo-gl-glyphs.c', + 'cairo-gl-gradient.c', + 'cairo-gl-info.c', + 'cairo-gl-msaa-compositor.c', + 'cairo-gl-operand.c', + 'cairo-gl-shaders.c', + 'cairo-gl-source.c', + 'cairo-gl-spans-compositor.c', + 'cairo-gl-surface.c', + 'cairo-gl-traps-compositor.c', + ], + 'cairo-cogl': [ + 'cairo-cogl-surface.c', + 'cairo-cogl-gradient.c', + 'cairo-cogl-context.c', + 'cairo-cogl-utils.c', + ], + 'cairo-directfb': [ + 'cairo-directfb-surface.c', + ], + 'cairo-vg': [ + 'cairo-vg-surface.c', + ], + 'cairo-script': [ + 'cairo-script-surface.c', + ], + 'cairo-ps': [ + 'cairo-ps-surface.c', + ], + 'cairo-pdf': [ + 'cairo-pdf-surface.c', + 'cairo-pdf-interchange.c', + 'cairo-tag-stack.c', + ], + 'cairo-svg': [ + 'cairo-svg-surface.c', + ], + 'cairo-egl': [ + 'cairo-egl-context.c', + ], + 'cairo-glx': [ + 'cairo-glx-context.c', + ], + 'cairo-wgl': [ + 'cairo-wgl-context.c', + ], + 'cairo-xml': [ + 'cairo-xml-surface.c', + ], + 'cairo-tee': [ + 'cairo-tee-surface.c', + ], +} + +cairo_feature_headers = { + 'cairo-ps': ['cairo-ps.h'], + 'cairo-pdf': ['cairo-pdf.h'], + 'cairo-svg': ['cairo-svg.h'], + 'cairo-ft': ['cairo-ft.h'], + 'cairo-xlib': ['cairo-xlib.h'], + 'cairo-xlib-xrender': ['cairo-xlib-xrender.h'], + 'cairo-xcb': ['cairo-xcb.h'], + 'cairo-qt': ['cairo-qt.h'], + 'cairo-quartz': ['cairo-quartz.h'], + 'cairo-quartz-image': ['cairo-quartz-image.h'], + 'cairo-win32': ['cairo-win32.h'], + 'cairo-gl': ['cairo-gl.h'], + 'cairo-directfb': ['cairo-directfb.h'], + 'cairo-drm': ['cairo-drm.h'], + 'cairo-script': ['cairo-script.h'], + 'cairo-tee': ['cairo-tee.h'], + 'cairo-xml': ['cairo-xml.h'], + 'cairo-vg': ['cairo-vg.h'], + 'cairo-cogl': ['cairo-cogl.h'], +} + +cairo_no_warn_c_args = cc.get_supported_arguments([ + '-Wno-attributes', + '-Wno-unused-but-set-variable', + '-Wno-missing-field-initializers', + '-Wno-unused-parameter', + '-Wno-long-long', +]) + +foreach feature: built_features + source_key = feature.get('source-key', feature.get('name')) + cairo_sources += cairo_feature_sources.get(source_key, []) + cairo_headers += cairo_feature_headers.get(source_key, []) +endforeach + +incsrc = include_directories('.') + +libcairo = library('cairo', cairo_sources, + dependencies: deps, + c_args: cairo_no_warn_c_args + pthread_c_args + ['-DHAVE_CONFIG_H'], + cpp_args: cairo_no_warn_c_args + pthread_c_args + ['-DHAVE_CONFIG_H'], + link_args: extra_link_args, + soversion: '2', + version: '2.' + ''.join(meson.project_version().split('.')) + '.0', + install: true, + include_directories: incbase, +) + +cairo_headers += [configure_file(output: 'cairo-features.h', configuration: feature_conf)] + +libcairo_dep = declare_dependency(link_with: libcairo, + include_directories: incbase) + +pkgmod.generate(libcairo, + description: 'Multi-platform 2D graphics library', + subdirs: [meson.project_name()], + version: meson.project_version(), +) + +install_headers(cairo_headers, subdir: 'cairo') + +libcairo_dep = declare_dependency(link_with: libcairo, include_directories: incsrc) |