summaryrefslogtreecommitdiff
path: root/BaseTools
diff options
context:
space:
mode:
authorHess Chen <hesheng.chen@intel.com>2017-03-07 16:01:25 +0800
committerYonghong Zhu <yonghong.zhu@intel.com>2017-03-09 15:07:06 +0800
commite0e1cfcbbb24483f4c3caad3572184fff9b65d24 (patch)
treecb4d0609b106115b19e552aecb8d8572006724c1 /BaseTools
parent4ae8b492b9e57445ec76c6ef81d67656f8a4850a (diff)
downloadedk2-e0e1cfcbbb24483f4c3caad3572184fff9b65d24.zip
edk2-e0e1cfcbbb24483f4c3caad3572184fff9b65d24.tar.gz
edk2-e0e1cfcbbb24483f4c3caad3572184fff9b65d24.tar.bz2
BaseTools/UPT: Fix an issue of adding Event twice
Fix the issue of after installing a package the Event information is duplicated. The tool checks if the EVENT information existing in UserExtension or not. If already existing in UserExtension the tool will not add additional information. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hess Chen <hesheng.chen@intel.com> Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
Diffstat (limited to 'BaseTools')
-rw-r--r--BaseTools/Source/Python/UPT/GenMetaFile/GenInfFile.py18
1 files changed, 12 insertions, 6 deletions
diff --git a/BaseTools/Source/Python/UPT/GenMetaFile/GenInfFile.py b/BaseTools/Source/Python/UPT/GenMetaFile/GenInfFile.py
index c1362e6..bb8a120 100644
--- a/BaseTools/Source/Python/UPT/GenMetaFile/GenInfFile.py
+++ b/BaseTools/Source/Python/UPT/GenMetaFile/GenInfFile.py
@@ -2,7 +2,7 @@
#
# This file contained the logical of transfer package object to INF files.
#
-# Copyright (c) 2011 - 2016, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2011 - 2017, Intel Corporation. All rights reserved.<BR>
#
# This program and the accompanying materials are licensed and made available
# under the terms and conditions of the BSD License which accompanies this
@@ -169,15 +169,16 @@ def ModuleToInf(ModuleObject, PackageObject=None, DistHeader=None):
Content += GenGuidSections(ModuleObject.GetGuidList())
Content += GenBinaries(ModuleObject)
Content += GenDepex(ModuleObject)
- Content += GenUserExtensions(ModuleObject)
+ __UserExtensionsContent = GenUserExtensions(ModuleObject)
+ Content += __UserExtensionsContent
if ModuleObject.GetEventList() or ModuleObject.GetBootModeList() or ModuleObject.GetHobList():
Content += '\n'
#
# generate [Event], [BootMode], [Hob] section
#
- Content += GenSpecialSections(ModuleObject.GetEventList(), 'Event')
- Content += GenSpecialSections(ModuleObject.GetBootModeList(), 'BootMode')
- Content += GenSpecialSections(ModuleObject.GetHobList(), 'Hob')
+ Content += GenSpecialSections(ModuleObject.GetEventList(), 'Event', __UserExtensionsContent)
+ Content += GenSpecialSections(ModuleObject.GetBootModeList(), 'BootMode', __UserExtensionsContent)
+ Content += GenSpecialSections(ModuleObject.GetHobList(), 'Hob', __UserExtensionsContent)
SaveFileOnChange(ContainerFile, Content, False)
if DistHeader.ReadOnly:
os.chmod(ContainerFile, stat.S_IRUSR|stat.S_IRGRP|stat.S_IROTH)
@@ -979,7 +980,7 @@ def GenAsBuiltPcdExSections(ModuleObject):
## GenSpecialSections
# generate special sections for Event/BootMode/Hob
#
-def GenSpecialSections(ObjectList, SectionName):
+def GenSpecialSections(ObjectList, SectionName, UserExtensionsContent=''):
#
# generate section
#
@@ -1002,6 +1003,11 @@ def GenSpecialSections(ObjectList, SectionName):
else:
assert(SectionName)
Usage = Obj.GetUsage()
+
+ # If the content already in UserExtensionsContent then ignore
+ if '[%s]' % SectionName in UserExtensionsContent and Type in UserExtensionsContent:
+ return ''
+
Statement = ' ' + Type + ' ## ' + Usage
if CommentStr in ['#\n', '#\n#\n']:
CommentStr = '#\n#\n#\n'