summaryrefslogtreecommitdiffstats
path: root/meta/files/ext-sdk-prepare.py
diff options
context:
space:
mode:
Diffstat (limited to 'meta/files/ext-sdk-prepare.py')
-rw-r--r--meta/files/ext-sdk-prepare.py52
1 files changed, 1 insertions, 51 deletions
diff --git a/meta/files/ext-sdk-prepare.py b/meta/files/ext-sdk-prepare.py
index bf0d03336b..3b33c0f9e9 100644
--- a/meta/files/ext-sdk-prepare.py
+++ b/meta/files/ext-sdk-prepare.py
@@ -27,22 +27,6 @@ def exec_watch(cmd, **options):
27 27
28 return process.returncode, buf 28 return process.returncode, buf
29 29
30def check_unexpected(lines, recipes):
31 """Check for unexpected output lines from dry run"""
32 unexpected = []
33 for line in lines.splitlines():
34 if 'Running task' in line:
35 for recipe in recipes:
36 if recipe in line:
37 break
38 else:
39 line = line.split('Running', 1)[-1]
40 if 'do_rm_work' not in line:
41 unexpected.append(line.rstrip())
42 elif 'Running setscene' in line:
43 unexpected.append(line.rstrip())
44 return unexpected
45
46def main(): 30def main():
47 if len(sys.argv) < 2: 31 if len(sys.argv) < 2:
48 sdk_targets = [] 32 sdk_targets = []
@@ -55,44 +39,10 @@ def main():
55 39
56 print('Preparing SDK for %s...' % ', '.join(sdk_targets)) 40 print('Preparing SDK for %s...' % ', '.join(sdk_targets))
57 41
58 ret, out = exec_watch('bitbake %s --setscene-only' % ' '.join(sdk_targets)) 42 ret, out = exec_watch('BB_SETSCENE_ENFORCE=1 bitbake %s' % ' '.join(sdk_targets))
59 if ret: 43 if ret:
60 return ret 44 return ret
61 45
62 targetlist = []
63 for target in sdk_targets:
64 if ':' in target:
65 target = target.split(':')[0]
66 if not target in targetlist:
67 targetlist.append(target)
68
69 recipes = []
70 for target in targetlist:
71 try:
72 out = subprocess.check_output(('bitbake -e %s' % target).split(), stderr=subprocess.STDOUT)
73 for line in out.splitlines():
74 if line.startswith('FILE='):
75 splitval = line.rstrip().split('=')
76 if len(splitval) > 1:
77 recipes.append(splitval[1].strip('"'))
78 break
79 except subprocess.CalledProcessError as e:
80 print('ERROR: Failed to get recipe for target %s:\n%s' % (target, e.output))
81 return 1
82
83 try:
84 out = subprocess.check_output('bitbake %s -n' % ' '.join(sdk_targets), stderr=subprocess.STDOUT, shell=True)
85 unexpected = check_unexpected(out, recipes)
86 except subprocess.CalledProcessError as e:
87 print('ERROR: Failed to execute dry-run:\n%s' % e.output)
88 return 1
89
90 if unexpected:
91 print('ERROR: Unexpected tasks or setscene left over to be executed:')
92 for line in unexpected:
93 print(' ' + line)
94 return 1
95
96if __name__ == "__main__": 46if __name__ == "__main__":
97 try: 47 try:
98 ret = main() 48 ret = main()