]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
doclets/gtkdoc: Call pkg-config only for existing packages
authorLuca Bruno <lethalman88@gmail.com>
Mon, 2 Aug 2010 20:22:45 +0000 (22:22 +0200)
committerLuca Bruno <lethalman88@gmail.com>
Mon, 2 Aug 2010 20:22:45 +0000 (22:22 +0200)
src/doclets/gtkdoc/doclet.vala
src/doclets/gtkdoc/utils.vala

index bb518c6a2170578b280bf09da7fb93a065cb74d2..ae892120f5edc9f1c24a8a9cc07f09fafefc16c9 100644 (file)
@@ -216,7 +216,7 @@ public class Gtkdoc.Director : Valadoc.Doclet, Object {
 
                string[] pc = { "pkg-config" };
                foreach (var package in tree.get_package_list()) {
-                       if (package.is_package) {
+                       if (package.is_package && package_exists (package.name)) {
                                pc += package.name;
                        }
                }
index 3d883d2a7563b4ba4f77ec872b35a1e2d6aa0367..40f388e487850d72badd324a09c51ad1b9e0ddae 100644 (file)
@@ -1,6 +1,7 @@
 /* utils.vala
  *
  * Copyright (C) 2010 Luca Bruno
+ * Copyright (C) 2007-2009  Jürg Billeter
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -148,6 +149,20 @@ namespace Gtkdoc {
        public string to_docbook_id (string name) {
                return name.replace(".", "-").replace("_", "-");
        }
+
+       public bool package_exists (string package_name) {
+               // copied from vala/codegen/valaccodecompiler.vala
+               string pc = "pkg-config --exists " + package_name;
+               int exit_status;
+
+               try {
+                       Process.spawn_command_line_sync (pc, null, null, out exit_status);
+                       return (0 == exit_status);
+               } catch (SpawnError e) {
+                       warning ("GtkDoc: Error pkg-config --exists %s: %s", package_name, e.message);
+                       return false;
+               }
+       }
 }