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() |
