# Makefile.sources
#
# This file is the canonical location listing all the source files used
# to build the cairo library.  Every source file is categorized as one of:
#
#   * public header file
#   * private header file (must end in -private.h except for cairoint.h)
#   * source code file
#
# Every source file should be specified exactly once, grouped with the
# feature that uses the source file.  If more than one feature use the
# file (like pdf_operators or font_subset files), the files should be
# appended to to the base cairo files, and the code inside them
# enabled/disabled using C preprocessor macros defined in cairoint.h.
# See how pdf_operators or font_subset are handled.
#
# The sources are picked up according to the configured features
# by the generated file Makefile.am.features or Makefile.win32.features.
#
# These are a few special source files.  Those are not included in this
# file to not confuse build systems.  Each build system must handle them
# separately.  These files include:
#
#   * cairo-features.h:
#     This file is generated by configure and includes macros signifying
#     which features are enabled.  This file should be installed like
#     other public headers, but should NOT be distributed in the cairo
#     distribution.
#
#   * cairo-version.h:
#     This is a dummy header file used during the build, but it should
#     NOT be installed.  Its sole purpose is to make sure changes in the
#     cairo version do not trigger a full rebuild of the library, but
#     just the functions actually using the version information.
#
#   * $(top_srcdir)/cairo-version.h:
#     This is the real file holding the cairo version number.  This file
#     should be installed like other public headers.  This is used during
#     the build by cairo-version.c only.
#
#   * cairo-supported-features.h:
#     This file is generated by configure and includes macros signifying
#     all supported features.  This is used by gtk-doc to generate
#     documentation for all those macros, enabled or not.
#     This file is NOT used during the build of the library and should
#     NOT be installed or distributed.
#
# Please follow the strict syntax of this file, including keeping file
# lists sorted.
#

cairo_headers = cairo.h cairo-deprecated.h
cairo_private = \
	cairoint.h \
	cairo-analysis-surface-private.h \
	cairo-arc-private.h \
	cairo-atomic-private.h \
	cairo-boxes-private.h \
	cairo-cache-private.h \
	cairo-clip-private.h \
	cairo-combsort-private.h \
	cairo-compiler-private.h \
	cairo-composite-rectangles-private.h \
	cairo-device-private.h \
	cairo-error-private.h \
	cairo-fixed-private.h \
	cairo-fixed-type-private.h \
	cairo-freelist-private.h \
	cairo-freelist-type-private.h \
	cairo-freed-pool-private.h \
	cairo-fontconfig-private.h \
	cairo-gstate-private.h \
	cairo-hash-private.h \
	cairo-image-info-private.h \
	cairo-list-private.h \
	cairo-malloc-private.h \
	cairo-recording-surface-private.h \
	cairo-mutex-impl-private.h \
	cairo-mutex-list-private.h \
	cairo-mutex-private.h \
	cairo-mutex-type-private.h \
	cairo-output-stream-private.h \
	cairo-paginated-private.h \
	cairo-paginated-surface-private.h \
	cairo-path-fixed-private.h \
	cairo-path-private.h \
	cairo-private.h \
	cairo-reference-count-private.h \
	cairo-region-private.h \
	cairo-rtree-private.h \
	cairo-scaled-font-private.h \
	cairo-slope-private.h \
	cairo-spans-private.h \
	cairo-surface-fallback-private.h \
	cairo-surface-private.h \
	cairo-surface-clipper-private.h \
	cairo-surface-offset-private.h \
	cairo-surface-subsurface-private.h \
	cairo-surface-snapshot-private.h \
	cairo-surface-wrapper-private.h \
	cairo-types-private.h \
	cairo-user-font-private.h \
	cairo-wideint-private.h \
	cairo-wideint-type-private.h \
	$(NULL)
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.c \
	cairo-bentley-ottmann-rectangular.c \
	cairo-bentley-ottmann-rectilinear.c \
	cairo-botor-scan-converter.c \
	cairo-boxes.c \
	cairo.c \
	cairo-cache.c \
	cairo-clip.c \
	cairo-color.c \
	cairo-composite-rectangles.c \
	cairo-debug.c \
	cairo-device.c \
	cairo-fixed.c \
	cairo-font-face.c \
	cairo-font-face-twin.c \
	cairo-font-face-twin-data.c \
	cairo-font-options.c \
	cairo-freelist.c \
	cairo-freed-pool.c \
	cairo-gstate.c \
	cairo-hash.c \
	cairo-hull.c \
	cairo-image-info.c \
	cairo-image-surface.c \
	cairo-lzw.c \
	cairo-matrix.c \
	cairo-recording-surface.c \
	cairo-misc.c \
	cairo-mutex.c \
	cairo-observer.c \
	cairo-output-stream.c \
	cairo-paginated-surface.c \
	cairo-path-bounds.c \
	cairo-path.c \
	cairo-path-fill.c \
	cairo-path-fixed.c \
	cairo-path-in-fill.c \
	cairo-path-stroke.c \
	cairo-pattern.c \
	cairo-pen.c \
	cairo-polygon.c \
	cairo-rectangle.c \
	cairo-rectangular-scan-converter.c \
	cairo-region.c \
	cairo-rtree.c \
	cairo-scaled-font.c \
	cairo-slope.c \
	cairo-spans.c \
	cairo-spline.c \
	cairo-stroke-style.c \
	cairo-surface.c \
	cairo-surface-fallback.c \
	cairo-surface-clipper.c \
	cairo-surface-offset.c \
	cairo-surface-snapshot.c \
	cairo-surface-subsurface.c \
	cairo-surface-wrapper.c \
	cairo-system.c \
	cairo-tor-scan-converter.c \
	cairo-toy-font-face.c \
	cairo-traps.c \
	cairo-unicode.c \
	cairo-user-font.c \
	cairo-version.c \
	cairo-wideint.c \
	$(NULL)

