diff options
author | sanine <sanine.not@pm.me> | 2022-10-12 12:03:23 -0500 |
---|---|---|
committer | sanine <sanine.not@pm.me> | 2022-10-12 12:03:23 -0500 |
commit | 530ffd0b7d3c39757b20f00716e486b5caf89aff (patch) | |
tree | 76b35fdf57317038acf6b828871f6ae25fce2ebe /libs/cairo-1.16.0/build/configure.ac.features | |
parent | 3dbe9332e47c143a237db12440f134caebd1cfbe (diff) |
add cairo
Diffstat (limited to 'libs/cairo-1.16.0/build/configure.ac.features')
-rw-r--r-- | libs/cairo-1.16.0/build/configure.ac.features | 428 |
1 files changed, 428 insertions, 0 deletions
diff --git a/libs/cairo-1.16.0/build/configure.ac.features b/libs/cairo-1.16.0/build/configure.ac.features new file mode 100644 index 0000000..e0a4606 --- /dev/null +++ b/libs/cairo-1.16.0/build/configure.ac.features @@ -0,0 +1,428 @@ + +dnl +dnl Define macros to enable various features. +dnl - Macro: CAIRO_ENABLE_* (ID, NAME, DEFAULT, COMMANDS) +dnl +dnl where: +dnl +dnl ID is the feature id, eg. "ft" for cairo_ft_... +dnl NAME is the human-readable name of the feature, eg. "FreeType" +dnl DEFAULT is the default state of the feature: +dnl "no" for experimental backends, eg. your favorite new backend +dnl "yes" for mandatory backends, eg. png +dnl "auto" for other supported backends, eg. xlib +dnl COMMANDS are run to check whether the feature can be enabled. Their +dnl result may be cached, so user should not count on them being run. +dnl They should set use_$(ID) to something other than yes if the +dnl feature cannot be built, eg. "no (requires SomeThing)". It then +dnl should also set $(ID)_REQUIRES/CFLAGS/LIBS/... +dnl appropriately. Look at the macro definition for more details, +dnl or ask if in doubt. +dnl + +AC_DEFUN([CAIRO_ENABLE], + [_CAIRO_ENABLE([$1], [$2], , [$3],[$4])])dnl + +AC_DEFUN([CAIRO_ENABLE_SURFACE_BACKEND], + [_CAIRO_ENABLE([$1], [$2 surface backend], surface, [$3],[$4])])dnl + +AC_DEFUN([CAIRO_ENABLE_FONT_BACKEND], + [_CAIRO_ENABLE([$1], [$2 font backend], font, [$3],[$4])])dnl + +AC_DEFUN([CAIRO_ENABLE_FUNCTIONS], + [_CAIRO_ENABLE([$1], [$2 functions], functions, [$3],[$4])])dnl + + +dnl +dnl Define cr_feature_pc and friends ala other cr_feature_* macros +dnl +m4_define([cr_pc_modname], + [[cairo-]m4_translit([$1],_,-)])dnl +m4_define([cr_feature_pc], + [cr_pc_modname(cr_feature)[.pc]])dnl +m4_define([cr_feature_uninstalled_pc], + [cr_pc_modname(cr_feature)[-uninstalled.pc]])dnl + + +dnl =========================================================================== +dnl +dnl Hooks +dnl +dnl =========================================================================== + + +dnl =========================================================================== +dnl +dnl Generate {src,boilerplate}/Makefile.{am,win32}.config +dnl + +CAIRO_INIT_MAKEFILES([build]) +CAIRO_CONFIG_MAKEFILE([cairo], [src])dnl +CAIRO_CONFIG_MAKEFILE([cairo_boilerplate], [boilerplate])dnl +CAIRO_MAKEFILE_INCLUDE(*,[Makefile.sources])dnl +dnl An empty line per feature for readability +CAIRO_MAKEFILE_ACCUMULATE_FEATURE(*,*,*,*,[])dnl + + +dnl Collect list of all supported public headers +CAIRO_MAKEFILE_ACCUMULATE(*, +[supported_$1_headers = $($1_headers)]dnl +)dnl +CAIRO_MAKEFILE_ACCUMULATE_FEATURE(*,*,!no,!, +[supported_$1_headers += $($1_$2_headers)]dnl +)dnl + +dnl Collect list of all unsupported public headers +CAIRO_MAKEFILE_ACCUMULATE(*, +[unsupported_$1_headers =]dnl +)dnl +CAIRO_MAKEFILE_ACCUMULATE_FEATURE(*,*,no,!, +[unsupported_$1_headers += $($1_$2_headers)]dnl +)dnl + +dnl Collect list of source files for all public features +CAIRO_MAKEFILE_ACCUMULATE(*, +[dnl +all_$1_headers = $($1_headers) +all_$1_private = $($1_private) +all_$1_cxx_sources = $($1_cxx_sources) +all_$1_sources = $($1_sources) +])dnl +CAIRO_MAKEFILE_ACCUMULATE_FEATURE(*,*,*,!, +[dnl +all_$1_headers += $($1_$2_headers) +all_$1_private += $($1_$2_private) +all_$1_cxx_sources += $($1_$2_cxx_sources) +all_$1_sources += $($1_$2_sources)]dnl +)dnl + +dnl Collect list of source files for enabled public features +CAIRO_MAKEFILE_ACCUMULATE(*, +[dnl +enabled_$1_headers = $($1_headers) +enabled_$1_private = $($1_private) +enabled_$1_cxx_sources = $($1_cxx_sources) +enabled_$1_sources = $($1_sources) +])dnl +CAIRO_MAKEFILE_ACCUMULATE_FEATURE(*,yes,*,!, +[dnl +enabled_$1_headers += $($1_$2_headers) +enabled_$1_private += $($1_$2_private) +enabled_$1_cxx_sources += $($1_$2_cxx_sources) +enabled_$1_sources += $($1_$2_sources)]dnl +)dnl + +dnl No public headers for private features + +dnl Collect list of source files for all private features +CAIRO_MAKEFILE_ACCUMULATE_FEATURE(*,*,*,, +[dnl +all_$1_private += $($1_$2_private) $($1_$2_headers) +all_$1_cxx_sources += $($1_$2_cxx_sources) +all_$1_sources += $($1_$2_sources)]dnl +)dnl + +dnl Collect list of source files for enabled private features +CAIRO_MAKEFILE_ACCUMULATE_FEATURE(*,yes,*,, +[dnl +enabled_$1_private += $($1_$2_private) $($1_$2_headers) +enabled_$1_cxx_sources += $($1_$2_cxx_sources) +enabled_$1_sources += $($1_$2_sources)]dnl +)dnl + + +dnl =========================================================================== +dnl +dnl Generate .pc files +dnl + +dnl All .pc files are generated automatically except for this one +AC_CONFIG_FILES([src/cairo.pc])dnl +AC_CONFIG_FILES([cairo-uninstalled.pc:src/cairo-uninstalled.pc.in])dnl + +dnl pkg-config requires, non-pkgconfig cflags and libs, and total cflags and libs +CAIRO_FEATURE_VARS_REGISTER([BASE],[cairo])dnl +CAIRO_ACCUMULATED_FEATURE_VARS_REGISTER([REQUIRES],,[ ])dnl +CAIRO_ACCUMULATED_FEATURE_VARS_REGISTER([CFLAGS NONPKGCONFIG_CFLAGS],,[ ])dnl +CAIRO_ACCUMULATED_FEATURE_VARS_REGISTER([LIBS NONPKGCONFIG_LIBS],,[ ],[$LIBS])dnl +CAIRO_FEATURE_VARS_REGISTER([NONPKGCONFIG_EXTRA_LIBS])dnl +AC_SUBST(CAIRO_REQUIRES)dnl +AC_SUBST(CAIRO_CFLAGS)dnl +AC_SUBST(CAIRO_LDFLAGS)dnl +AC_SUBST(CAIRO_NONPKGCONFIG_CFLAGS)dnl +AC_SUBST(CAIRO_LIBS)dnl +AC_SUBST(CAIRO_NONPKGCONFIG_LIBS)dnl + +dnl add non-pkgconfig values +AC_CONFIG_COMMANDS_PRE( +[dnl +CAIRO_CFLAGS="$CAIRO_CFLAGS $CAIRO_NONPKGCONFIG_CFLAGS" +CAIRO_LIBS="$CAIRO_LIBS $CAIRO_NONPKGCONFIG_LIBS" +])dnl + +m4_define([_CAIRO_FEATURE_CONFIG_PKGCONFIG_FILE], +[dnl + AC_CONFIG_FILES([$3:$4], + [dnl + mv "$3" "$3.tmp" && + $SED "dnl + s%@FEATURE_PC@%]cr_pc_modname([$1])[%g;dnl + s%@FEATURE_NAME@%$2%g;dnl + s%@FEATURE_BASE@%$$1_BASE%g;dnl + s%@FEATURE_REQUIRES@%$$1_REQUIRES%g;dnl + s%@FEATURE_NONPKGCONFIG_LIBS@%$$1_NONPKGCONFIG_LIBS%g;dnl + s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$$1_NONPKGCONFIG_EXTRA_LIBS%g;dnl + s%@FEATURE_NONPKGCONFIG_CFLAGS@%$$1_NONPKGCONFIG_CFLAGS%g;dnl + " < "$3.tmp" > "$3" && rm -f "$3.tmp" || + AC_MSG_ERROR(failed to update $3) + ],[dnl + SED='$SED' + $1_BASE='$$1_BASE' + $1_REQUIRES='$$1_REQUIRES' + $1_NONPKGCONFIG_LIBS='$$1_NONPKGCONFIG_LIBS' + $1_NONPKGCONFIG_EXTRA_LIBS='$$1_NONPKGCONFIG_EXTRA_LIBS' + $1_NONPKGCONFIG_CFLAGS='$$1_NONPKGCONFIG_CFLAGS' + ])dnl +])dnl + +dnl Generate .pc files for enabled non-builtin public features +CAIRO_FEATURE_HOOK_REGISTER(yes,!always,!, +[dnl + _CAIRO_FEATURE_CONFIG_PKGCONFIG_FILE( + [$1], + cr_feature_name, + [src/]cr_feature_pc, + [src/cairo-features.pc.in] + )dnl +])dnl + +dnl Generate -uninstalled.pc files for enabled non-builtin public features +CAIRO_FEATURE_HOOK_REGISTER(yes,!always,!, +[dnl + _CAIRO_FEATURE_CONFIG_PKGCONFIG_FILE( + [$1], + cr_feature_name, + cr_feature_uninstalled_pc, + [src/cairo-features-uninstalled.pc.in] + )dnl +])dnl + + +dnl Collect list of .pc files for all non-builtin public features +CAIRO_MAKEFILE_ACCUMULATE(cairo, +[all_$1_pkgconf = cairo.pc])dnl +CAIRO_MAKEFILE_ACCUMULATE_FEATURE(cairo,*,!always,!, +[all_$1_pkgconf += cr_feature_pc])dnl + +dnl Collect list of .pc files for enabled non-builtin public features +CAIRO_MAKEFILE_ACCUMULATE(cairo, +[enabled_$1_pkgconf = cairo.pc])dnl +CAIRO_MAKEFILE_ACCUMULATE_FEATURE(cairo,yes,!always,!, +[enabled_$1_pkgconf += cr_feature_pc])dnl + + +dnl =========================================================================== +dnl +dnl Generate src/cairo-features.h, src/cairo-supported-features.h, and +dnl src/cairo-features-win32.h +dnl + +dnl Collect list of enabled public features +CAIRO_ACCUMULATORS_REGISTER(FEATURES,[ ])dnl +CAIRO_FEATURE_HOOK_REGISTER(yes,*,!,dnl +[dnl + CAIRO_ACCUMULATE(FEATURES, cr_feature_tag)dnl +])dnl +dnl Collect list of all supported public features +CAIRO_ACCUMULATORS_REGISTER(SUPPORTED_FEATURES,[ ])dnl +CAIRO_FEATURE_HOOK_REGISTER(*,!no,!,dnl +[dnl + CAIRO_ACCUMULATE(SUPPORTED_FEATURES, cr_feature_tag) +])dnl +dnl Collect list of all supported disabled public features +CAIRO_ACCUMULATORS_REGISTER(NO_FEATURES,[ ])dnl +CAIRO_FEATURE_HOOK_REGISTER(no,*,!, +[dnl + CAIRO_ACCUMULATE(NO_FEATURES, cr_feature_tag) +])dnl + +dnl Generate src/cairo-features.h +CAIRO_CONFIG_COMMANDS([src/cairo-features.h], +[dnl + echo '/* Generated by configure. Do not edit. */' + echo '#ifndef CAIRO_FEATURES_H' + echo '#define CAIRO_FEATURES_H' + echo '' + for FEATURE in $CAIRO_FEATURES; do + echo "#define $FEATURE 1" + done | LANG=C sort + echo '' + for FEATURE in $CAIRO_NO_FEATURES; do + echo "/*#undef $FEATURE */" + done | LANG=C sort + echo '' + echo '#endif' +],[dnl + CAIRO_FEATURES='$CAIRO_FEATURES' + CAIRO_NO_FEATURES='$CAIRO_NO_FEATURES' +])dnl +dnl Generate src/cairo-supported-features.h +CAIRO_CONFIG_COMMANDS([src/cairo-supported-features.h], +[dnl + echo '/* Generated by configure. Do not edit. */' + echo '#ifndef CAIRO_SUPPORTED_FEATURES_H' + echo '#define CAIRO_SUPPORTED_FEATURES_H' + echo '' + echo '/* This is a dummy header, to trick gtk-doc only */' + echo '' + for FEATURE in $CAIRO_SUPPORTED_FEATURES; do + echo "#define $FEATURE 1" + done + echo '' + echo '#endif' +],[dnl + CAIRO_SUPPORTED_FEATURES='$CAIRO_SUPPORTED_FEATURES' +])dnl + +dnl For enabled private features just define them in config.h. No fanfare! +CAIRO_FEATURE_HOOK_REGISTER(yes,*,, +[dnl + AC_DEFINE(cr_feature_tag, 1, [Define to 1 to enable cairo's ]cr_feature_name[ feature]) +])dnl + + +dnl Generate build/Makefile.win32.features-h that generates src/cairo-features.h +CAIRO_CONFIG_MAKEFILE_PRIVATE_WIN32([win32_features_h],[build],[features-h]) +dnl +CAIRO_MAKEFILE_ACCUMULATE([win32_features_h], +[$(top_srcdir)/src/cairo-features.h: $(top_srcdir)/build/Makefile.win32.features + @echo "Generating src/cairo-features.h" + @echo "/* Generated by Makefile.win32.features-h. Do not edit. */" > $(top_srcdir)/src/cairo-features.h + @echo "[#]ifndef CAIRO_FEATURES_H" >> $(top_srcdir)/src/cairo-features.h + @echo "[#]define CAIRO_FEATURES_H 1" >> $(top_srcdir)/src/cairo-features.h]dnl +) +AC_CONFIG_COMMANDS_PRE( +[dnl + CAIRO_MAKEFILE_ACCUMULATE([win32_features_h], [ @echo "[#]endif" >> $(top_srcdir)/src/cairo-features.h]) +])dnl +CAIRO_MAKEFILE_ACCUMULATE_FEATURE([win32_features_h],yes,*,*,dnl +[ @echo "[#]define cr_feature_tag 1" >> $(top_srcdir)/src/cairo-features.h]dnl +)dnl + + +dnl =========================================================================== +dnl +dnl Report +dnl + +CAIRO_ACCUMULATORS_REGISTER([WARNING_MESSAGE],m4_newline()m4_newline)dnl + +dnl Collect warning message for enabled unsupported public features +CAIRO_FEATURE_HOOK_REGISTER(yes,no,!, +[dnl + CAIRO_ACCUMULATE([WARNING_MESSAGE], CAIRO_TEXT_WRAP([The ]cr_feature_name[ feature is still under active development and is included in this release only as a preview. It does NOT fully work yet and incompatible changes may yet be made to ]cr_feature_name[ specific API.], [--- ])) +])dnl + +dnl Collect warning message for disabled recommended features +CAIRO_FEATURE_HOOK_REGISTER(no,yes,*, +[dnl + CAIRO_ACCUMULATE([WARNING_MESSAGE], CAIRO_TEXT_WRAP([It is strongly recommended that you do NOT disable the ]cr_feature_name[ feature.], [+++ ])) +])dnl + + +dnl Collect enabled native surface/font backend features +CAIRO_ACCUMULATORS_REGISTER([NATIVE_SURFACE_BACKENDS])dnl +CAIRO_ACCUMULATORS_REGISTER([NATIVE_FONT_BACKENDS])dnl +CAIRO_FEATURE_HOOK_REGISTER(yes,auto,surface, +[dnl + CAIRO_ACCUMULATE([NATIVE_SURFACE_BACKENDS], [$1]) +])dnl +CAIRO_FEATURE_HOOK_REGISTER(yes,auto,font, +[dnl + CAIRO_ACCUMULATE([NATIVE_FONT_BACKENDS], [$1]) +])dnl + +dnl Collect warning message if no native surface/font backend feature enabled +AC_CONFIG_COMMANDS_PRE(dnl +[dnl + AS_IF([test -z "$CAIRO_NATIVE_SURFACE_BACKENDS"],dnl + [dnl + CAIRO_ACCUMULATE([WARNING_MESSAGE], CAIRO_TEXT_WRAP([No native surface backends enabled for your platform. It is strongly recommended that you enable the native surface backend feature for your platform.], [*** ])) + ]) + AS_IF([test -z "$CAIRO_NATIVE_FONT_BACKENDS"],dnl + [dnl + CAIRO_ACCUMULATE([WARNING_MESSAGE], CAIRO_TEXT_WRAP([No native font backends enabled for your platform. It is strongly recommended that you enable the native font backend feature for your platform.], [*** ])) + ]) +])dnl + + +AC_DEFUN([CAIRO_REPORT], +[dnl + V="$CAIRO_VERSION_MAJOR.$CAIRO_VERSION_MINOR.$CAIRO_VERSION_MICRO" + echo "" + echo "cairo (version $V [[$CAIRO_RELEASE_STATUS]]) will be compiled with:" + echo "" + echo "The following surface backends:" + echo " Image: yes (always builtin)" + echo " Recording: yes (always builtin)" + echo " Observer: yes (always builtin)" + echo " Mime: yes (always builtin)" + echo " Tee: $use_tee" + echo " XML: $use_xml" + #echo " Skia: $use_skia" + echo " Xlib: $use_xlib" + echo " Xlib Xrender: $use_xlib_xrender" + echo " Qt: $use_qt" + echo " Quartz: $use_quartz" + echo " Quartz-image: $use_quartz_image" + echo " XCB: $use_xcb" + echo " Win32: $use_win32" + echo " OS2: $use_os2" + echo " CairoScript: $use_script" + echo " PostScript: $use_ps" + echo " PDF: $use_pdf" + echo " SVG: $use_svg" + echo " OpenGL: $use_gl" + echo " OpenGL ES 2.0: $use_glesv2" + echo " OpenGL ES 3.0: $use_glesv3" + echo " BeOS: $use_beos" + echo " DirectFB: $use_directfb" + echo " OpenVG: $use_vg" + echo " DRM: $use_drm" + echo " Cogl: $use_cogl" + echo "" + echo "The following font backends:" + echo " User: yes (always builtin)" + echo " FreeType: $use_ft" + echo " Fontconfig: $use_fc" + echo " Win32: $use_win32_font" + echo " Quartz: $use_quartz_font" + echo "" + echo "The following functions:" + echo " PNG functions: $use_png" + echo " GLX functions: $use_glx" + echo " WGL functions: $use_wgl" + echo " EGL functions: $use_egl" + echo " X11-xcb functions: $use_xlib_xcb" + echo " XCB-shm functions: $use_xcb_shm" + echo "" + echo "The following features and utilities:" + echo " cairo-trace: $use_trace" + echo " cairo-script-interpreter: $use_interpreter" + echo "" + echo "And the following internal features:" + echo " pthread: $use_pthread" + echo " gtk-doc: $enable_gtk_doc" + echo " gcov support: $use_gcov" + echo " symbol-lookup: $use_symbol_lookup" + echo " test surfaces: $use_test_surfaces" + echo " ps testing: $test_ps" + echo " pdf testing: $test_pdf" + echo " svg testing: $test_svg" + if test x"$use_win32" = "xyes"; then + echo " win32 printing testing: $test_win32_printing" + fi + echo "$CAIRO_WARNING_MESSAGE" + echo "" +])dnl + |