# This interface should be invoked explicitly when platform action is created.\r
#\r
def CollectPlatformDynamicPcds(self):\r
- # Override the platform Pcd's value by build option\r
- if GlobalData.BuildOptionPcd:\r
- for PcdItem in GlobalData.BuildOptionPcd:\r
- PlatformPcd = self.Platform.Pcds.get((PcdItem[1],PcdItem[0]))\r
- if PlatformPcd:\r
- if PlatformPcd.DatumType in [TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64,'BOOLEAN']:\r
- for sku in PlatformPcd.SkuInfoList:\r
- PlatformPcd.SkuInfoList[sku].DefaultValue = PcdItem[2]\r
- else:\r
- PcdDefaultValue = StringToArray(PcdItem[2])\r
- for sku in PlatformPcd.SkuInfoList:\r
- skuinfo = PlatformPcd.SkuInfoList[sku]\r
- if skuinfo.VariableGuid:\r
- skuinfo.HiiDefaultValue = PcdDefaultValue\r
- else:\r
- skuinfo.DefaultValue = PcdDefaultValue\r
- PlatformPcd.DefaultValue = PcdDefaultValue\r
- if PlatformPcd.MaxDatumSize:\r
- PlatformPcd.MaxDatumSize = str(max([int(PlatformPcd.MaxDatumSize),len(PcdDefaultValue.split(","))]))\r
- else:\r
- PlatformPcd.MaxDatumSize = str(len(PcdDefaultValue.split(",")))\r
\r
for key in self.Platform.Pcds:\r
for SinglePcd in GlobalData.MixedPcd:\r
TokenCName = PcdItem[0]\r
break\r
if FromPcd != None:\r
- if GlobalData.BuildOptionPcd:\r
- for pcd in GlobalData.BuildOptionPcd:\r
- if (FromPcd.TokenSpaceGuidCName, FromPcd.TokenCName) == (pcd[0], pcd[1]):\r
- FromPcd.DefaultValue = pcd[2]\r
- break\r
if ToPcd.Pending and FromPcd.Type not in [None, '']:\r
ToPcd.Type = FromPcd.Type\r
elif (ToPcd.Type not in [None, '']) and (FromPcd.Type not in [None, ''])\\r
OutputDir = self.OutputDir.replace('\\', '/').strip('/')\r
DebugDir = self.DebugDir.replace('\\', '/').strip('/')\r
for Item in self.CodaTargetList:\r
- File = Item.Target.Path.replace('\\', '/').strip('/').replace(DebugDir, '').strip('/')\r
+ File = Item.Target.Path.replace('\\', '/').strip('/').replace(DebugDir, '').replace(OutputDir, '').strip('/')\r
if File not in self.OutputFile:\r
self.OutputFile.append(File)\r
if os.path.isabs(File):\r