_cairo_font_subset_private = \
	cairo-scaled-font-subsets-private.h \
	cairo-truetype-subset-private.h \
	cairo-type1-private.h \
        cairo-type3-glyph-surface-private.h \
	$(NULL)
_cairo_font_subset_sources = \
	cairo-cff-subset.c \
	cairo-scaled-font-subsets.c \
	cairo-truetype-subset.c \
	cairo-type1-fallback.c \
	cairo-type1-subset.c \
        cairo-type3-glyph-surface.c \
	$(NULL)
cairo_private += $(_cairo_font_subset_private)
cairo_sources += $(_cairo_font_subset_sources)

cairo_egl_sources =
cairo_glx_sources =
cairo_wgl_sources =

_cairo_pdf_operators_private = cairo-pdf-operators-private.h
_cairo_pdf_operators_sources = cairo-pdf-operators.c
cairo_private += $(_cairo_pdf_operators_private)
cairo_sources += $(_cairo_pdf_operators_sources)

cairo_png_sources = cairo-png.c

cairo_ps_headers = cairo-ps.h
cairo_ps_private = cairo-ps-surface-private.h
cairo_ps_sources = cairo-ps-surface.c

cairo_deflate_stream_sources = cairo-deflate-stream.c

cairo_pdf_headers = cairo-pdf.h
cairo_pdf_private = cairo-pdf-surface-private.h
cairo_pdf_sources = cairo-pdf-surface.c
if CAIRO_HAS_PDF_SURFACE
req_cairo_deflate_stream_sources = $(cairo_deflate_stream_sources)
endif

cairo_svg_headers = cairo-svg.h
cairo_svg_private = cairo-svg-surface-private.h
cairo_svg_sources = cairo-svg-surface.c

cairo_ft_headers = cairo-ft.h
cairo_ft_private = cairo-ft-private.h
cairo_ft_sources = cairo-ft-font.c

# These are private, even though they look like public headers
cairo_test_surfaces_private = \
	test-fallback-surface.h \
	test-fallback16-surface.h \
	test-null-surface.h \
	test-paginated-surface.h \
	test-wrapping-surface.h \
	$(NULL)
cairo_test_surfaces_sources = \
	test-fallback-surface.c \
	test-fallback16-surface.c \
	test-null-surface.c \
	test-paginated-surface.c \
	test-wrapping-surface.c \
	$(NULL)

cairo_xlib_headers = cairo-xlib.h
cairo_xlib_private = \
	cairo-xlib-private.h \
	cairo-xlib-surface-private.h \
	cairo-xlib-xrender-private.h \
	$(NULL)
if BUILD_XLIB_XCB
cairo_xlib_sources = cairo-xlib-xcb-surface.c
else
cairo_xlib_sources = \
	cairo-xlib-display.c \
	cairo-xlib-screen.c \
	cairo-xlib-surface.c \
	cairo-xlib-visual.c \
	$(NULL)
endif

cairo_xlib_xrender_headers = cairo-xlib-xrender.h

