From nobody Thu May 16 17:35:49 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+76175+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+76175+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1623119634; cv=none; d=zohomail.com; s=zohoarc; b=N70YNa1N48E9HdIZbdo07p4IQuMmjJxskt4b9paJMsSXoV0Ytd6xArdsM5sRmMgjz7TUtpp+e+apA5iDnYTjotf1QESzLaOKHeQguaoYlwve7ZEBxzMqZg2Y3vb8FjGbUFaQ4gI6ShHOoMKerfAzvBjImxMuO6UbNWa+doxE5CU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1623119634; h=Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Sender:Subject:To; bh=k+YfxCdJx9Atbvav5FKdGpFAFF2cNNTOLxNVMQI8KE8=; b=PnvluliQ6xXCzB/gj72j8E7OX+CH3e64IejGQsedjgRsKWwEZgz46X/NWRp/bE29doySkDpRzBl54iQW/GKO0nRg1eb0zaXibKuDkcIEAoYGIN0pAaMA4Twnwrcm/Bd/HR5H/JCmSDBDh/i3Szy+UPwsfOFJp3bLLIp7KwB50sc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+76175+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1623119634563197.7422860333711; Mon, 7 Jun 2021 19:33:54 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 3NGBYY1788612xIIANRXUXx9; Mon, 07 Jun 2021 19:33:53 -0700 X-Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web09.7386.1623119582933753888 for ; Mon, 07 Jun 2021 19:33:03 -0700 IronPort-SDR: Bm3Z+AeDLlnSgB7OyKgy+1HxbrAejIJu6G9cXsdEkzaNHj1lSYefTIvLADqiShJCfbqjjpeggh yQcBqrykPo4g== X-IronPort-AV: E=McAfee;i="6200,9189,10008"; a="202899927" X-IronPort-AV: E=Sophos;i="5.83,256,1616482800"; d="scan'208";a="202899927" X-Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Jun 2021 19:33:01 -0700 IronPort-SDR: m87s0CwVJXKklWDmersqQHfNG85EuB+c4gifqe16+tKX548yDIPWGJGqDFL5vo7Mk70r2L8UZ1 P0tgc3hDLeRQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,256,1616482800"; d="scan'208";a="447723456" X-Received: from shwdepsi1121.ccr.corp.intel.com ([10.239.158.137]) by orsmga008.jf.intel.com with ESMTP; 07 Jun 2021 19:32:59 -0700 From: "Bob Feng" To: devel@edk2.groups.io Cc: Liming Gao , Yuwei Chen , Michael D Kinney , Nate DeSimone Subject: [edk2-devel] [Patch] BaseTools: Enable the flag to treat dynamic pcd as dynamicEx Date: Tue, 8 Jun 2021 10:31:55 +0800 Message-Id: <20210608023155.710-1-bob.c.feng@intel.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,bob.c.feng@intel.com X-Gm-Message-State: EFxtdqv9344sDpVH87T2wdWVx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1623119633; bh=NaMHuyTJnDLhsvOyDPDXDbUj8Gv2s6AZfvUiBTXP2Wk=; h=Cc:Date:From:Reply-To:Subject:To; b=KQbeqjChNv2iR7QuEai+Yu10zDuUwGEwD1JjfKoWdGeheoJn/gPiVe+rSYPGAAsnHRY xlbnLBsM0Xj9XJRFS+Vv1nyW4HviXCLQJDPUeXOLN5ju+zwlk51pAvrAY+l1JJ0PexjUD Hx2q/GjLPHkxcvqhlrJMlzZUad+ZQv+WefI= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3D1688 In order to support binary build, build tool add a flag to convert type of Dynamic Pcd to DynamicEx Pcd User can append -D PCD_DYNAMIC_AS_DYNAMICEX to build command to enable this function. Also, user can add "PCD_DYNAMIC_AS_DYNAMICEX =3D TRUE/FALSE" to the defines section of Dsc file to enable this function. PCD_DYNAMIC_AS_DYNAMICEX is a new reserved key word for this function. Signed-off-by: Bob Feng Cc: Liming Gao Cc: Yuwei Chen Cc: Michael D Kinney Cc: Nate DeSimone --- BaseTools/Source/Python/Common/DataType.py | 1 + .../Python/Workspace/BuildClassObject.py | 153 ++++++++---------- .../Source/Python/Workspace/DecBuildData.py | 16 +- .../Source/Python/Workspace/DscBuildData.py | 19 +-- .../Source/Python/Workspace/InfBuildData.py | 15 +- 5 files changed, 73 insertions(+), 131 deletions(-) diff --git a/BaseTools/Source/Python/Common/DataType.py b/BaseTools/Source/= Python/Common/DataType.py index fb88f20cc4..4e9c9e34af 100644 --- a/BaseTools/Source/Python/Common/DataType.py +++ b/BaseTools/Source/Python/Common/DataType.py @@ -402,10 +402,11 @@ TAB_DSC_DEFINES_DSC_SPECIFICATION =3D 'DSC_SPECIFICAT= ION' TAB_DSC_DEFINES_OUTPUT_DIRECTORY =3D 'OUTPUT_DIRECTORY' TAB_DSC_DEFINES_SUPPORTED_ARCHITECTURES =3D 'SUPPORTED_ARCHITECTURES' TAB_DSC_DEFINES_BUILD_TARGETS =3D 'BUILD_TARGETS' TAB_DSC_DEFINES_SKUID_IDENTIFIER =3D 'SKUID_IDENTIFIER' TAB_DSC_DEFINES_PCD_INFO_GENERATION =3D 'PCD_INFO_GENERATION' +TAB_DSC_DEFINES_PCD_DYNAMIC_AS_DYNAMICEX =3D 'PCD_DYNAMIC_AS_DYNAMICEX' TAB_DSC_DEFINES_PCD_VAR_CHECK_GENERATION =3D 'PCD_VAR_CHECK_GENERATION' TAB_DSC_DEFINES_FLASH_DEFINITION =3D 'FLASH_DEFINITION' TAB_DSC_DEFINES_BUILD_NUMBER =3D 'BUILD_NUMBER' TAB_DSC_DEFINES_MAKEFILE_NAME =3D 'MAKEFILE_NAME' TAB_DSC_DEFINES_BS_BASE_ADDRESS =3D 'BsBaseAddress' diff --git a/BaseTools/Source/Python/Workspace/BuildClassObject.py b/BaseTo= ols/Source/Python/Workspace/BuildClassObject.py index ebb65fc2fe..88a1d1582c 100644 --- a/BaseTools/Source/Python/Workspace/BuildClassObject.py +++ b/BaseTools/Source/Python/Workspace/BuildClassObject.py @@ -10,11 +10,13 @@ from Common.DataType import * import collections import re from collections import OrderedDict from Common.Misc import CopyDict,ArrayIndex import copy +from CommonDataClass.DataClass import * import Common.EdkLogger as EdkLogger +import Common.GlobalData as GlobalData from Common.BuildToolError import OPTION_VALUE_INVALID from Common.caching import cached_property StructPattern =3D re.compile(r'[_a-zA-Z][0-9A-Za-z_\[\]]*$') =20 ## PcdClassObject @@ -396,10 +398,71 @@ class StructurePcd(PcdClassObject): new_pcd.ValueChain =3D {item for item in self.ValueChain} return new_pcd =20 LibraryClassObject =3D namedtuple('LibraryClassObject', ['LibraryClass','S= upModList']) =20 +class BuildData(object): + # dict used to convert PCD type in database to string used by build to= ol + + _PCD_TYPE_STRING_ =3D { + MODEL_PCD_FIXED_AT_BUILD : TAB_PCDS_FIXED_AT_BUILD, + MODEL_PCD_PATCHABLE_IN_MODULE : TAB_PCDS_PATCHABLE_IN_MODULE, + MODEL_PCD_FEATURE_FLAG : TAB_PCDS_FEATURE_FLAG, + MODEL_PCD_DYNAMIC : TAB_PCDS_DYNAMIC, + MODEL_PCD_DYNAMIC_DEFAULT : TAB_PCDS_DYNAMIC, + MODEL_PCD_DYNAMIC_HII : TAB_PCDS_DYNAMIC_HII, + MODEL_PCD_DYNAMIC_VPD : TAB_PCDS_DYNAMIC_VPD, + MODEL_PCD_DYNAMIC_EX : TAB_PCDS_DYNAMIC_EX, + MODEL_PCD_DYNAMIC_EX_DEFAULT : TAB_PCDS_DYNAMIC_EX, + MODEL_PCD_DYNAMIC_EX_HII : TAB_PCDS_DYNAMIC_EX_HII, + MODEL_PCD_DYNAMIC_EX_VPD : TAB_PCDS_DYNAMIC_EX_VPD, + } + + def UpdatePcdTypeDict(self): + if GlobalData.gCommandLineDefines.get(TAB_DSC_DEFINES_PCD_DYNAMIC_= AS_DYNAMICEX,"FALSE").upper() =3D=3D "TRUE": + self._PCD_TYPE_STRING_ =3D { + MODEL_PCD_FIXED_AT_BUILD : TAB_PCDS_FIXED_AT_BUIL= D, + MODEL_PCD_PATCHABLE_IN_MODULE : TAB_PCDS_PATCHABLE_IN_= MODULE, + MODEL_PCD_FEATURE_FLAG : TAB_PCDS_FEATURE_FLAG, + MODEL_PCD_DYNAMIC : TAB_PCDS_DYNAMIC_EX, + MODEL_PCD_DYNAMIC_DEFAULT : TAB_PCDS_DYNAMIC_EX, + MODEL_PCD_DYNAMIC_HII : TAB_PCDS_DYNAMIC_EX_HI= I, + MODEL_PCD_DYNAMIC_VPD : TAB_PCDS_DYNAMIC_EX_VP= D, + MODEL_PCD_DYNAMIC_EX : TAB_PCDS_DYNAMIC_EX, + MODEL_PCD_DYNAMIC_EX_DEFAULT : TAB_PCDS_DYNAMIC_EX, + MODEL_PCD_DYNAMIC_EX_HII : TAB_PCDS_DYNAMIC_EX_HI= I, + MODEL_PCD_DYNAMIC_EX_VPD : TAB_PCDS_DYNAMIC_EX_VP= D, + } + + ## Convert the class to a string + # + # Convert member MetaFile of the class to a string + # + # @retval string Formatted String + # + def __str__(self): + return str(self.MetaFile) + + ## Override __eq__ function + # + # Check whether ModuleBuildClassObjects are the same + # + # @retval False The two ModuleBuildClassObjects are different + # @retval True The two ModuleBuildClassObjects are the same + # + def __eq__(self, Other): + return self.MetaFile =3D=3D Other + + ## Override __hash__ function + # + # Use MetaFile as key in hash table + # + # @retval string Key for hash table + # + def __hash__(self): + return hash(self.MetaFile) + ## ModuleBuildClassObject # # This Class defines ModuleBuildClass # # @param object: Inherited from object class @@ -440,11 +503,11 @@ LibraryClassObject =3D namedtuple('LibraryClassObject= ', ['LibraryClass','SupModLis # { [(PcdCName, PcdGuidCName)] : PcdClassObje= ct} # @var BuildOptions: To store value for BuildOptions, it is a se= t structure as # { [BuildOptionKey] : BuildOptionValue} # @var Depex: To store value for Depex # -class ModuleBuildClassObject(object): +class ModuleBuildClassObject(BuildData): def __init__(self): self.AutoGenVersion =3D 0 self.MetaFile =3D '' self.BaseName =3D '' self.ModuleType =3D '' @@ -474,38 +537,10 @@ class ModuleBuildClassObject(object): self.BuildOptions =3D {} self.Depex =3D {} self.StrPcdSet =3D [] self.StrPcdOverallValue =3D {} =20 - ## Convert the class to a string - # - # Convert member MetaFile of the class to a string - # - # @retval string Formatted String - # - def __str__(self): - return str(self.MetaFile) - - ## Override __eq__ function - # - # Check whether ModuleBuildClassObjects are the same - # - # @retval False The two ModuleBuildClassObjects are different - # @retval True The two ModuleBuildClassObjects are the same - # - def __eq__(self, Other): - return self.MetaFile =3D=3D Other - - ## Override __hash__ function - # - # Use MetaFile as key in hash table - # - # @retval string Key for hash table - # - def __hash__(self): - return hash(self.MetaFile) - ## PackageBuildClassObject # # This Class defines PackageBuildClass # # @param object: Inherited from object class @@ -525,11 +560,11 @@ class ModuleBuildClassObject(object): # @var LibraryClasses: To store value for LibraryClasses, it is a set str= ucture as # { [LibraryClassName] : LibraryClassInfFile } # @var Pcds: To store value for Pcds, it is a set structure as # { [(PcdCName, PcdGuidCName)] : PcdClassObject} # -class PackageBuildClassObject(object): +class PackageBuildClassObject(BuildData): def __init__(self): self.MetaFile =3D '' self.PackageName =3D '' self.Guid =3D '' self.Version =3D '' @@ -539,38 +574,10 @@ class PackageBuildClassObject(object): self.Guids =3D {} self.Includes =3D [] self.LibraryClasses =3D {} self.Pcds =3D {} =20 - ## Convert the class to a string - # - # Convert member MetaFile of the class to a string - # - # @retval string Formatted String - # - def __str__(self): - return str(self.MetaFile) - - ## Override __eq__ function - # - # Check whether PackageBuildClassObjects are the same - # - # @retval False The two PackageBuildClassObjects are different - # @retval True The two PackageBuildClassObjects are the same - # - def __eq__(self, Other): - return self.MetaFile =3D=3D Other - - ## Override __hash__ function - # - # Use MetaFile as key in hash table - # - # @retval string Key for hash table - # - def __hash__(self): - return hash(self.MetaFile) - ## PlatformBuildClassObject # # This Class defines PlatformBuildClass # # @param object: Inherited from object class @@ -595,11 +602,11 @@ class PackageBuildClassObject(object): # @var Pcds: To store value for Pcds, it is a set structure as # { [(PcdCName, PcdGuidCName)] : PcdClassObject } # @var BuildOptions: To store value for BuildOptions, it is a set str= ucture as # { [BuildOptionKey] : BuildOptionValue } # -class PlatformBuildClassObject(object): +class PlatformBuildClassObject(BuildData): def __init__(self): self.MetaFile =3D '' self.PlatformName =3D '' self.Guid =3D '' self.Version =3D '' @@ -614,33 +621,5 @@ class PlatformBuildClassObject(object): self.LibraryInstances =3D [] self.LibraryClasses =3D {} self.Libraries =3D {} self.Pcds =3D {} self.BuildOptions =3D {} - - ## Convert the class to a string - # - # Convert member MetaFile of the class to a string - # - # @retval string Formatted String - # - def __str__(self): - return str(self.MetaFile) - - ## Override __eq__ function - # - # Check whether PlatformBuildClassObjects are the same - # - # @retval False The two PlatformBuildClassObjects are different - # @retval True The two PlatformBuildClassObjects are the same - # - def __eq__(self, Other): - return self.MetaFile =3D=3D Other - - ## Override __hash__ function - # - # Use MetaFile as key in hash table - # - # @retval string Key for hash table - # - def __hash__(self): - return hash(self.MetaFile) diff --git a/BaseTools/Source/Python/Workspace/DecBuildData.py b/BaseTools/= Source/Python/Workspace/DecBuildData.py index 30826a3cea..eeb7c490ac 100644 --- a/BaseTools/Source/Python/Workspace/DecBuildData.py +++ b/BaseTools/Source/Python/Workspace/DecBuildData.py @@ -19,24 +19,10 @@ from re import compile # # This class is used to retrieve information stored in database and conve= rt them # into PackageBuildClassObject form for easier use for AutoGen. # class DecBuildData(PackageBuildClassObject): - # dict used to convert PCD type in database to string used by build to= ol - _PCD_TYPE_STRING_ =3D { - MODEL_PCD_FIXED_AT_BUILD : TAB_PCDS_FIXED_AT_BUILD, - MODEL_PCD_PATCHABLE_IN_MODULE : TAB_PCDS_PATCHABLE_IN_MODULE, - MODEL_PCD_FEATURE_FLAG : TAB_PCDS_FEATURE_FLAG, - MODEL_PCD_DYNAMIC : TAB_PCDS_DYNAMIC, - MODEL_PCD_DYNAMIC_DEFAULT : TAB_PCDS_DYNAMIC, - MODEL_PCD_DYNAMIC_HII : TAB_PCDS_DYNAMIC_HII, - MODEL_PCD_DYNAMIC_VPD : TAB_PCDS_DYNAMIC_VPD, - MODEL_PCD_DYNAMIC_EX : TAB_PCDS_DYNAMIC_EX, - MODEL_PCD_DYNAMIC_EX_DEFAULT : TAB_PCDS_DYNAMIC_EX, - MODEL_PCD_DYNAMIC_EX_HII : TAB_PCDS_DYNAMIC_EX_HII, - MODEL_PCD_DYNAMIC_EX_VPD : TAB_PCDS_DYNAMIC_EX_VPD, - } =20 # dict used to convert part of [Defines] to members of DecBuildData di= rectly _PROPERTY_ =3D { # # Required Fields @@ -45,11 +31,10 @@ class DecBuildData(PackageBuildClassObject): TAB_DEC_DEFINES_PACKAGE_GUID : "_Guid", TAB_DEC_DEFINES_PACKAGE_VERSION : "_Version", TAB_DEC_DEFINES_PKG_UNI_FILE : "_PkgUniFile", } =20 - ## Constructor of DecBuildData # # Initialize object of DecBuildData # # @param FilePath The path of package description file @@ -66,10 +51,11 @@ class DecBuildData(PackageBuildClassObject): self._Bdb =3D BuildDataBase self._Arch =3D Arch self._Target =3D Target self._Toolchain =3D Toolchain self._Clear() + self.UpdatePcdTypeDict() =20 ## XXX[key] =3D value def __setitem__(self, key, value): self.__dict__[self._PROPERTY_[key]] =3D value =20 diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py b/BaseTools/= Source/Python/Workspace/DscBuildData.py index 5f07d3e75c..4d5b1ad4d9 100644 --- a/BaseTools/Source/Python/Workspace/DscBuildData.py +++ b/BaseTools/Source/Python/Workspace/DscBuildData.py @@ -177,24 +177,10 @@ def GetDependencyList(FileStack, SearchPathList): DependencyList =3D list(DependencySet) # remove duplicate ones =20 return DependencyList =20 class DscBuildData(PlatformBuildClassObject): - # dict used to convert PCD type in database to string used by build to= ol - _PCD_TYPE_STRING_ =3D { - MODEL_PCD_FIXED_AT_BUILD : TAB_PCDS_FIXED_AT_BUILD, - MODEL_PCD_PATCHABLE_IN_MODULE : TAB_PCDS_PATCHABLE_IN_MODULE, - MODEL_PCD_FEATURE_FLAG : TAB_PCDS_FEATURE_FLAG, - MODEL_PCD_DYNAMIC : TAB_PCDS_DYNAMIC, - MODEL_PCD_DYNAMIC_DEFAULT : TAB_PCDS_DYNAMIC, - MODEL_PCD_DYNAMIC_HII : TAB_PCDS_DYNAMIC_HII, - MODEL_PCD_DYNAMIC_VPD : TAB_PCDS_DYNAMIC_VPD, - MODEL_PCD_DYNAMIC_EX : TAB_PCDS_DYNAMIC_EX, - MODEL_PCD_DYNAMIC_EX_DEFAULT : TAB_PCDS_DYNAMIC_EX, - MODEL_PCD_DYNAMIC_EX_HII : TAB_PCDS_DYNAMIC_EX_HII, - MODEL_PCD_DYNAMIC_EX_VPD : TAB_PCDS_DYNAMIC_EX_VPD, - } =20 # dict used to convert part of [Defines] to members of DscBuildData di= rectly _PROPERTY_ =3D { # # Required Fields @@ -240,11 +226,11 @@ class DscBuildData(PlatformBuildClassObject): self._ToolChainFamily =3D None self._Clear() self.WorkspaceDir =3D os.getenv("WORKSPACE") if os.getenv("WORKSPA= CE") else "" self.DefaultStores =3D None self.SkuIdMgr =3D SkuClass(self.SkuName, self.SkuIds) - + self.UpdatePcdTypeDict() @property def OutputPath(self): if os.getenv("WORKSPACE"): return os.path.join(os.getenv("WORKSPACE"), self.OutputDirecto= ry, self._Target + "_" + self._Toolchain, PcdValueInitName) else: @@ -409,10 +395,13 @@ class DscBuildData(PlatformBuildClassObject): try: uuid.UUID(Record[2]) except: EdkLogger.error("build", FORMAT_INVALID, "Invalid GUID= format for VPD_TOOL_GUID", File=3Dself.MetaFile) self._VpdToolGuid =3D Record[2] + elif Name =3D=3D TAB_DSC_DEFINES_PCD_DYNAMIC_AS_DYNAMICEX: + if TAB_DSC_DEFINES_PCD_DYNAMIC_AS_DYNAMICEX not in gComman= dLineDefines: + gCommandLineDefines[TAB_DSC_DEFINES_PCD_DYNAMIC_AS_DYN= AMICEX] =3D Record[2].strip() elif Name in self: self[Name] =3D Record[2] # set _Header to non-None in order to avoid database re-querying self._Header =3D 'DUMMY' =20 diff --git a/BaseTools/Source/Python/Workspace/InfBuildData.py b/BaseTools/= Source/Python/Workspace/InfBuildData.py index 7675b0ea00..45b8ef4716 100644 --- a/BaseTools/Source/Python/Workspace/InfBuildData.py +++ b/BaseTools/Source/Python/Workspace/InfBuildData.py @@ -57,24 +57,10 @@ def _PpiValue(CName, PackageList, Inffile =3D None): # # This class is used to retrieve information stored in database and conve= rt them # into ModuleBuildClassObject form for easier use for AutoGen. # class InfBuildData(ModuleBuildClassObject): - # dict used to convert PCD type in database to string used by build to= ol - _PCD_TYPE_STRING_ =3D { - MODEL_PCD_FIXED_AT_BUILD : TAB_PCDS_FIXED_AT_BUILD, - MODEL_PCD_PATCHABLE_IN_MODULE : TAB_PCDS_PATCHABLE_IN_MODULE, - MODEL_PCD_FEATURE_FLAG : TAB_PCDS_FEATURE_FLAG, - MODEL_PCD_DYNAMIC : TAB_PCDS_DYNAMIC, - MODEL_PCD_DYNAMIC_DEFAULT : TAB_PCDS_DYNAMIC, - MODEL_PCD_DYNAMIC_HII : TAB_PCDS_DYNAMIC_HII, - MODEL_PCD_DYNAMIC_VPD : TAB_PCDS_DYNAMIC_VPD, - MODEL_PCD_DYNAMIC_EX : TAB_PCDS_DYNAMIC_EX, - MODEL_PCD_DYNAMIC_EX_DEFAULT : TAB_PCDS_DYNAMIC_EX, - MODEL_PCD_DYNAMIC_EX_HII : TAB_PCDS_DYNAMIC_EX_HII, - MODEL_PCD_DYNAMIC_EX_VPD : TAB_PCDS_DYNAMIC_EX_VPD, - } =20 # dict used to convert part of [Defines] to members of InfBuildData di= rectly _PROPERTY_ =3D { # # Required Fields @@ -152,10 +138,11 @@ class InfBuildData(ModuleBuildClassObject): self._GuidsUsedByPcd =3D OrderedDict() self._GuidComments =3D None self._PcdComments =3D None self._BuildOptions =3D None self._DependencyFileList =3D None + self.UpdatePcdTypeDict() self.LibInstances =3D [] self.ReferenceModules =3D set() =20 def SetReferenceModule(self,Module): self.ReferenceModules.add(Module) --=20 2.29.1.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#76175): https://edk2.groups.io/g/devel/message/76175 Mute This Topic: https://groups.io/mt/83387769/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-