blob: e521bc854b357f86e68a7b9991df929182f3f2a7 [file] [log] [blame]
Brad Bishop19323692019-04-05 15:28:33 -04001From b2723ff18b70c67c8a7fab5375a7f3c442d49790 Mon Sep 17 00:00:00 2001
Brad Bishop316dfdd2018-06-25 12:45:53 -04002From: Rico Tzschichholz <ricotz@ubuntu.com>
3Date: Wed, 6 Sep 2017 18:52:55 +0200
4Subject: [PATCH] libvaladoc: Allow disabling the graphviz dependency of
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08005
Brad Bishop316dfdd2018-06-25 12:45:53 -04006 valadoc
7
8https://bugzilla.gnome.org/show_bug.cgi?id=787375
9Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
10Upstream-Status: Submitted [bugzilla link above]
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080011
Brad Bishop316dfdd2018-06-25 12:45:53 -040012---
Brad Bishop19323692019-04-05 15:28:33 -040013 configure.ac | 60 ++++++++++++++-------------
14 libvaladoc/Makefile.am | 25 ++++++++---
15 libvaladoc/html/basicdoclet.vala | 8 ++++
16 libvaladoc/html/htmlmarkupwriter.vala | 4 ++
Brad Bishop316dfdd2018-06-25 12:45:53 -040017 4 files changed, 63 insertions(+), 34 deletions(-)
18
19diff --git a/configure.ac b/configure.ac
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080020index 730c72d..af81986 100644
Brad Bishop316dfdd2018-06-25 12:45:53 -040021--- a/configure.ac
22+++ b/configure.ac
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080023@@ -119,34 +119,38 @@ PKG_CHECK_MODULES(GMODULE, gmodule-2.0 >= $GLIB_REQUIRED)
Brad Bishop316dfdd2018-06-25 12:45:53 -040024 AC_SUBST(GMODULE_CFLAGS)
25 AC_SUBST(GMODULE_LIBS)
26
27-PKG_CHECK_MODULES(LIBGVC, libgvc >= $LIBGVC_REQUIRED)
28-AC_MSG_CHECKING([for CGRAPH])
29-cgraph_tmp_LIBADD="$LIBADD"
30-cgraph_tmp_CFLAGS="$CFLAGS"
31-LIBADD="$LIBADD $LIBGVC_LIBS"
32-CFLAGS="$CFLAGS $LIBGVC_CFLAGS"
33-AC_RUN_IFELSE(
34- [AC_LANG_SOURCE([
35- #include <gvc.h>
36-
37- int main(void) {
38- #ifdef WITH_CGRAPH
39- return 0;
40- #else
41- return -1;
42- #endif
43- }
44- ])], [
45- AC_MSG_RESULT([yes])
46- VALAFLAGS="$VALAFLAGS -D WITH_CGRAPH"
47- have_cgraph=yes
48- ], [
49- AC_MSG_RESULT([no])
50- have_cgraph=no
51- ]
52-)
53-LIBADD="$cgraph_tmp_LIBADD"
54-CFLAGS="$cgraph_tmp_CFLAGS"
55+AC_ARG_ENABLE(graphviz, AS_HELP_STRING([--disable-graphviz], [Disable graphviz usage for valadoc]), enable_graphviz=$enableval, enable_graphviz=yes)
56+if test x$enable_graphviz = xyes; then
57+ PKG_CHECK_MODULES(LIBGVC, libgvc >= $LIBGVC_REQUIRED)
58+ AC_MSG_CHECKING([for CGRAPH])
59+ VALAFLAGS="$VALAFLAGS -D HAVE_GRAPHVIZ"
60+ cgraph_tmp_LIBADD="$LIBADD"
61+ cgraph_tmp_CFLAGS="$CFLAGS"
62+ LIBADD="$LIBADD $LIBGVC_LIBS"
63+ CFLAGS="$CFLAGS $LIBGVC_CFLAGS"
64+ AC_RUN_IFELSE(
65+ [AC_LANG_SOURCE([
66+ #include <gvc.h>
67+ int main(void) {
68+ #ifdef WITH_CGRAPH
69+ return 0;
70+ #else
71+ return -1;
72+ #endif
73+ }
74+ ])], [
75+ AC_MSG_RESULT([yes])
76+ VALAFLAGS="$VALAFLAGS -D WITH_CGRAPH"
77+ have_cgraph=yes
78+ ], [
79+ AC_MSG_RESULT([no])
80+ have_cgraph=no
81+ ]
82+ )
83+ LIBADD="$cgraph_tmp_LIBADD"
84+ CFLAGS="$cgraph_tmp_CFLAGS"
85+fi
86+AM_CONDITIONAL(ENABLE_GRAPHVIZ, test x$enable_graphviz = xyes)
87 AM_CONDITIONAL(HAVE_CGRAPH, test "$have_cgraph" = "yes")
88
89 AC_PATH_PROG([XSLTPROC], [xsltproc], :)
90diff --git a/libvaladoc/Makefile.am b/libvaladoc/Makefile.am
Brad Bishop19323692019-04-05 15:28:33 -040091index f3f790e..3c5dc4c 100644
Brad Bishop316dfdd2018-06-25 12:45:53 -040092--- a/libvaladoc/Makefile.am
93+++ b/libvaladoc/Makefile.am
Brad Bishop19323692019-04-05 15:28:33 -040094@@ -128,10 +128,6 @@ libvaladoc_la_VALASOURCES = \
Brad Bishop316dfdd2018-06-25 12:45:53 -040095 content/tablerow.vala \
96 content/taglet.vala \
97 content/text.vala \
98- charts/chart.vala \
99- charts/chartfactory.vala \
100- charts/hierarchychart.vala \
101- charts/simplechartfactory.vala \
102 parser/manyrule.vala \
103 parser/oneofrule.vala \
104 parser/optionalrule.vala \
Brad Bishop19323692019-04-05 15:28:33 -0400105@@ -158,13 +154,24 @@ libvaladoc_la_VALASOURCES = \
Brad Bishop316dfdd2018-06-25 12:45:53 -0400106 highlighter/codetoken.vala \
107 highlighter/highlighter.vala \
108 html/basicdoclet.vala \
109- html/htmlchartfactory.vala \
110 html/linkhelper.vala \
111 html/cssclassresolver.vala \
112 html/htmlmarkupwriter.vala \
113 html/htmlrenderer.vala \
114 $(NULL)
115
116+if ENABLE_GRAPHVIZ
117+libvaladoc_la_VALASOURCES += \
118+ charts/chart.vala \
119+ charts/chartfactory.vala \
120+ charts/hierarchychart.vala \
121+ charts/simplechartfactory.vala \
122+ html/htmlchartfactory.vala \
123+ $(NULL)
124+
125+LIBGVC_PKG = --vapidir $(top_srcdir)/vapi --pkg libgvc
126+endif
127+
128 libvaladoc@PACKAGE_SUFFIX@_la_SOURCES = \
129 libvaladoc.vala.stamp \
130 $(libvaladoc_la_VALASOURCES:.vala=.c) \
Brad Bishop19323692019-04-05 15:28:33 -0400131@@ -184,11 +191,11 @@ libvaladoc.vala.stamp: $(libvaladoc_la_VALASOURCES)
Brad Bishop316dfdd2018-06-25 12:45:53 -0400132 --library valadoc \
133 --vapi valadoc@PACKAGE_SUFFIX@.vapi \
134 --vapidir $(top_srcdir)/vapi --pkg gmodule-2.0 \
135- --vapidir $(top_srcdir)/vapi --pkg libgvc \
136 --vapidir $(top_srcdir)/gee --pkg gee \
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800137 --vapidir $(top_srcdir)/vala --pkg vala \
Brad Bishop19323692019-04-05 15:28:33 -0400138 --vapidir $(top_srcdir)/ccode --pkg ccode \
139 --vapidir $(top_srcdir)/codegen --pkg codegen \
Brad Bishop316dfdd2018-06-25 12:45:53 -0400140+ $(LIBGVC_PKG) \
141 --pkg config \
142 $(filter %.vala %.c,$^)
143 touch $@
Brad Bishop19323692019-04-05 15:28:33 -0400144@@ -217,6 +224,9 @@ nodist_pkgconfig_DATA = valadoc@PACKAGE_SUFFIX@.pc
Brad Bishop316dfdd2018-06-25 12:45:53 -0400145
146 valadoc@PACKAGE_SUFFIX@.pc: valadoc.pc
147 cp $< $@
148+if !ENABLE_GRAPHVIZ
149+ sed -i "s/libgvc //g" $@
150+endif
151
152 vapidir = $(datadir)/vala/vapi
153 dist_vapi_DATA = valadoc@PACKAGE_SUFFIX@.vapi
Brad Bishop19323692019-04-05 15:28:33 -0400154@@ -224,6 +234,9 @@ nodist_vapi_DATA = valadoc@PACKAGE_SUFFIX@.deps
Brad Bishop316dfdd2018-06-25 12:45:53 -0400155
156 valadoc@PACKAGE_SUFFIX@.deps: valadoc.deps
157 cp $< $@
158+if !ENABLE_GRAPHVIZ
159+ sed -i "s/libgvc//g" $@
160+endif
161
162 EXTRA_DIST = \
163 $(libvaladoc_la_VALASOURCES) \
164diff --git a/libvaladoc/html/basicdoclet.vala b/libvaladoc/html/basicdoclet.vala
Brad Bishop19323692019-04-05 15:28:33 -0400165index 192e488..ec09602 100644
Brad Bishop316dfdd2018-06-25 12:45:53 -0400166--- a/libvaladoc/html/basicdoclet.vala
167+++ b/libvaladoc/html/basicdoclet.vala
168@@ -46,7 +46,11 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
169 protected HtmlRenderer _renderer;
170 protected Html.MarkupWriter writer;
171 protected Html.CssClassResolver cssresolver;
172+#if HAVE_GRAPHVIZ
173 protected Charts.Factory image_factory;
174+#else
175+ protected void* image_factory;
176+#endif
177 protected ErrorReporter reporter;
178 protected string package_list_link = "../index.html";
179
180@@ -120,7 +124,9 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
181 this.linker = new LinkHelper ();
182
183 _renderer = new HtmlRenderer (settings, this.linker, this.cssresolver);
184+#if HAVE_GRAPHVIZ
185 this.image_factory = new SimpleChartFactory (settings, linker);
186+#endif
187 }
188
189
Brad Bishop19323692019-04-05 15:28:33 -0400190@@ -1026,6 +1032,7 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
Brad Bishop316dfdd2018-06-25 12:45:53 -0400191 }
192
193 protected void write_image_block (Api.Node element) {
194+#if HAVE_GRAPHVIZ
195 if (element is Class || element is Interface || element is Struct) {
196 unowned string format = (settings.use_svg_images ? "svg" : "png");
197 var chart = new Charts.Hierarchy (image_factory, element);
Brad Bishop19323692019-04-05 15:28:33 -0400198@@ -1045,6 +1052,7 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
Brad Bishop316dfdd2018-06-25 12:45:53 -0400199 this.get_img_path_html (element, format)});
200 writer.add_usemap (chart);
201 }
202+#endif
203 }
204
205 public void write_namespace_content (Namespace node, Api.Node? parent) {
206diff --git a/libvaladoc/html/htmlmarkupwriter.vala b/libvaladoc/html/htmlmarkupwriter.vala
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800207index 5aa4afd..e79b0b8 100644
Brad Bishop316dfdd2018-06-25 12:45:53 -0400208--- a/libvaladoc/html/htmlmarkupwriter.vala
209+++ b/libvaladoc/html/htmlmarkupwriter.vala
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800210@@ -51,12 +51,16 @@ public class Valadoc.Html.MarkupWriter : Valadoc.MarkupWriter {
211 }
Brad Bishop316dfdd2018-06-25 12:45:53 -0400212 }
213
214+#if HAVE_GRAPHVIZ
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800215 public unowned MarkupWriter add_usemap (Charts.Chart chart) {
Brad Bishop316dfdd2018-06-25 12:45:53 -0400216 string? buf = (string?) chart.write_buffer ("cmapx");
217 if (buf != null) {
218 raw_text ("\n");
219 raw_text ((!) buf);
220 }
221+#else
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800222+ public unowned MarkupWriter add_usemap (void* chart) {
Brad Bishop316dfdd2018-06-25 12:45:53 -0400223+#endif
224
225 return this;
226 }