[jhbuild] Add module_nopoison option (GNOME bug 531543)



commit 7a78acf822c448ef4ff3618ddad388add15c08ce
Author: Craig Keogh <cskeogh adam com au>
Date:   Sat Oct 17 14:03:55 2009 +1030

    Add module_nopoison option (GNOME bug 531543)

 doc/C/jhbuild.xml                |   13 +++++++++++++
 jhbuild/config.py                |   17 ++++++++---------
 jhbuild/defaults.jhbuildrc       |    1 +
 jhbuild/frontends/buildscript.py |    3 ++-
 4 files changed, 24 insertions(+), 10 deletions(-)
---
diff --git a/doc/C/jhbuild.xml b/doc/C/jhbuild.xml
index e133c2e..ac7aa94 100644
--- a/doc/C/jhbuild.xml
+++ b/doc/C/jhbuild.xml
@@ -1546,6 +1546,19 @@ libgnomecanvas is missing branch definition for gnome-2-20
 	  </listitem>
 	</varlistentry>
 	<varlistentry>
+	  <term id="cfg-module-nopoison"><varname>module_nopoison</varname></term>
+	  <listitem>
+	    <simpara>A dictionary mapping module names to boolean
+	    values. If a module is set to <constant>True</constant>,
+	    JHBuild will attempt to build dependent modules even if the
+	    specified module failed. The setting in
+            <varname>module_nopoison</varname> replaces the value of
+            <varname>nopoison</varname>.  If a particular module isn't
+            listed in the dictionary, the global
+            <varname>nopoison</varname> will be used.</simpara>
+	  </listitem>
+	</varlistentry>
+	<varlistentry>
 	  <term id="cfg-module-extra-env"><varname>module_extra_env</varname></term>
 	  <listitem>
 	    <simpara>A dictionary mapping module names to dictionaries
diff --git a/jhbuild/config.py b/jhbuild/config.py
index 9a44f2d..adc82a7 100644
--- a/jhbuild/config.py
+++ b/jhbuild/config.py
@@ -48,15 +48,14 @@ _known_keys = [ 'moduleset', 'modules', 'skip', 'tags', 'prefix',
                 'makedistcheck', 'nonotify', 'notrayicon', 'cvs_program',
                 'checkout_mode', 'copy_dir', 'module_checkout_mode',
                 'build_policy', 'trycheckout', 'min_time',
-                'nopoison', 'forcecheck', 'makecheck_advisory',
-                'quiet_mode', 'progress_bar', 'module_extra_env',
-                'jhbuildbot_master', 'jhbuildbot_slavename', 'jhbuildbot_password',
-                'jhbuildbot_svn_commits_box', 'jhbuildbot_slaves_dir',
-                'jhbuildbot_dir', 'jhbuildbot_mastercfg',
-                'use_local_modulesets', 'ignore_suggests', 'modulesets_dir',
-                'mirror_policy', 'module_mirror_policy', 'dvcs_mirror_dir',
-                'build_targets',
-                ]
+                'nopoison', 'module_nopoison', 'forcecheck',
+                'makecheck_advisory', 'quiet_mode', 'progress_bar',
+                'module_extra_env', 'jhbuildbot_master', 'jhbuildbot_slavename',
+                'jhbuildbot_password', 'jhbuildbot_svn_commits_box',
+                'jhbuildbot_slaves_dir', 'jhbuildbot_dir',
+                'jhbuildbot_mastercfg', 'use_local_modulesets',
+                'ignore_suggests', 'modulesets_dir', 'mirror_policy',
+                'module_mirror_policy', 'dvcs_mirror_dir', 'build_targets' ]
 
 env_prepends = {}
 def prependpath(envvar, path):
diff --git a/jhbuild/defaults.jhbuildrc b/jhbuild/defaults.jhbuildrc
index 400d142..d7afacc 100644
--- a/jhbuild/defaults.jhbuildrc
+++ b/jhbuild/defaults.jhbuildrc
@@ -65,6 +65,7 @@ module_autogenargs = {}
 module_makeargs = {}
 module_extra_env = {}
 module_makecheck = {}
+module_nopoison = {}
 
 # control parts of the build process
 nonetwork     = False  # never touch the network
diff --git a/jhbuild/frontends/buildscript.py b/jhbuild/frontends/buildscript.py
index 5d6a6c0..20118b2 100644
--- a/jhbuild/frontends/buildscript.py
+++ b/jhbuild/frontends/buildscript.py
@@ -91,7 +91,8 @@ class BuildScript:
             failed = False
             for dep in module.dependencies:
                 if dep in failures:
-                    if self.config.nopoison:
+                    if self.config.module_nopoison.get(dep,
+                                                       self.config.nopoison):
                         self.message(_('module %(mod)s will be build even though %(dep)s failed')
                                      % { 'mod':module.name, 'dep':dep })
                     else:



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]