| From eb716dc856c20b3da146a4e83e9800bd1f53c739 Mon Sep 17 00:00:00 2001 |
| From: Rico Tzschichholz <ricotz@ubuntu.com> |
| Date: Wed, 6 Sep 2017 18:52:55 +0200 |
| Subject: [PATCH] libvaladoc: Allow disabling the graphviz dependency of |
| valadoc |
| |
| https://bugzilla.gnome.org/show_bug.cgi?id=787375 |
| Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> |
| Upstream-Status: Submitted [bugzilla link above] |
| --- |
| configure.ac | 60 +++++++++++++++++++---------------- |
| libvaladoc/Makefile.am | 25 +++++++++++---- |
| libvaladoc/html/basicdoclet.vala | 8 +++++ |
| libvaladoc/html/htmlmarkupwriter.vala | 4 +++ |
| 4 files changed, 63 insertions(+), 34 deletions(-) |
| |
| diff --git a/configure.ac b/configure.ac |
| index c73d5d6b1..291e503d5 100644 |
| --- a/configure.ac |
| +++ b/configure.ac |
| @@ -98,34 +98,38 @@ PKG_CHECK_MODULES(GMODULE, gmodule-2.0 >= $GLIB_REQUIRED) |
| AC_SUBST(GMODULE_CFLAGS) |
| AC_SUBST(GMODULE_LIBS) |
| |
| -PKG_CHECK_MODULES(LIBGVC, libgvc >= $LIBGVC_REQUIRED) |
| -AC_MSG_CHECKING([for CGRAPH]) |
| -cgraph_tmp_LIBADD="$LIBADD" |
| -cgraph_tmp_CFLAGS="$CFLAGS" |
| -LIBADD="$LIBADD $LIBGVC_LIBS" |
| -CFLAGS="$CFLAGS $LIBGVC_CFLAGS" |
| -AC_RUN_IFELSE( |
| - [AC_LANG_SOURCE([ |
| - #include <gvc.h> |
| - |
| - int main(void) { |
| - #ifdef WITH_CGRAPH |
| - return 0; |
| - #else |
| - return -1; |
| - #endif |
| - } |
| - ])], [ |
| - AC_MSG_RESULT([yes]) |
| - VALAFLAGS="$VALAFLAGS -D WITH_CGRAPH" |
| - have_cgraph=yes |
| - ], [ |
| - AC_MSG_RESULT([no]) |
| - have_cgraph=no |
| - ] |
| -) |
| -LIBADD="$cgraph_tmp_LIBADD" |
| -CFLAGS="$cgraph_tmp_CFLAGS" |
| +AC_ARG_ENABLE(graphviz, AS_HELP_STRING([--disable-graphviz], [Disable graphviz usage for valadoc]), enable_graphviz=$enableval, enable_graphviz=yes) |
| +if test x$enable_graphviz = xyes; then |
| + PKG_CHECK_MODULES(LIBGVC, libgvc >= $LIBGVC_REQUIRED) |
| + AC_MSG_CHECKING([for CGRAPH]) |
| + VALAFLAGS="$VALAFLAGS -D HAVE_GRAPHVIZ" |
| + cgraph_tmp_LIBADD="$LIBADD" |
| + cgraph_tmp_CFLAGS="$CFLAGS" |
| + LIBADD="$LIBADD $LIBGVC_LIBS" |
| + CFLAGS="$CFLAGS $LIBGVC_CFLAGS" |
| + AC_RUN_IFELSE( |
| + [AC_LANG_SOURCE([ |
| + #include <gvc.h> |
| + int main(void) { |
| + #ifdef WITH_CGRAPH |
| + return 0; |
| + #else |
| + return -1; |
| + #endif |
| + } |
| + ])], [ |
| + AC_MSG_RESULT([yes]) |
| + VALAFLAGS="$VALAFLAGS -D WITH_CGRAPH" |
| + have_cgraph=yes |
| + ], [ |
| + AC_MSG_RESULT([no]) |
| + have_cgraph=no |
| + ] |
| + ) |
| + LIBADD="$cgraph_tmp_LIBADD" |
| + CFLAGS="$cgraph_tmp_CFLAGS" |
| +fi |
| +AM_CONDITIONAL(ENABLE_GRAPHVIZ, test x$enable_graphviz = xyes) |
| AM_CONDITIONAL(HAVE_CGRAPH, test "$have_cgraph" = "yes") |
| |
| AC_PATH_PROG([XSLTPROC], [xsltproc], :) |
| diff --git a/libvaladoc/Makefile.am b/libvaladoc/Makefile.am |
| index 89245d86b..7c07498b9 100644 |
| --- a/libvaladoc/Makefile.am |
| +++ b/libvaladoc/Makefile.am |
| @@ -127,10 +127,6 @@ libvaladoc_la_VALASOURCES = \ |
| content/tablerow.vala \ |
| content/taglet.vala \ |
| content/text.vala \ |
| - charts/chart.vala \ |
| - charts/chartfactory.vala \ |
| - charts/hierarchychart.vala \ |
| - charts/simplechartfactory.vala \ |
| parser/manyrule.vala \ |
| parser/oneofrule.vala \ |
| parser/optionalrule.vala \ |
| @@ -158,13 +154,24 @@ libvaladoc_la_VALASOURCES = \ |
| highlighter/codetoken.vala \ |
| highlighter/highlighter.vala \ |
| html/basicdoclet.vala \ |
| - html/htmlchartfactory.vala \ |
| html/linkhelper.vala \ |
| html/cssclassresolver.vala \ |
| html/htmlmarkupwriter.vala \ |
| html/htmlrenderer.vala \ |
| $(NULL) |
| |
| +if ENABLE_GRAPHVIZ |
| +libvaladoc_la_VALASOURCES += \ |
| + charts/chart.vala \ |
| + charts/chartfactory.vala \ |
| + charts/hierarchychart.vala \ |
| + charts/simplechartfactory.vala \ |
| + html/htmlchartfactory.vala \ |
| + $(NULL) |
| + |
| +LIBGVC_PKG = --vapidir $(top_srcdir)/vapi --pkg libgvc |
| +endif |
| + |
| libvaladoc@PACKAGE_SUFFIX@_la_SOURCES = \ |
| libvaladoc.vala.stamp \ |
| $(libvaladoc_la_VALASOURCES:.vala=.c) \ |
| @@ -182,8 +189,8 @@ libvaladoc.vala.stamp: $(libvaladoc_la_VALASOURCES) |
| --library valadoc \ |
| --vapi valadoc@PACKAGE_SUFFIX@.vapi \ |
| --vapidir $(top_srcdir)/vapi --pkg gmodule-2.0 \ |
| - --vapidir $(top_srcdir)/vapi --pkg libgvc \ |
| --vapidir $(top_srcdir)/gee --pkg gee \ |
| + $(LIBGVC_PKG) \ |
| --pkg config \ |
| $(filter %.vala %.c,$^) |
| touch $@ |
| @@ -209,6 +216,9 @@ nodist_pkgconfig_DATA = valadoc@PACKAGE_SUFFIX@.pc |
| |
| valadoc@PACKAGE_SUFFIX@.pc: valadoc.pc |
| cp $< $@ |
| +if !ENABLE_GRAPHVIZ |
| + sed -i "s/libgvc //g" $@ |
| +endif |
| |
| vapidir = $(datadir)/vala/vapi |
| dist_vapi_DATA = valadoc@PACKAGE_SUFFIX@.vapi |
| @@ -216,6 +226,9 @@ nodist_vapi_DATA = valadoc@PACKAGE_SUFFIX@.deps |
| |
| valadoc@PACKAGE_SUFFIX@.deps: valadoc.deps |
| cp $< $@ |
| +if !ENABLE_GRAPHVIZ |
| + sed -i "s/libgvc//g" $@ |
| +endif |
| |
| EXTRA_DIST = \ |
| $(libvaladoc_la_VALASOURCES) \ |
| diff --git a/libvaladoc/html/basicdoclet.vala b/libvaladoc/html/basicdoclet.vala |
| index cc9ea4ed7..432c3818f 100644 |
| --- a/libvaladoc/html/basicdoclet.vala |
| +++ b/libvaladoc/html/basicdoclet.vala |
| @@ -46,7 +46,11 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet { |
| protected HtmlRenderer _renderer; |
| protected Html.MarkupWriter writer; |
| protected Html.CssClassResolver cssresolver; |
| +#if HAVE_GRAPHVIZ |
| protected Charts.Factory image_factory; |
| +#else |
| + protected void* image_factory; |
| +#endif |
| protected ErrorReporter reporter; |
| protected string package_list_link = "../index.html"; |
| |
| @@ -120,7 +124,9 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet { |
| this.linker = new LinkHelper (); |
| |
| _renderer = new HtmlRenderer (settings, this.linker, this.cssresolver); |
| +#if HAVE_GRAPHVIZ |
| this.image_factory = new SimpleChartFactory (settings, linker); |
| +#endif |
| } |
| |
| |
| @@ -1025,6 +1031,7 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet { |
| } |
| |
| protected void write_image_block (Api.Node element) { |
| +#if HAVE_GRAPHVIZ |
| if (element is Class || element is Interface || element is Struct) { |
| unowned string format = (settings.use_svg_images ? "svg" : "png"); |
| var chart = new Charts.Hierarchy (image_factory, element); |
| @@ -1044,6 +1051,7 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet { |
| this.get_img_path_html (element, format)}); |
| writer.add_usemap (chart); |
| } |
| +#endif |
| } |
| |
| public void write_namespace_content (Namespace node, Api.Node? parent) { |
| diff --git a/libvaladoc/html/htmlmarkupwriter.vala b/libvaladoc/html/htmlmarkupwriter.vala |
| index 15ed9efd1..fe0d705d4 100644 |
| --- a/libvaladoc/html/htmlmarkupwriter.vala |
| +++ b/libvaladoc/html/htmlmarkupwriter.vala |
| @@ -43,12 +43,16 @@ public class Valadoc.Html.MarkupWriter : Valadoc.MarkupWriter { |
| }, xml_declaration); |
| } |
| |
| +#if HAVE_GRAPHVIZ |
| public MarkupWriter add_usemap (Charts.Chart chart) { |
| string? buf = (string?) chart.write_buffer ("cmapx"); |
| if (buf != null) { |
| raw_text ("\n"); |
| raw_text ((!) buf); |
| } |
| +#else |
| + public MarkupWriter add_usemap (void* chart) { |
| +#endif |
| |
| return this; |
| } |
| -- |
| 2.14.1 |