mirror of https://github.com/acidanthera/audk.git
BaseTools: Fixed a incremental build bug
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2451 If removing a header file from source code and file system, the incremental build will fail. This patch is to fix this issue by setting each header file as a target without any actions in makefile. Signed-off-by: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
parent
18fcb37598
commit
5cd3d4bc43
|
@ -1,7 +1,7 @@
|
|||
## @file
|
||||
# Create makefile for MS nmake and GNU make
|
||||
#
|
||||
# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2007 - 2020, Intel Corporation. All rights reserved.<BR>
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
|
||||
|
@ -191,6 +191,9 @@ class BuildFile(object):
|
|||
if not os.path.exists(os.path.join(self._AutoGenObject.MakeFileDir, "dependency")):
|
||||
with open(os.path.join(self._AutoGenObject.MakeFileDir, "dependency"),"w+") as fd:
|
||||
fd.write("")
|
||||
if not os.path.exists(os.path.join(self._AutoGenObject.MakeFileDir, "deps_target")):
|
||||
with open(os.path.join(self._AutoGenObject.MakeFileDir, "deps_target"),"w+") as fd:
|
||||
fd.write("")
|
||||
return SaveFileOnChange(os.path.join(self._AutoGenObject.MakeFileDir, FileName), FileContent, False)
|
||||
|
||||
## Return a list of directory creation command string
|
||||
|
@ -696,7 +699,9 @@ cleanlib:
|
|||
"file_macro" : FileMacroList,
|
||||
"file_build_target" : self.BuildTargetList,
|
||||
"backward_compatible_target": BcTargetList,
|
||||
"INCLUDETAG" : self._INCLUDE_CMD_[self._FileType] + " " + os.path.join("$(MODULE_BUILD_DIR)","dependency")
|
||||
"INCLUDETAG" : "\n".join([self._INCLUDE_CMD_[self._FileType] + " " + os.path.join("$(MODULE_BUILD_DIR)","dependency"),
|
||||
self._INCLUDE_CMD_[self._FileType] + " " + os.path.join("$(MODULE_BUILD_DIR)","deps_target")
|
||||
])
|
||||
}
|
||||
|
||||
return MakefileTemplateDict
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
## @file
|
||||
# Build cache intermediate result and state
|
||||
#
|
||||
# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2019 - 2020, Intel Corporation. All rights reserved.<BR>
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
from Common.caching import cached_property
|
||||
|
@ -65,6 +65,9 @@ class IncludesAutoGen():
|
|||
print(e)
|
||||
SaveFileOnChange(os.path.join(self.makefile_folder,"dependency"),deps_include_str,False)
|
||||
|
||||
def CreateDepsTarget(self):
|
||||
SaveFileOnChange(os.path.join(self.makefile_folder,"deps_target"),"\n".join([item +":" for item in self.DepsCollection]),False)
|
||||
|
||||
@cached_property
|
||||
def deps_files(self):
|
||||
""" Get all .deps file under module build folder. """
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# build a platform or a module
|
||||
#
|
||||
# Copyright (c) 2014, Hewlett-Packard Development Company, L.P.<BR>
|
||||
# Copyright (c) 2007 - 2019, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2007 - 2020, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2018, Hewlett Packard Enterprise Development, L.P.<BR>
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
@ -280,6 +280,7 @@ def LaunchCommand(Command, WorkingDir,ModuleAuto = None):
|
|||
iau.UpdateDepsFileforTrim()
|
||||
iau.CreateModuleDeps()
|
||||
iau.CreateDepsInclude()
|
||||
iau.CreateDepsTarget()
|
||||
return "%dms" % (int(round((time.time() - BeginTime) * 1000)))
|
||||
|
||||
## The smallest unit that can be built in multi-thread build mode
|
||||
|
|
Loading…
Reference in New Issue