GlobalData.gModuleHashFile = dict()\r
GlobalData.gFileHashDict = dict()\r
GlobalData.gEnableGenfdsMultiThread = self.data_pipe.Get("EnableGenfdsMultiThread")\r
+ GlobalData.gPlatformFinalPcds = self.data_pipe.Get("gPlatformFinalPcds")\r
GlobalData.file_lock = self.file_lock\r
CommandTarget = self.data_pipe.Get("CommandTarget")\r
pcd_from_build_option = []\r
if (TokenSpaceGuid + '.' + PcdCName) in GlobalData.gPlatformPcds:\r
if GlobalData.gPlatformPcds[TokenSpaceGuid + '.' + PcdCName] != ValueList[Index]:\r
GlobalData.gPlatformPcds[TokenSpaceGuid + '.' + PcdCName] = ValueList[Index]\r
+ GlobalData.gPlatformFinalPcds[TokenSpaceGuid + '.' + PcdCName] = ValueList[Index]\r
return ValueList\r
\r
def _FilterPcdBySkuUsage(self, Pcds):\r
return True\r
return False\r
def CheckFeatureFlagPcd(self,Instance):\r
- Pcds = {}\r
- if GlobalData.gPlatformFinalPcds.get(self.Arch):\r
- Pcds = GlobalData.gPlatformFinalPcds[self.Arch].copy()\r
+ Pcds = GlobalData.gPlatformFinalPcds.copy()\r
if PcdPattern.search(Instance):\r
PcdTuple = tuple(Instance.split('.')[::-1])\r
if PcdTuple in self.Pcds:\r
- if not (self.Pcds[PcdTuple].Type == 'FeatureFlag' or self.Pcds[PcdTuple].Type == 'FixedAtBuild') and Instance not in Pcds:\r
+ if not (self.Pcds[PcdTuple].Type == 'FeatureFlag' or self.Pcds[PcdTuple].Type == 'FixedAtBuild'):\r
EdkLogger.error('build', FORMAT_INVALID,\r
- "\nit must be defined in a [PcdsFeatureFlag] or [PcdsFixedAtBuild] section of Dsc or Dec file or [FeaturePcd] or [FixedPcd] of Inf file",\r
+ "\nFeatureFlagPcd must be defined in a [PcdsFeatureFlag] or [PcdsFixedAtBuild] section of Dsc or Dec file",\r
File=str(self), ExtraData=Instance)\r
- Pcds[Instance] = self.Pcds[PcdTuple].DefaultValue\r
+ if not Instance in Pcds:\r
+ Pcds[Instance] = self.Pcds[PcdTuple].DefaultValue\r
+ else: #if PcdTuple not in self.Pcds:\r
+ EdkLogger.error('build', FORMAT_INVALID,\r
+ "\nFeatureFlagPcd must be defined in [FeaturePcd] or [FixedPcd] of Inf file",\r
+ File=str(self), ExtraData=Instance)\r
if Instance in Pcds:\r
if Pcds[Instance] == '0':\r
return False\r
break\r
if (PcdCName, PcdTokenName) not in DecPcds:\r
DecPcds[PcdCName, PcdTokenName] = Pkg.Pcds[Pcd]\r
- if not GlobalData.gPlatformFinalPcds.get(Arch):\r
- GlobalData.gPlatformFinalPcds[Arch] = OrderedDict()\r
- for Name,Guid in DecPcds:\r
- if DecPcds[Name,Guid].Type == 'FeatureFlag' or DecPcds[Name, Guid].Type == 'FixedAtBuild':\r
- GlobalData.gPlatformFinalPcds[Arch]['%s.%s'%(Guid, Name)]=DecPcds[Name, Guid].DefaultValue\r
return DecPcds, GuidDict\r
\r
## Get all dependent libraries for a module\r