From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id DC32F80349 for ; Tue, 7 Mar 2017 00:01:27 -0800 (PST) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga105.jf.intel.com with ESMTP; 07 Mar 2017 00:01:27 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.35,257,1484035200"; d="scan'208";a="941449613" Received: from tiano01.ccr.corp.intel.com ([10.239.9.111]) by orsmga003.jf.intel.com with ESMTP; 07 Mar 2017 00:01:26 -0800 From: hesschen To: edk2-devel@lists.01.org Date: Tue, 7 Mar 2017 16:01:25 +0800 Message-Id: <1488873685-16456-1-git-send-email-hesheng.chen@intel.com> X-Mailer: git-send-email 2.7.2.windows.1 Subject: [patch] BaseTools/UPT: Fix an issue of adding Event twice X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Mar 2017 08:01:28 -0000 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: hesschen --- BaseTools/Source/Python/UPT/GenMetaFile/GenInfFile.py | 18 ++++++++++++------ 1 file 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.
+# Copyright (c) 2011 - 2017, Intel Corporation. All rights reserved.
# # 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' -- 2.7.2.windows.1