From 354fa437cdc4b67ca6c2452756a261222109b289 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Thu, 25 Jun 2009 18:56:52 +0100 Subject: [PATCH] Update JSON-GLib dependency Currently, Clutter depends on the internal copy of JSON-GLib for the ClutterScript parser. This is done to allow building Clutter on platforms that do not have the library installed on the system. Just like we use the internal PNG/JPEG loader as a fallback in case we don't have GdkPixbuf or CoreGraphics available, we should use the internal copy of JSON-GLib only in case the system copy is not present. The change is simply to move the default for the --with-json configure switch from "internal" to "check". In order to allow stricter compliance, a third setting should be present: "system", which fails if the system copy is not available. We should also change the introspection generation to avoid breaking in case we require the installed Json-1.0.gir instead of the generated ClutterJson.gir --- clutter/Makefile.am | 5 ++++- configure.ac | 44 +++++++++++++++++++++++++++++++++++--------- 2 files changed, 39 insertions(+), 10 deletions(-) diff --git a/clutter/Makefile.am b/clutter/Makefile.am index 0acd9b2..c636f3c 100644 --- a/clutter/Makefile.am +++ b/clutter/Makefile.am @@ -244,6 +244,9 @@ BUILT_GIRSOURCES = if LOCAL_JSON_GLIB json_gir_include_path=--add-include-path=json +json_gir_include=--include=ClutterJson-@CLUTTER_API_VERSION@ +else +json_gir_include=--include=Json-1.0 endif # We can't reference the list of COGL header files, since they are in a @@ -261,7 +264,7 @@ Clutter-@CLUTTER_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libclutter-@CLUTTER_ --include=Pango-1.0 \ --include=PangoCairo-1.0 \ --include=Cogl-@CLUTTER_API_VERSION@ \ - --include=ClutterJson-@CLUTTER_API_VERSION@ \ + $(json_gir_include) \ --library=clutter-@CLUTTER_FLAVOUR@-@CLUTTER_API_VERSION@ \ --libtool="$(top_builddir)/doltlibtool" \ --pkg gobject-2.0 \ diff --git a/configure.ac b/configure.ac index 433ba36..2b42544 100644 --- a/configure.ac +++ b/configure.ac @@ -540,14 +540,15 @@ AM_CONDITIONAL(X11_TESTS, [test "x$x11_tests" = "xyes"]) dnl === JSON parser check ===================================================== -# allow building clutter with an external dependency on json-glib -# using the --with-json=check argument, but keep the default to -# the internal version +# we allow building clutter with the internal copy of json-glib +# for platforms without it, but by default we depend on the +# system copy +m4_define([default_json], [check]) AC_ARG_WITH([json], - AC_HELP_STRING([--with-json=@<:@internal/check@:>@], - [Select the JSON-GLib copy to use @<:@default=internal@:>@]), + AC_HELP_STRING([--with-json=@<:@internal/check/system@:>@], + [Select the JSON-GLib copy to use @<:@default=default_json@:>@]), [], - [with_json=internal]) + [with_json=default_json]) AS_CASE([$with_json], @@ -557,16 +558,41 @@ AS_CASE([$with_json], have_json=no ], + [system], + [ + AC_MSG_CHECKING([for installed JSON-GLib]) + PKG_CHECK_EXISTS([json-glib-1.0 >= 0.7], + [have_json=yes], + [have_json=no]) + AS_IF([test "x$have_json" = "xyes"], + [ + JSON_PREFIX=json-glib + JSON_GLIB_PC="json-glib-1.0 >= 0.7" + + AC_DEFINE([HAVE_JSON_GLIB], + [1], + [Have the JSON-GLib library installed]) + + AC_MSG_RESULT([found]) + ], + [AC_MSG_ERROR([not found])] + ) + ], + [check], [ AC_MSG_CHECKING([for installed JSON-GLib]) - PKG_CHECK_EXISTS([json-glib-1.0], [have_json=yes], [have_json=no]) + PKG_CHECK_EXISTS([json-glib-1.0 >= 0.7], + [have_json=yes], + [have_json=no]) AS_IF([test "x$have_json" = "xyes"], [ JSON_PREFIX=json-glib - JSON_GLIB_PC=json-glib-1.0 + JSON_GLIB_PC="json-glib-1.0 >= 0.7" - AC_DEFINE(HAVE_JSON_GLIB, 1, [Have the JSON-GLib library installed]) + AC_DEFINE([HAVE_JSON_GLIB], + [1], + [Have the JSON-GLib library installed]) AC_MSG_RESULT([found]) ], -- 2.7.4