at master 6.0 kB view raw
1diff --git a/configure.ac b/configure.ac 2index 088e8f3b5..bded3c54c 100644 3--- a/configure.ac 4+++ b/configure.ac 5@@ -196,13 +196,15 @@ AC_SUBST(GMODULE_LIBS) 6 7 AC_ARG_WITH(cgraph, AS_HELP_STRING([--with-cgraph], [Required flag for cross-compilation to define capability of graphviz]), [], with_cgraph=check) 8 AC_ARG_ENABLE(valadoc, AS_HELP_STRING([--disable-valadoc], [Disable valadoc]), enable_valadoc=$enableval, enable_valadoc=yes) 9+AC_ARG_ENABLE(graphviz, AS_HELP_STRING([--disable-graphviz], [Disable graphviz usage for valadoc]), enable_graphviz=$enableval, enable_graphviz=yes) 10 AS_IF([test "$VALAC" != :], [FOUND_VALAC_VERION=`$VALAC --version | sed 's/Vala *//'` 11 AS_VERSION_COMPARE(["$FOUND_VALAC_VERION"], ["$VALAC_VALADOC_REQUIRED"], [ 12 AC_MSG_WARN([Force disable build of valadoc, valac >= $VALAC_VALADOC_REQUIRED is required]) 13 enable_valadoc=no 14 ]) 15 ]) 16-if test x$enable_valadoc = xyes; then 17+if test x$enable_valadoc = xyes && test x$enable_graphviz = xyes; then 18+ VALAFLAGS="$VALAFLAGS -D HAVE_GRAPHVIZ" 19 PKG_CHECK_MODULES(LIBGVC, libgvc >= $LIBGVC_REQUIRED) 20 AC_MSG_CHECKING([for CGRAPH]) 21 cgraph_tmp_LIBADD="$LIBADD" 22@@ -244,6 +246,7 @@ if test x$enable_valadoc = xyes; then 23 fi 24 AM_CONDITIONAL(HAVE_CGRAPH, test "$have_cgraph" = "yes") 25 AM_CONDITIONAL(ENABLE_VALADOC, test x$enable_valadoc = xyes) 26+AM_CONDITIONAL(ENABLE_GRAPHVIZ, test x$enable_graphviz = xyes) 27 28 AC_PATH_PROG([G_IR_COMPILER], [g-ir-compiler], :) 29 AM_CONDITIONAL(HAVE_G_IR_COMPILER, test "$G_IR_COMPILER" != :) 30diff --git a/libvaladoc/Makefile.am b/libvaladoc/Makefile.am 31index dad9a9e99..e23266606 100644 32--- a/libvaladoc/Makefile.am 33+++ b/libvaladoc/Makefile.am 34@@ -119,10 +119,6 @@ libvaladoc_la_VALASOURCES = \ 35 content/tablerow.vala \ 36 content/taglet.vala \ 37 content/text.vala \ 38- charts/chart.vala \ 39- charts/chartfactory.vala \ 40- charts/hierarchychart.vala \ 41- charts/simplechartfactory.vala \ 42 parser/manyrule.vala \ 43 parser/oneofrule.vala \ 44 parser/optionalrule.vala \ 45@@ -149,19 +145,34 @@ libvaladoc_la_VALASOURCES = \ 46 highlighter/codetoken.vala \ 47 highlighter/highlighter.vala \ 48 html/basicdoclet.vala \ 49- html/htmlchartfactory.vala \ 50 html/linkhelper.vala \ 51 html/cssclassresolver.vala \ 52 html/htmlmarkupwriter.vala \ 53 html/htmlrenderer.vala \ 54 $(NULL) 55 56+if ENABLE_GRAPHVIZ 57+libvaladoc_la_VALASOURCES += \ 58+ charts/chart.vala \ 59+ charts/chartfactory.vala \ 60+ charts/hierarchychart.vala \ 61+ charts/simplechartfactory.vala \ 62+ html/htmlchartfactory.vala \ 63+ $(NULL) 64+endif 65+ 66 libvaladoc@PACKAGE_SUFFIX@_la_SOURCES = \ 67 libvaladoc.vala.stamp \ 68 $(libvaladoc_la_VALASOURCES:.vala=.c) \ 69- gvc-compat.c \ 70 $(NULL) 71 72+if ENABLE_GRAPHVIZ 73+libvaladoc@PACKAGE_SUFFIX@_la_SOURCES += \ 74+ gvc-compat.c 75+ 76+LIBGVC_PKG = --vapidir $(top_srcdir)/vapi --pkg libgvc 77+endif 78+ 79 valadoc@PACKAGE_SUFFIX@.vapi valadoc.h: libvaladoc.vala.stamp 80 libvaladoc.vala.stamp: $(libvaladoc_la_VALASOURCES) 81 $(VALA_V)$(VALAC) \ 82@@ -174,7 +185,7 @@ libvaladoc.vala.stamp: $(libvaladoc_la_VALASOURCES) 83 --library valadoc \ 84 --vapi valadoc@PACKAGE_SUFFIX@.vapi \ 85 --vapidir $(top_srcdir)/vapi --pkg gmodule-2.0 \ 86- --vapidir $(top_srcdir)/vapi --pkg libgvc \ 87+ $(LIBGVC_PKG) \ 88 --vapidir $(top_srcdir)/gee --pkg gee \ 89 --vapidir $(top_srcdir)/vala --pkg vala \ 90 --vapidir $(top_srcdir)/ccode --pkg ccode \ 91@@ -206,6 +217,9 @@ nodist_pkgconfig_DATA = valadoc@PACKAGE_SUFFIX@.pc 92 93 valadoc@PACKAGE_SUFFIX@.pc: valadoc.pc 94 cp $< $@ 95+if !ENABLE_GRAPHVIZ 96+ sed -i "s/libgvc //g" $@ 97+endif 98 99 vapidir = $(datadir)/vala/vapi 100 dist_vapi_DATA = valadoc@PACKAGE_SUFFIX@.vapi 101@@ -213,6 +227,9 @@ nodist_vapi_DATA = valadoc@PACKAGE_SUFFIX@.deps 102 103 valadoc@PACKAGE_SUFFIX@.deps: valadoc.deps 104 cp $< $@ 105+if !ENABLE_GRAPHVIZ 106+ sed -i "s/libgvc//g" $@ 107+endif 108 109 EXTRA_DIST = \ 110 $(libvaladoc_la_VALASOURCES) \ 111diff --git a/libvaladoc/html/basicdoclet.vala b/libvaladoc/html/basicdoclet.vala 112index f4999efd4..03871d687 100644 113--- a/libvaladoc/html/basicdoclet.vala 114+++ b/libvaladoc/html/basicdoclet.vala 115@@ -46,7 +46,11 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet { 116 protected HtmlRenderer _renderer; 117 protected Html.MarkupWriter writer; 118 protected Html.CssClassResolver cssresolver; 119+#if HAVE_GRAPHVIZ 120 protected Charts.Factory image_factory; 121+#else 122+ protected void* image_factory; 123+#endif 124 protected ErrorReporter reporter; 125 protected string package_list_link = "../index.html"; 126 127@@ -120,7 +124,9 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet { 128 this.linker = new LinkHelper (); 129 130 _renderer = new HtmlRenderer (settings, this.linker, this.cssresolver); 131+#if HAVE_GRAPHVIZ 132 this.image_factory = new SimpleChartFactory (settings, linker); 133+#endif 134 } 135 136 137@@ -1028,6 +1034,7 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet { 138 } 139 140 protected void write_image_block (Api.Node element) { 141+#if HAVE_GRAPHVIZ 142 if (element is Class || element is Interface || element is Struct) { 143 unowned string format = (settings.use_svg_images ? "svg" : "png"); 144 var chart = new Charts.Hierarchy (image_factory, element); 145@@ -1047,6 +1054,7 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet { 146 this.get_img_path_html (element, format)}); 147 writer.add_usemap (chart); 148 } 149+#endif 150 } 151 152 public void write_namespace_content (Namespace node, Api.Node? parent) { 153diff --git a/libvaladoc/html/htmlmarkupwriter.vala b/libvaladoc/html/htmlmarkupwriter.vala 154index 5aa4afdea..e79b0b8f5 100644 155--- a/libvaladoc/html/htmlmarkupwriter.vala 156+++ b/libvaladoc/html/htmlmarkupwriter.vala 157@@ -51,12 +51,16 @@ public class Valadoc.Html.MarkupWriter : Valadoc.MarkupWriter { 158 } 159 } 160 161+#if HAVE_GRAPHVIZ 162 public unowned MarkupWriter add_usemap (Charts.Chart chart) { 163 string? buf = (string?) chart.write_buffer ("cmapx"); 164 if (buf != null) { 165 raw_text ("\n"); 166 raw_text ((!) buf); 167 } 168+#else 169+ public unowned MarkupWriter add_usemap (void* chart) { 170+#endif 171 172 return this; 173 }