mirror of https://github.com/acidanthera/audk.git
BaseTools: Fix an incremental build issue caused by macro in #include
When c/h file use macro after #include, for example,
In this case, GenMake is not able to create a healthy dependency for the c
file. GenMake used to add $(FORCE_REBUILD) dependency in the c file, this
guarantee the c file is always compiled in incremental build. But, this
function is broken since 05217d210e
which
enable /MP for MSVC compiler, in order to compile multiple c files in one
command multi-processing. The fix here is adding '$(FORCE_REBUILD)' back to
retain the original function.
Line number 1728 and 978 are the code pieces which handle this logic.
Signed-off-by: Derek Lin <derek.lin2@hpe.com>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
This commit is contained in:
parent
e797a806a8
commit
b1c6e9f55e
|
@ -1080,13 +1080,17 @@ cleanlib:
|
|||
else:
|
||||
CmdCppDict[item.Target.SubDir] = ['$(MAKE_FILE)', Path]
|
||||
if CppPath.Path in DependencyDict:
|
||||
for Temp in DependencyDict[CppPath.Path]:
|
||||
try:
|
||||
Path = self.PlaceMacro(Temp.Path, self.Macros)
|
||||
except:
|
||||
continue
|
||||
if Path not in (self.CommonFileDependency + CmdCppDict[item.Target.SubDir]):
|
||||
CmdCppDict[item.Target.SubDir].append(Path)
|
||||
if '$(FORCE_REBUILD)' in DependencyDict[CppPath.Path]:
|
||||
if '$(FORCE_REBUILD)' not in (self.CommonFileDependency + CmdCppDict[item.Target.SubDir]):
|
||||
CmdCppDict[item.Target.SubDir].append('$(FORCE_REBUILD)')
|
||||
else:
|
||||
for Temp in DependencyDict[CppPath.Path]:
|
||||
try:
|
||||
Path = self.PlaceMacro(Temp.Path, self.Macros)
|
||||
except:
|
||||
continue
|
||||
if Path not in (self.CommonFileDependency + CmdCppDict[item.Target.SubDir]):
|
||||
CmdCppDict[item.Target.SubDir].append(Path)
|
||||
if T.Commands:
|
||||
CommandList = T.Commands[:]
|
||||
for Item in CommandList[:]:
|
||||
|
|
Loading…
Reference in New Issue