]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Add support for cgraphs
authorFlorian Brosch <flo.brosch@gmail.com>
Tue, 10 Sep 2013 22:43:43 +0000 (00:43 +0200)
committerFlorian Brosch <flo.brosch@gmail.com>
Sat, 14 Sep 2013 21:54:59 +0000 (23:54 +0200)
Based on patch by Richard Schwarting

Fixes bug 703688.

configure.ac
src/doclets/devhelp/Makefile.am
src/doclets/gtkdoc/Makefile.am
src/doclets/htm/Makefile.am
src/libvaladoc/charts/chart.vala
src/libvaladoc/charts/chartfactory.vala
src/libvaladoc/charts/simplechartfactory.vala

index 79aa766f38bc997e57f3754ffae9dc4010b38bc1..d4d639055b18ec4c9c633b2d5eb66ade6b3cb567 100644 (file)
@@ -53,6 +53,35 @@ AC_SUBST(LIBGEE_LIBS)
 
 
 
+AC_MSG_CHECKING([for CGRAPH])
+valadoc_tmp_LIBADD="$LIBADD"
+valadoc_tmp_CFLAGS="$CFLAGGS"
+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="$valadoc_tmp_LIBADD"
+CFLAGS="$valadoc_tmp_CFLAGS"
+AM_CONDITIONAL(HAVE_CGRAPH, test "$have_cgraph" = "yes")
+
 
 ##
 ## Drivers:
index e7c2446290532ff0b85938592e0cadb6708ba84e..de82ec1ed208301e212dcf6364aed6f97943d7c1 100644 (file)
@@ -4,6 +4,7 @@ NULL =
 AM_CFLAGS =  -g \
        -DPACKAGE_ICONDIR=\"$(datadir)/valadoc/icons/\" \
        -I ../../libvaladoc/ \
+       $(LIBGVC_CFLAGS) \
        $(GLIB_CFLAGS) \
        $(LIBGEE_CFLAGS) \
        $(NULL)
index 66dcc5576fd6309ce0cadab3da959d1f2bff8914..81e36075336fc0b1238f7c3a6334ac4d4e898196 100644 (file)
@@ -5,6 +5,7 @@ AM_CFLAGS =  -g \
        -DPACKAGE_ICONDIR=\"$(datadir)/valadoc/icons/\" \
        -I ../../libvaladoc/ \
        $(GLIB_CFLAGS) \
+       $(LIBGVC_CFLAGS) \
        $(LIBGEE_CFLAGS) \
        $(NULL)
 
index 5f3be836e2ef4d63fbb90517357c37b97fb991c5..7127e1d350d533cc6c85140fb4746f3b419781c3 100644 (file)
@@ -4,10 +4,21 @@ NULL =
 AM_CFLAGS =  -g \
        -DPACKAGE_ICONDIR=\"$(datadir)/valadoc/icons/\" \
        -I ../../libvaladoc/ \
+       $(LIBGVC_CFLAGS) \
        $(GLIB_CFLAGS) \
        $(LIBGEE_CFLAGS) \
        $(NULL)
 
+# Without the LIBGVC_CFLAGS, we get 
+# make[5]: Entering directory `/home/richard/.local/src/valadoc/src/doclets/devhelp'
+#  CC       doclet.lo
+# In file included from /usr/include/graphviz/gvc.h:17:0,
+#                  from ../../libvaladoc/valadoc-1.0.h:15,
+#                  from doclet.c:28:
+# /usr/include/graphviz/types.h:49:20: fatal error: cgraph.h: No such file or directory
+#  #include <cgraph.h>
+#                     ^
+# compilation terminated.
 
 
 BUILT_SOURCES = libdoclet.vala.stamp
index f4b99088c39fb97f7e6776d5855fdcf57cb88abc..03dab30f7536d6a8a35b055d5482ee9d2d93e860 100644 (file)
@@ -27,7 +27,9 @@ public class Valadoc.Charts.Chart : Api.Visitor {
        protected Factory factory;
 
        static construct {
+               #if !WITH_CGRAPH
                Gvc.init ();
+               #endif
        }
 
        public Chart (Factory factory, Api.Node node) {
index 6a3351a7c0a6a14e3cdc9840a455784bb4fe81f2..c2582ab9f3c5e223f03e9ec023709fd8c3932ad6 100644 (file)
 
 public abstract class Valadoc.Charts.Factory : Object {
        protected Gvc.Node create_type (Gvc.Graph graph, Api.Node item) {
+               #if WITH_CGRAPH
+               return graph.create_node (item.get_full_name (), 1);
+               #else
                return graph.create_node (item.get_full_name ());
+               #endif
        }
 
        public abstract Gvc.Graph create_graph (Api.Node item);
index a1f09fbaae3543dec6536f51bff3a59b131fd38d..06da97e133553078179ddf111074ce4193420379 100644 (file)
@@ -31,7 +31,11 @@ public class Valadoc.Charts.SimpleFactory : Charts.Factory {
        }
 
        public override Gvc.Graph create_graph (Api.Node item) {
+               #if WITH_CGRAPH
+               var graph = new Gvc.Graph (item.get_full_name (), Gvc.Agdirected, 0);
+               #else
                var graph = new Gvc.Graph (item.get_full_name (), Gvc.GraphKind.AGDIGRAPH);
+               #endif
                return graph;
        }