diff options
Diffstat (limited to 'bitbake/lib/bb/cooker.py')
-rw-r--r-- | bitbake/lib/bb/cooker.py | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 95f65ac685..9086f92e5c 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py | |||
@@ -489,9 +489,29 @@ class BBCooker: | |||
489 | 489 | ||
490 | self.handleCollections( self.data.getVar("BBFILE_COLLECTIONS", True) ) | 490 | self.handleCollections( self.data.getVar("BBFILE_COLLECTIONS", True) ) |
491 | 491 | ||
492 | def updateConfigOpts(self,options): | 492 | def updateConfigOpts(self, options, environment): |
493 | for o in options: | 493 | for o in options: |
494 | setattr(self.configuration, o, options[o]) | 494 | setattr(self.configuration, o, options[o]) |
495 | clean = True | ||
496 | for k in bb.utils.approved_variables(): | ||
497 | if k in environment and k not in self.configuration.env: | ||
498 | logger.debug(1, "Updating environment variable %s to %s" % (k, environment[k])) | ||
499 | self.configuration.env[k] = environment[k] | ||
500 | clean = False | ||
501 | if k in self.configuration.env and k not in environment: | ||
502 | logger.debug(1, "Updating environment variable %s (deleted)" % (k)) | ||
503 | del self.configuration.env[k] | ||
504 | clean = False | ||
505 | if k not in self.configuration.env and k not in environment: | ||
506 | continue | ||
507 | if environment[k] != self.configuration.env[k]: | ||
508 | logger.debug(1, "Updating environment variable %s to %s" % (k, environment[k])) | ||
509 | self.configuration.env[k] = environment[k] | ||
510 | clean = False | ||
511 | if not clean: | ||
512 | logger.debug(1, "Base environment change, triggering reparse") | ||
513 | self.baseconfig_valid = False | ||
514 | self.reset() | ||
495 | 515 | ||
496 | def runCommands(self, server, data, abort): | 516 | def runCommands(self, server, data, abort): |
497 | """ | 517 | """ |