mirror of https://github.com/acidanthera/audk.git
BaseTools: Add $(INC)-like support when compiling .nasm files
current edk2\BaseTools\Conf\build_rule.template, the compile of nasm source files does not have the $(INC) support. The '-I' option only includes the directory of the nasm source file (${s_path}(+)). Hence, it will be impossible for nasm files to include files outside of the nasm source file directory. As a comparison, the compile of both .s and .asm have $(INC) support in their compile commands. Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=1085 Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Cc: Bob Feng <bob.c.feng@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Zhiju.Fan <zhijux.fan@intel.com> Reviewed-by: Bob Feng <bob.c.feng@intel.com>
This commit is contained in:
parent
7c3a1efd15
commit
073a76e662
|
@ -167,7 +167,7 @@ class BuildFile(object):
|
|||
"gmake" : "include"
|
||||
}
|
||||
|
||||
_INC_FLAG_ = {TAB_COMPILER_MSFT : "/I", "GCC" : "-I", "INTEL" : "-I", "RVCT" : "-I"}
|
||||
_INC_FLAG_ = {TAB_COMPILER_MSFT : "/I", "GCC" : "-I", "INTEL" : "-I", "RVCT" : "-I", "NASM" : "-I"}
|
||||
|
||||
## Constructor of BuildFile
|
||||
#
|
||||
|
@ -596,6 +596,24 @@ cleanlib:
|
|||
}
|
||||
)
|
||||
FileMacroList.append(FileMacro)
|
||||
# Add support when compiling .nasm source files
|
||||
for File in self.FileCache.keys():
|
||||
if not str(File).endswith('.nasm'):
|
||||
continue
|
||||
IncludePathList = []
|
||||
for P in MyAgo.IncludePathList:
|
||||
IncludePath = self._INC_FLAG_['NASM'] + self.PlaceMacro(P, self.Macros)
|
||||
if IncludePath.endswith(os.sep):
|
||||
IncludePath = IncludePath.rstrip(os.sep)
|
||||
# When compiling .nasm files, need to add a literal backslash at each path
|
||||
# To specify a literal backslash at the end of the line, precede it with a caret (^)
|
||||
if P == MyAgo.IncludePathList[-1] and os.sep == '\\':
|
||||
IncludePath = ''.join([IncludePath, '^', os.sep])
|
||||
else:
|
||||
IncludePath = os.path.join(IncludePath, '')
|
||||
IncludePathList.append(IncludePath)
|
||||
FileMacroList.append(self._FILE_MACRO_TEMPLATE.Replace({"macro_name": "NASM_INC", "source_file": IncludePathList}))
|
||||
break
|
||||
|
||||
# Generate macros used to represent files containing list of input files
|
||||
for ListFileMacro in self.ListFileMacros:
|
||||
|
|
Loading…
Reference in New Issue