diff options
Diffstat (limited to 'meta/files/ext-sdk-prepare.py')
-rw-r--r-- | meta/files/ext-sdk-prepare.py | 52 |
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 | ||
30 | def 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 | |||
46 | def main(): | 30 | def 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 | |||
96 | if __name__ == "__main__": | 46 | if __name__ == "__main__": |
97 | try: | 47 | try: |
98 | ret = main() | 48 | ret = main() |