cairo_xcb_headers = cairo-xcb.h
cairo_xcb_private = cairo-xcb-private.h
cairo_xcb_sources = \
		    cairo-xcb-connection.c \
		    cairo-xcb-connection-core.c \
		    cairo-xcb-connection-render.c \
		    cairo-xcb-screen.c \
		    cairo-xcb-surface.c \
		    cairo-xcb-surface-cairo.c \
		    cairo-xcb-surface-core.c \
		    cairo-xcb-surface-render.c \
		    $(NULL)
if BUILD_XCB_SHM
cairo_xcb_sources += \
		    cairo-xcb-shm.c \
		    cairo-xcb-connection-shm.c \
		    $(NULL)
endif

cairo_qt_headers = cairo-qt.h
cairo_qt_cxx_sources = cairo-qt-surface.cpp

cairo_quartz_headers = cairo-quartz.h
cairo_quartz_private = cairo-quartz-private.h
cairo_quartz_sources = cairo-quartz-surface.c

cairo_quartz_image_headers = cairo-quartz-image.h
cairo_quartz_image_sources = cairo-quartz-image-surface.c

cairo_quartz_font_sources = cairo-quartz-font.c

cairo_win32_headers = cairo-win32.h
cairo_win32_private = cairo-win32-private.h
cairo_win32_sources = cairo-win32-surface.c cairo-win32-printing-surface.c

cairo_win32_font_sources = cairo-win32-font.c

cairo_skia_headers = cairo-skia.h
cairo_skia_cxx_sources = cairo-skia-surface.cpp

cairo_os2_headers = cairo-os2.h
cairo_os2_private = cairo-os2-private.h
cairo_os2_sources = cairo-os2-surface.c

# automake is stupid enough to always use c++ linker if we enable the
# following lines, even if beos surface is not enabled.  Disable it for now.
cairo_beos_headers = cairo-beos.h
cairo_beos_cxx_sources = cairo-beos-surface.cpp

cairo_gl_headers = cairo-gl.h
cairo_gl_private = cairo-gl-private.h \
		   cairo-gl-gradient-private.h \
		   glew/GL/glew.h \
		   glew/GL/glxew.h

cairo_gl_sources = cairo-gl-composite.c \
		   cairo-gl-device.c \
		   cairo-gl-glyphs.c \
		   cairo-gl-gradient.c \
		   cairo-gl-shaders.c \
		   cairo-gl-surface.c
if BUILD_PRIVATE_GLEW
cairo_gl_sources += glew/glew.c
endif

cairo_egl_sources += cairo-egl-context.c
cairo_glx_sources += cairo-glx-context.c
cairo_wgl_sources += cairo-wgl-context.c

cairo_directfb_headers = cairo-directfb.h
cairo_directfb_sources = cairo-directfb-surface.c

cairo_drm_headers = cairo-drm.h
cairo_drm_private = drm/cairo-drm-private.h \
		    drm/cairo-drm-ioctl-private.h \
		    drm/cairo-drm-intel-private.h \
		    drm/cairo-drm-intel-brw-defines.h \
		    drm/cairo-drm-intel-brw-structs.h \
		    drm/cairo-drm-intel-brw-eu.h \
		    drm/cairo-drm-intel-command-private.h \
		    drm/cairo-drm-intel-ioctl-private.h \
		    drm/cairo-drm-i915-private.h \
		    drm/cairo-drm-i965-private.h \
		    drm/cairo-drm-radeon-private.h
cairo_drm_sources = 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_gallium_sources = drm/cairo-drm-gallium-surface.c

cairo_drm_xr_headers = cairo-drm-xr.h
cairo_drm_xr_sources = \
		    drm/cairo-drm-xr.c \
		    $(NULL)

cairo_script_headers = cairo-script.h
cairo_script_sources = cairo-script-surface.c
if CAIRO_HAS_SCRIPT_SURFACE
req_cairo_deflate_stream_sources = $(cairo_deflate_stream_sources)
endif

cairo_tee_headers = cairo-tee.h
cairo_tee_private = cairo-tee-surface-private.h
cairo_tee_sources = cairo-tee-surface.c

cairo_xml_headers = cairo-xml.h
cairo_xml_sources = cairo-xml-surface.c
if CAIRO_HAS_XML_SURFACE
req_cairo_deflate_stream_sources = $(cairo_deflate_stream_sources)
endif

cairo_vg_headers = cairo-vg.h
cairo_vg_sources = cairo-vg-surface.c

cairo_sources += \
		 $(req_cairo_deflate_stream_sources) \
		 $(NULL)
