diff options
Diffstat (limited to 'scripts/lib')
3 files changed, 17 insertions, 4 deletions
diff --git a/scripts/lib/bsp/engine.py b/scripts/lib/bsp/engine.py index 6309e29a23..8985544811 100644 --- a/scripts/lib/bsp/engine.py +++ b/scripts/lib/bsp/engine.py | |||
| @@ -38,6 +38,7 @@ from tags import * | |||
| 38 | import shlex | 38 | import shlex |
| 39 | import json | 39 | import json |
| 40 | import subprocess | 40 | import subprocess |
| 41 | import shutil | ||
| 41 | 42 | ||
| 42 | class Line(): | 43 | class Line(): |
| 43 | """ | 44 | """ |
| @@ -83,7 +84,7 @@ class NormalLine(Line): | |||
| 83 | 84 | ||
| 84 | def gen(self, context = None): | 85 | def gen(self, context = None): |
| 85 | if self.is_filename: | 86 | if self.is_filename: |
| 86 | line = "of = open(\"" + os.path.join(self.out_filebase, self.escape(self.line)) + "\", \"w\")" | 87 | line = "current_file = \"" + os.path.join(self.out_filebase, self.escape(self.line)) + "\"; of = open(current_file, \"w\")" |
| 87 | elif self.is_dirname: | 88 | elif self.is_dirname: |
| 88 | dirname = os.path.join(self.out_filebase, self.escape(self.line)) | 89 | dirname = os.path.join(self.out_filebase, self.escape(self.line)) |
| 89 | line = "if not os.path.exists(\"" + dirname + "\"): os.mkdir(\"" + dirname + "\")" | 90 | line = "if not os.path.exists(\"" + dirname + "\"): os.mkdir(\"" + dirname + "\")" |
| @@ -134,7 +135,7 @@ class AssignmentLine(NormalLine): | |||
| 134 | idx = line.find(ASSIGN_TAG) | 135 | idx = line.find(ASSIGN_TAG) |
| 135 | line = line[:idx] + replacement + line[idx + assignment.end - assignment.start:] | 136 | line = line[:idx] + replacement + line[idx + assignment.end - assignment.start:] |
| 136 | if self.is_filename: | 137 | if self.is_filename: |
| 137 | return "of = open(\"" + os.path.join(self.out_filebase, line) + "\", \"w\")" | 138 | return "current_file = \"" + os.path.join(self.out_filebase, line) + "\"; of = open(current_file, \"w\")" |
| 138 | elif self.is_dirname: | 139 | elif self.is_dirname: |
| 139 | dirname = os.path.join(self.out_filebase, line) | 140 | dirname = os.path.join(self.out_filebase, line) |
| 140 | return "if not os.path.exists(\"" + dirname + "\"): os.mkdir(\"" + dirname + "\")" | 141 | return "if not os.path.exists(\"" + dirname + "\"): os.mkdir(\"" + dirname + "\")" |
| @@ -564,6 +565,17 @@ def get_verified_file(input_str, name, filename_can_be_null): | |||
| 564 | filename = default(raw_input(msg), name) | 565 | filename = default(raw_input(msg), name) |
| 565 | 566 | ||
| 566 | 567 | ||
| 568 | def replace_file(replace_this, with_this): | ||
| 569 | """ | ||
| 570 | Replace the given file with the contents of filename, retaining | ||
| 571 | the original filename. | ||
| 572 | """ | ||
| 573 | try: | ||
| 574 | shutil.copy(with_this, replace_this) | ||
| 575 | except IOError: | ||
| 576 | pass | ||
| 577 | |||
| 578 | |||
| 567 | def boolean(input_str, name): | 579 | def boolean(input_str, name): |
| 568 | """ | 580 | """ |
| 569 | Return lowercase version of first char in string, or value in name. | 581 | Return lowercase version of first char in string, or value in name. |
| @@ -1197,7 +1209,7 @@ def gen_program_header_lines(program_lines): | |||
| 1197 | """ | 1209 | """ |
| 1198 | Generate any imports we need. | 1210 | Generate any imports we need. |
| 1199 | """ | 1211 | """ |
| 1200 | pass | 1212 | program_lines.append("current_file = \"\"") |
| 1201 | 1213 | ||
| 1202 | 1214 | ||
| 1203 | def gen_supplied_property_vals(properties, program_lines): | 1215 | def gen_supplied_property_vals(properties, program_lines): |
diff --git a/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/{{ if kernel_choice == "custom": }} linux-yocto-custom/defconfig b/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/{{ if kernel_choice == "custom": }} linux-yocto-custom/defconfig index c2745c5e1e..e544a0a4a5 100644 --- a/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/{{ if kernel_choice == "custom": }} linux-yocto-custom/defconfig +++ b/scripts/lib/bsp/substrate/target/arch/common/recipes-kernel/linux/{{ if kernel_choice == "custom": }} linux-yocto-custom/defconfig | |||
| @@ -2,3 +2,4 @@ | |||
| 2 | # Placeholder for custom default kernel configuration. yocto-bsp will | 2 | # Placeholder for custom default kernel configuration. yocto-bsp will |
| 3 | # replace this file with a user-specified defconfig. | 3 | # replace this file with a user-specified defconfig. |
| 4 | # | 4 | # |
| 5 | {{ if custom_kernel_defconfig: replace_file(current_file, custom_kernel_defconfig) }} | ||
diff --git a/scripts/lib/bsp/tags.py b/scripts/lib/bsp/tags.py index 869b1d065a..256b25cb04 100644 --- a/scripts/lib/bsp/tags.py +++ b/scripts/lib/bsp/tags.py | |||
| @@ -35,7 +35,7 @@ INDENT_STR = " " | |||
| 35 | 35 | ||
| 36 | BLANKLINE_STR = "of.write(\"\\n\")" | 36 | BLANKLINE_STR = "of.write(\"\\n\")" |
| 37 | NORMAL_START = "of.write" | 37 | NORMAL_START = "of.write" |
| 38 | OPEN_START = "of = open" | 38 | OPEN_START = "current_file =" |
| 39 | 39 | ||
| 40 | INPUT_TYPE_PROPERTY = "type" | 40 | INPUT_TYPE_PROPERTY = "type" |
| 41 | 41 | ||
