]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
use .deps files to satisfy dependencies, patch by Alberto Ruiz, fixes bug
authorJuerg Billeter <j@bitron.ch>
Mon, 27 Aug 2007 19:04:22 +0000 (19:04 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Mon, 27 Aug 2007 19:04:22 +0000 (19:04 +0000)
2007-08-27  Juerg Billeter  <j@bitron.ch>

* 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

ChangeLog
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 [new file with mode: 0644]
vapi/packages/libglade-2.0/libglade-2.0.deps [new file with mode: 0644]
vapi/packages/libwnck-1.0/libwnck-1.0.deps
vapigen/valavapigen.vala

index 0dbd5735f67e7dc0153d4a0035bb49abfa438cd7..9735bb23a7baa339e74fa21b1340f971f2c9987a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2007-08-27  Jürg Billeter  <j@bitron.ch>
+
+       * 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  <mathias.hasselmann@gmx.de>
 
        * vapi/packages/pango/pango-custom.vala, vapi/pango.vala: 
index 956118af1a5b4b4347ff76929fc70b4df7fab713..e2d3fa17d6e4b687097535f6f87a06b155ef6bf3 100644 (file)
@@ -1,2 +1,3 @@
+cairo
 gdk-2.0
 pango
index 24a223777daf7ac737a31cf9ac59bdbfdeda5e63..41a2aa1b5c812ef6c9bba2f7ed13d5f24f9ac2b0 100644 (file)
@@ -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 (file)
index 0000000..41a2aa1
--- /dev/null
@@ -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 (file)
index 0000000..41a2aa1
--- /dev/null
@@ -0,0 +1,5 @@
+atk
+cairo
+gdk-2.0
+pango
+gtk+-2.0
index 24a223777daf7ac737a31cf9ac59bdbfdeda5e63..41a2aa1b5c812ef6c9bba2f7ed13d5f24f9ac2b0 100644 (file)
@@ -1 +1,5 @@
+atk
+cairo
+gdk-2.0
+pango
 gtk+-2.0
index 1f1ebc30dd7bdaca9c28fc0197e2ff52228a3c7a..1343a50ccc6229c645171cf319e9c8f5a285c915 100644 (file)
@@ -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)) {