Bug 1259382 - Make add_old_configure_assignment work like set_config, accepting both @depends functions and literal values for both arguments it takes. r?ted draft
authorMike Hommey <mh+mozilla@glandium.org>
Tue, 05 Apr 2016 09:41:38 +0900
changeset 347604 0126468c5d38ec96e0d82335292ae27f883fb856
parent 347603 5375f070368e1244ae0450448a08a83a1b5e7b6a
child 347605 6e72a7576e5a18b885b6255256f438b75f1c4737
push id14625
push userbmo:mh+mozilla@glandium.org
push dateTue, 05 Apr 2016 11:59:43 +0000
reviewersted
bugs1259382
milestone48.0a1
Bug 1259382 - Make add_old_configure_assignment work like set_config, accepting both @depends functions and literal values for both arguments it takes. r?ted
build/moz.configure/init.configure
--- a/build/moz.configure/init.configure
+++ b/build/moz.configure/init.configure
@@ -124,23 +124,26 @@ def old_configure_assignments(help):
     return []
 
 @depends('--help')
 def extra_old_configure_args(help):
     return []
 
 @template
 @imports(_from='mozbuild.configure', _import='DependsFunction')
-def add_old_configure_assignment(var, value_func):
-    assert isinstance(value_func, DependsFunction)
+def add_old_configure_assignment(var, value):
+    if not isinstance(var, DependsFunction):
+        var = depends('--help')(lambda x: var)
+    if not isinstance(value, DependsFunction):
+        value = depends('--help')(lambda x: value)
 
-    @depends(old_configure_assignments, value_func)
+    @depends(old_configure_assignments, var, value)
     @imports(_from='mozbuild.shellutil', _import='quote')
-    def add_assignment(assignments, value):
-        if value is None:
+    def add_assignment(assignments, var, value):
+        if var is None or value is None:
             return
         if value is True:
             assignments.append('%s=1' % var)
         elif value is False:
             assignments.append('%s=' % var)
         else:
             if isinstance(value, (list, tuple)):
                 value = quote(*value)