diff options
Diffstat (limited to 'bitbake/bin')
| -rwxr-xr-x | bitbake/bin/bitbake-layers | 62 |
1 files changed, 29 insertions, 33 deletions
diff --git a/bitbake/bin/bitbake-layers b/bitbake/bin/bitbake-layers index 8cf7196c53..5518c63641 100755 --- a/bitbake/bin/bitbake-layers +++ b/bitbake/bin/bitbake-layers | |||
| @@ -705,13 +705,11 @@ build results (as the layer priority order has effectively changed). | |||
| 705 | return os.path.basename(layerdir.rstrip(os.sep)) | 705 | return os.path.basename(layerdir.rstrip(os.sep)) |
| 706 | 706 | ||
| 707 | def apply_append(self, appendname, recipename): | 707 | def apply_append(self, appendname, recipename): |
| 708 | appendfile = open(appendname, 'r') | 708 | with open(appendname, 'r') as appendfile: |
| 709 | recipefile = open(recipename, 'a') | 709 | with open(recipename, 'a') as recipefile: |
| 710 | recipefile.write('\n') | 710 | recipefile.write('\n') |
| 711 | recipefile.write('##### bbappended from %s #####\n' % self.get_file_layer(appendname)) | 711 | recipefile.write('##### bbappended from %s #####\n' % self.get_file_layer(appendname)) |
| 712 | recipefile.writelines(appendfile.readlines()) | 712 | recipefile.writelines(appendfile.readlines()) |
| 713 | recipefile.close() | ||
| 714 | appendfile.close() | ||
| 715 | 713 | ||
| 716 | def do_show_appends(self, args): | 714 | def do_show_appends(self, args): |
| 717 | """list bbappend files and recipe files they apply to | 715 | """list bbappend files and recipe files they apply to |
| @@ -879,20 +877,19 @@ NOTE: .bbappend files can impact the dependencies. | |||
| 879 | 877 | ||
| 880 | # The 'require/include xxx' in the bb file | 878 | # The 'require/include xxx' in the bb file |
| 881 | pv_re = re.compile(r"\${PV}") | 879 | pv_re = re.compile(r"\${PV}") |
| 882 | fnfile = open(f, 'r') | 880 | with open(f, 'r') as fnfile: |
| 883 | line = fnfile.readline() | ||
| 884 | while line: | ||
| 885 | m, keyword = self.match_require_include(line) | ||
| 886 | # Found the 'require/include xxxx' | ||
| 887 | if m: | ||
| 888 | needed_file = m.group(1) | ||
| 889 | # Replace the ${PV} with the real PV | ||
| 890 | if pv_re.search(needed_file) and f in self.bbhandler.cooker_data.pkg_pepvpr: | ||
| 891 | pv = self.bbhandler.cooker_data.pkg_pepvpr[f][1] | ||
| 892 | needed_file = re.sub(r"\${PV}", pv, needed_file) | ||
| 893 | self.print_cross_files(bbpath, keyword, layername, f, needed_file, args.filenames, ignore_layers) | ||
| 894 | line = fnfile.readline() | 881 | line = fnfile.readline() |
| 895 | fnfile.close() | 882 | while line: |
| 883 | m, keyword = self.match_require_include(line) | ||
| 884 | # Found the 'require/include xxxx' | ||
| 885 | if m: | ||
| 886 | needed_file = m.group(1) | ||
| 887 | # Replace the ${PV} with the real PV | ||
| 888 | if pv_re.search(needed_file) and f in self.bbhandler.cooker_data.pkg_pepvpr: | ||
| 889 | pv = self.bbhandler.cooker_data.pkg_pepvpr[f][1] | ||
| 890 | needed_file = re.sub(r"\${PV}", pv, needed_file) | ||
| 891 | self.print_cross_files(bbpath, keyword, layername, f, needed_file, args.filenames, ignore_layers) | ||
| 892 | line = fnfile.readline() | ||
| 896 | 893 | ||
| 897 | # The "require/include xxx" in conf/machine/*.conf, .inc and .bbclass | 894 | # The "require/include xxx" in conf/machine/*.conf, .inc and .bbclass |
| 898 | conf_re = re.compile(".*/conf/machine/[^\/]*\.conf$") | 895 | conf_re = re.compile(".*/conf/machine/[^\/]*\.conf$") |
| @@ -906,20 +903,19 @@ NOTE: .bbappend files can impact the dependencies. | |||
| 906 | f = os.path.join(dirpath, name) | 903 | f = os.path.join(dirpath, name) |
| 907 | s = conf_re.match(f) or inc_re.match(f) or bbclass_re.match(f) | 904 | s = conf_re.match(f) or inc_re.match(f) or bbclass_re.match(f) |
| 908 | if s: | 905 | if s: |
| 909 | ffile = open(f, 'r') | 906 | with open(f, 'r') as ffile: |
| 910 | line = ffile.readline() | ||
| 911 | while line: | ||
| 912 | m, keyword = self.match_require_include(line) | ||
| 913 | # Only bbclass has the "inherit xxx" here. | ||
| 914 | bbclass="" | ||
| 915 | if not m and f.endswith(".bbclass"): | ||
| 916 | m, keyword = self.match_inherit(line) | ||
| 917 | bbclass=".bbclass" | ||
| 918 | # Find a 'require/include xxxx' | ||
| 919 | if m: | ||
| 920 | self.print_cross_files(bbpath, keyword, layername, f, m.group(1) + bbclass, args.filenames, ignore_layers) | ||
| 921 | line = ffile.readline() | 907 | line = ffile.readline() |
| 922 | ffile.close() | 908 | while line: |
| 909 | m, keyword = self.match_require_include(line) | ||
| 910 | # Only bbclass has the "inherit xxx" here. | ||
| 911 | bbclass="" | ||
| 912 | if not m and f.endswith(".bbclass"): | ||
| 913 | m, keyword = self.match_inherit(line) | ||
| 914 | bbclass=".bbclass" | ||
| 915 | # Find a 'require/include xxxx' | ||
| 916 | if m: | ||
| 917 | self.print_cross_files(bbpath, keyword, layername, f, m.group(1) + bbclass, args.filenames, ignore_layers) | ||
| 918 | line = ffile.readline() | ||
| 923 | 919 | ||
| 924 | def print_cross_files(self, bbpath, keyword, layername, f, needed_filename, show_filenames, ignore_layers): | 920 | def print_cross_files(self, bbpath, keyword, layername, f, needed_filename, show_filenames, ignore_layers): |
| 925 | """Print the depends that crosses a layer boundary""" | 921 | """Print the depends that crosses a layer boundary""" |
