diff --git a/tools/resources/__init__.py b/tools/resources/__init__.py index ccb03a79b0..5d3d6446a3 100644 --- a/tools/resources/__init__.py +++ b/tools/resources/__init__.py @@ -261,26 +261,26 @@ class Resources(object): return list(self._file_refs[file_type]) def _all_parents(self, files): - for name in files: + for name, path in files: components = name.split(self._sep) - start_at = 2 if components[0] in set(['', '.']) else 1 - for index, directory in reversed(list(enumerate(components))[start_at:]): + start_at = 0 + for index, directory in reversed(list(enumerate(components))): if directory in self._prefixed_labels: start_at = index + 1 break + prefix = path.replace(name, "") for n in range(start_at, len(components)): - parent = self._sep.join(components[:n]) - yield parent + parent_name = self._sep.join(components[:n]) + parent_path = join(prefix, *components[:n]) + yield FileRef(parent_name, parent_path) def _get_from_refs(self, file_type, key): if file_type is FileType.INC_DIR: - parents = set(self._all_parents(self._get_from_refs( - FileType.HEADER, key))) - parents.add(".") + parents = set(self._all_parents(self._file_refs[FileType.HEADER])) else: parents = set() return sorted( - list(parents) + [key(f) for f in self.get_file_refs(file_type)] + [key(f) for f in list(parents) + self.get_file_refs(file_type)] ) diff --git a/tools/toolchains/arm.py b/tools/toolchains/arm.py index 15b844ddeb..abc1b32f39 100644 --- a/tools/toolchains/arm.py +++ b/tools/toolchains/arm.py @@ -188,7 +188,7 @@ class ARM(mbedToolchain): if self.RESPONSE_FILES: opts += ['--via', self.get_inc_file(includes)] else: - opts += ["-I%s" % i for i in includes] + opts += ["-I%s" % i for i in includes if i] return opts @@ -474,7 +474,7 @@ class ARMC6(ARM_STD): def get_compile_options(self, defines, includes, for_asm=False): opts = ['-D%s' % d for d in defines] - opts.extend(["-I%s" % i for i in includes]) + opts.extend(["-I%s" % i for i in includes if i]) if for_asm: return ["--cpreproc", "--cpreproc_opts=%s" % ",".join(self.flags['common'] + opts)]