From 66c9c01b2b14a973d6b97755a343760710312be9 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Mon, 16 Sep 2013 07:36:42 +0000 Subject: bitbake: data: Cache an list of export variables Compute a cache of the list of potential export variables so that we don't have to compute the list from scratch. (Bitbake rev: f41f46f7eaa6889edeb3a4e4ddedc07084686c60) Signed-off-by: Richard Purdie --- bitbake/lib/bb/data.py | 2 +- bitbake/lib/bb/data_smart.py | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'bitbake') diff --git a/bitbake/lib/bb/data.py b/bitbake/lib/bb/data.py index beaf089601..ecac66c6ba 100644 --- a/bitbake/lib/bb/data.py +++ b/bitbake/lib/bb/data.py @@ -342,7 +342,7 @@ def build_dependencies(key, keys, shelldeps, vardepvals, d): def generate_dependencies(d): keys = set(key for key in d if not key.startswith("__")) - shelldeps = set(key for key in keys if d.getVarFlag(key, "export") and not d.getVarFlag(key, "unexport")) + shelldeps = set(key for key in d.getVar("__exportlist", False) if d.getVarFlag(key, "export") and not d.getVarFlag(key, "unexport")) vardepvals = set(key for key in keys if d.getVarFlag(key, "vardepvalue")) deps = {} diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py index a6a4b6c8ae..1bb186e100 100644 --- a/bitbake/lib/bb/data_smart.py +++ b/bitbake/lib/bb/data_smart.py @@ -578,6 +578,13 @@ class DataSmart(MutableMapping): if flag == "defaultval" and '_' in var: self._setvar_update_overrides(var) + if flag == "unexport" or flag == "export": + if not "__exportlist" in self.dict: + self._makeShadowCopy("__exportlist") + if not "_content" in self.dict["__exportlist"]: + self.dict["__exportlist"]["_content"] = set() + self.dict["__exportlist"]["_content"].add(var) + def getVarFlag(self, var, flag, expand=False, noweakdefault=False): local_var = self._findVar(var) value = None -- cgit v1.2.3-54-g00ecf