From: Luca Bruno Date: Mon, 2 Aug 2010 20:22:45 +0000 (+0200) Subject: doclets/gtkdoc: Call pkg-config only for existing packages X-Git-Tag: 0.37.1~3^2~446 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=959c7946a0123fa68c4d4cbf00cd776fd1a13b71;p=thirdparty%2Fvala.git doclets/gtkdoc: Call pkg-config only for existing packages --- diff --git a/src/doclets/gtkdoc/doclet.vala b/src/doclets/gtkdoc/doclet.vala index bb518c6a2..ae892120f 100644 --- a/src/doclets/gtkdoc/doclet.vala +++ b/src/doclets/gtkdoc/doclet.vala @@ -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; } } diff --git a/src/doclets/gtkdoc/utils.vala b/src/doclets/gtkdoc/utils.vala index 3d883d2a7..40f388e48 100644 --- a/src/doclets/gtkdoc/utils.vala +++ b/src/doclets/gtkdoc/utils.vala @@ -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; + } + } }