From: Juerg Billeter Date: Mon, 27 Aug 2007 19:04:22 +0000 (+0000) Subject: use .deps files to satisfy dependencies, patch by Alberto Ruiz, fixes bug X-Git-Tag: VALA_0_1_3~46 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1f762ddf3f8de7d897fc43dcc4bf2a6d1d29ab82;p=thirdparty%2Fvala.git use .deps files to satisfy dependencies, patch by Alberto Ruiz, fixes bug 2007-08-27 Juerg Billeter * vapigen/valavapigen.vala: use .deps files to satisfy dependencies, patch by Alberto Ruiz, fixes bug 470756 * vapi/packages/clutter-0.3/clutter-0.3.deps, vapi/packages/gnome-desktop-2.0/gnome-desktop-2.0.deps, vapi/packages/gtksourceview-2.0/gtksourceview-2.0.deps, vapi/packages/libglade-2.0/libglade-2.0.deps, vapi/packages/libwnck-1.0/libwnck-1.0.deps: add missing dependencies svn path=/trunk/; revision=509 --- diff --git a/ChangeLog b/ChangeLog index 0dbd5735f..9735bb23a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2007-08-27 Jürg Billeter + + * vapigen/valavapigen.vala: use .deps files to satisfy dependencies, + patch by Alberto Ruiz, fixes bug 470756 + + * vapi/packages/clutter-0.3/clutter-0.3.deps, + vapi/packages/gnome-desktop-2.0/gnome-desktop-2.0.deps, + vapi/packages/gtksourceview-2.0/gtksourceview-2.0.deps, + vapi/packages/libglade-2.0/libglade-2.0.deps, + vapi/packages/libwnck-1.0/libwnck-1.0.deps: add missing dependencies + 2007-08-27 Mathias Hasselmann * vapi/packages/pango/pango-custom.vala, vapi/pango.vala: diff --git a/vapi/packages/clutter-0.3/clutter-0.3.deps b/vapi/packages/clutter-0.3/clutter-0.3.deps index 956118af1..e2d3fa17d 100644 --- a/vapi/packages/clutter-0.3/clutter-0.3.deps +++ b/vapi/packages/clutter-0.3/clutter-0.3.deps @@ -1,2 +1,3 @@ +cairo gdk-2.0 pango diff --git a/vapi/packages/gnome-desktop-2.0/gnome-desktop-2.0.deps b/vapi/packages/gnome-desktop-2.0/gnome-desktop-2.0.deps index 24a223777..41a2aa1b5 100644 --- a/vapi/packages/gnome-desktop-2.0/gnome-desktop-2.0.deps +++ b/vapi/packages/gnome-desktop-2.0/gnome-desktop-2.0.deps @@ -1 +1,5 @@ +atk +cairo +gdk-2.0 +pango gtk+-2.0 diff --git a/vapi/packages/gtksourceview-2.0/gtksourceview-2.0.deps b/vapi/packages/gtksourceview-2.0/gtksourceview-2.0.deps new file mode 100644 index 000000000..41a2aa1b5 --- /dev/null +++ b/vapi/packages/gtksourceview-2.0/gtksourceview-2.0.deps @@ -0,0 +1,5 @@ +atk +cairo +gdk-2.0 +pango +gtk+-2.0 diff --git a/vapi/packages/libglade-2.0/libglade-2.0.deps b/vapi/packages/libglade-2.0/libglade-2.0.deps new file mode 100644 index 000000000..41a2aa1b5 --- /dev/null +++ b/vapi/packages/libglade-2.0/libglade-2.0.deps @@ -0,0 +1,5 @@ +atk +cairo +gdk-2.0 +pango +gtk+-2.0 diff --git a/vapi/packages/libwnck-1.0/libwnck-1.0.deps b/vapi/packages/libwnck-1.0/libwnck-1.0.deps index 24a223777..41a2aa1b5 100644 --- a/vapi/packages/libwnck-1.0/libwnck-1.0.deps +++ b/vapi/packages/libwnck-1.0/libwnck-1.0.deps @@ -1 +1,5 @@ +atk +cairo +gdk-2.0 +pango gtk+-2.0 diff --git a/vapigen/valavapigen.vala b/vapigen/valavapigen.vala index 1f1ebc30d..1343a50cc 100644 --- a/vapigen/valavapigen.vala +++ b/vapigen/valavapigen.vala @@ -80,6 +80,11 @@ class Vala.VAPIGen { } private bool add_package (string! pkg) { + if (context.has_package (pkg)) { + // ignore multiple occurences of the same package + return true; + } + var package_path = get_package_path (pkg); if (package_path == null) { @@ -91,6 +96,14 @@ class Vala.VAPIGen { return true; } + private static string[] get_packages_from_depsfile (string depsfile) { + string contents; + if (FileUtils.get_contents (depsfile, out contents)) { + return contents.strip ().split ("\n"); + } + return null; + } + private int run () { context = new CodeContext (); @@ -99,6 +112,25 @@ class Vala.VAPIGen { Report.error (null, "glib-2.0 not found in specified Vala API directories"); } + /* load packages from .deps file */ + foreach (string source in sources) { + if (!source.has_suffix (".gidl")) { + continue; + } + + var depsfile = source.substring (0, source.len () - 4) + "deps"; + + if (!FileUtils.test (depsfile, FileTest.EXISTS)) continue; + + string[] deps = get_packages_from_depsfile (depsfile); + + foreach (string dep in deps) { + if (!add_package (dep)) { + Report.error (null, "%s not found in specified Vala API directories".printf (dep)); + } + } + } + if (packages != null) { foreach (string package in packages) { if (!add_package (package)) {