summaryrefslogtreecommitdiffstats
path: root/meta/lib/oe
diff options
context:
space:
mode:
Diffstat (limited to 'meta/lib/oe')
-rw-r--r--meta/lib/oe/sstatesig.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py
index 5dcc2f5cd6..18c5a353a2 100644
--- a/meta/lib/oe/sstatesig.py
+++ b/meta/lib/oe/sstatesig.py
@@ -150,16 +150,23 @@ class SignatureGeneratorOEBasicHash(bb.siggen.SignatureGeneratorBasicHash):
150 if recipename in self.unlockedrecipes: 150 if recipename in self.unlockedrecipes:
151 unlocked = True 151 unlocked = True
152 else: 152 else:
153 def get_mc(tid):
154 tid = tid.rsplit('.', 1)[0]
155 if tid.startswith('multiconfig:'):
156 elems = tid.split(':')
157 return elems[1]
153 def recipename_from_dep(dep): 158 def recipename_from_dep(dep):
154 # The dep entry will look something like 159 # The dep entry will look something like
155 # /path/path/recipename.bb.task, virtual:native:/p/foo.bb.task, 160 # /path/path/recipename.bb.task, virtual:native:/p/foo.bb.task,
156 # ... 161 # ...
162
157 fn = dep.rsplit('.', 1)[0] 163 fn = dep.rsplit('.', 1)[0]
158 return dataCache.pkg_fn[fn] 164 return dataCache.pkg_fn[fn]
159 165
166 mc = get_mc(fn)
160 # If any unlocked recipe is in the direct dependencies then the 167 # If any unlocked recipe is in the direct dependencies then the
161 # current recipe should be unlocked as well. 168 # current recipe should be unlocked as well.
162 depnames = [ recipename_from_dep(x) for x in deps ] 169 depnames = [ recipename_from_dep(x) for x in deps if mc == get_mc(x)]
163 if any(x in y for y in depnames for x in self.unlockedrecipes): 170 if any(x in y for y in depnames for x in self.unlockedrecipes):
164 self.unlockedrecipes[recipename] = '' 171 self.unlockedrecipes[recipename] = ''
165 unlocked = True 172 unlocked = True