mirror of https://github.com/ARMmbed/mbed-os.git
Use relative path to scatter for include path
parent
9245b50a54
commit
9b8ba4dd98
|
@ -228,9 +228,10 @@ class Arm(Makefile):
|
||||||
|
|
||||||
def generate(self):
|
def generate(self):
|
||||||
if self.resources.linker_script:
|
if self.resources.linker_script:
|
||||||
|
sct_file = self.resources.linker_script
|
||||||
new_script = self.toolchain.correct_scatter_shebang(
|
new_script = self.toolchain.correct_scatter_shebang(
|
||||||
self.resources.linker_script)
|
sct_file, join(self.resources.file_basepath[sct_file], "BUILD"))
|
||||||
if new_script is not self.resources.linker_script:
|
if new_script is not sct_file:
|
||||||
self.resources.linker_script = new_script
|
self.resources.linker_script = new_script
|
||||||
self.generated_files.append(new_script)
|
self.generated_files.append(new_script)
|
||||||
return super(Arm, self).generate()
|
return super(Arm, self).generate()
|
||||||
|
|
|
@ -217,12 +217,14 @@ class Uvision(Exporter):
|
||||||
# UVFile tuples defined above
|
# UVFile tuples defined above
|
||||||
'project_files': sorted(list(self.format_src(srcs).iteritems()),
|
'project_files': sorted(list(self.format_src(srcs).iteritems()),
|
||||||
key=lambda (group, _): group.lower()),
|
key=lambda (group, _): group.lower()),
|
||||||
'linker_script':self.toolchain.correct_scatter_shebang(
|
|
||||||
self.resources.linker_script),
|
|
||||||
'include_paths': '; '.join(self.resources.inc_dirs).encode('utf-8'),
|
'include_paths': '; '.join(self.resources.inc_dirs).encode('utf-8'),
|
||||||
'device': DeviceUvision(self.target),
|
'device': DeviceUvision(self.target),
|
||||||
}
|
}
|
||||||
self.generated_files.append(ctx['linker_script'])
|
sct_file = self.resources.linker_script
|
||||||
|
ctx['linker_script'] = self.toolchain.correct_scatter_shebang(
|
||||||
|
sct_file, self.resources.file_basepath[sct_file])
|
||||||
|
if ctx['linker_script'] != sct_file:
|
||||||
|
self.generated_files.append(ctx['linker_script'])
|
||||||
core = ctx['device'].core
|
core = ctx['device'].core
|
||||||
ctx['cputype'] = core.rstrip("FD")
|
ctx['cputype'] = core.rstrip("FD")
|
||||||
if core.endswith("FD"):
|
if core.endswith("FD"):
|
||||||
|
|
|
@ -16,8 +16,8 @@ limitations under the License.
|
||||||
"""
|
"""
|
||||||
import re
|
import re
|
||||||
from copy import copy
|
from copy import copy
|
||||||
from os.path import join, dirname, splitext, basename, exists
|
from os.path import join, dirname, splitext, basename, exists, relpath
|
||||||
from os import makedirs, write
|
from os import makedirs, write, curdir
|
||||||
from tempfile import mkstemp
|
from tempfile import mkstemp
|
||||||
|
|
||||||
from tools.toolchains import mbedToolchain, TOOLCHAIN_PATHS
|
from tools.toolchains import mbedToolchain, TOOLCHAIN_PATHS
|
||||||
|
@ -184,7 +184,7 @@ class ARM(mbedToolchain):
|
||||||
def compile_cpp(self, source, object, includes):
|
def compile_cpp(self, source, object, includes):
|
||||||
return self.compile(self.cppc, source, object, includes)
|
return self.compile(self.cppc, source, object, includes)
|
||||||
|
|
||||||
def correct_scatter_shebang(self, scatter_file):
|
def correct_scatter_shebang(self, scatter_file, base_path=curdir):
|
||||||
"""Correct the shebang at the top of a scatter file.
|
"""Correct the shebang at the top of a scatter file.
|
||||||
|
|
||||||
Positional arguments:
|
Positional arguments:
|
||||||
|
@ -203,7 +203,8 @@ class ARM(mbedToolchain):
|
||||||
return scatter_file
|
return scatter_file
|
||||||
else:
|
else:
|
||||||
new_scatter = join(self.build_dir, ".link_script.sct")
|
new_scatter = join(self.build_dir, ".link_script.sct")
|
||||||
self.SHEBANG += " -I %s" % dirname(scatter_file)
|
self.SHEBANG += " -I %s" % relpath(dirname(scatter_file),
|
||||||
|
base_path)
|
||||||
if self.need_update(new_scatter, [scatter_file]):
|
if self.need_update(new_scatter, [scatter_file]):
|
||||||
with open(new_scatter, "wb") as out:
|
with open(new_scatter, "wb") as out:
|
||||||
out.write(self.SHEBANG)
|
out.write(self.SHEBANG)
|
||||||
|
|
Loading…
Reference in New Issue