## @file\r
# Generate AutoGen.h, AutoGen.c and *.depex files\r
#\r
-# Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>\r
# This program and the accompanying materials\r
# are licensed and made available under the terms and conditions of the BSD License\r
# which accompanies this distribution. The full text of the license may be found at\r
\r
EdkLogger.verbose("\nFLASH_DEFINITION = %s" % self.FdfFile)\r
\r
-# if Progress:\r
-# Progress.Start("\nProcessing meta-data")\r
+ if Progress:\r
+ Progress.Start("\nProcessing meta-data")\r
\r
if self.FdfFile:\r
#\r
# get the original module/package/platform objects\r
self.BuildDatabase = Workspace.BuildDatabase\r
self.DscBuildDataObj = Workspace.Platform\r
+ self._GuidDict = Workspace._GuidDict\r
\r
# flag indicating if the makefile/C-code file has been created or not\r
self.IsMakeFileCreated = False\r
VariableGuidStructure = Sku.VariableGuidValue\r
VariableGuid = GuidStructureStringToGuidString(VariableGuidStructure)\r
for StorageName in Sku.DefaultStoreDict:\r
- VariableInfo.append_variable(var_info(Index,pcdname,StorageName,SkuName, StringToArray(Sku.VariableName),VariableGuid, Sku.VariableAttribute , Sku.HiiDefaultValue,Sku.DefaultStoreDict[StorageName],Pcd.DatumType))\r
+ VariableInfo.append_variable(var_info(Index,pcdname,StorageName,SkuName, StringToArray(Sku.VariableName),VariableGuid, Sku.VariableOffset, Sku.VariableAttribute , Sku.HiiDefaultValue,Sku.DefaultStoreDict[StorageName],Pcd.DatumType))\r
Index += 1\r
return VariableInfo\r
\r
if not FoundFlag :\r
# just pick the a value to determine whether is unicode string type\r
SkuValueMap = {}\r
+ SkuObjList = DscPcdEntry.SkuInfoList.items()\r
DefaultSku = DscPcdEntry.SkuInfoList.get('DEFAULT')\r
if DefaultSku:\r
- PcdValue = DefaultSku.DefaultValue\r
- if PcdValue not in SkuValueMap:\r
- SkuValueMap[PcdValue] = []\r
- VpdFile.Add(DscPcdEntry, 'DEFAULT',Sku.VpdOffset)\r
- SkuValueMap[PcdValue].append(Sku)\r
- for (SkuName,Sku) in DscPcdEntry.SkuInfoList.items():\r
+ defaultindex = SkuObjList.index(('DEFAULT',DefaultSku))\r
+ SkuObjList[0],SkuObjList[defaultindex] = SkuObjList[defaultindex],SkuObjList[0]\r
+ for (SkuName,Sku) in SkuObjList:\r
Sku.VpdOffset = Sku.VpdOffset.strip() \r
\r
# Need to iterate DEC pcd information to get the value & datumtype\r
if FromPcd.SkuInfoList not in [None, '', []]:\r
ToPcd.SkuInfoList = FromPcd.SkuInfoList\r
# Add Flexible PCD format parse\r
- PcdValue = ToPcd.DefaultValue\r
- if PcdValue:\r
- try:\r
- ToPcd.DefaultValue = ValueExpression(PcdValue)(True)\r
- except WrnExpression, Value:\r
- ToPcd.DefaultValue = Value.result\r
- except BadExpression, Value:\r
- EdkLogger.error('Parser', FORMAT_INVALID, 'PCD [%s.%s] Value "%s", %s' %(ToPcd.TokenSpaceGuidCName, ToPcd.TokenCName, ToPcd.DefaultValue, Value),\r
- File=self.MetaFile)\r
if ToPcd.DefaultValue:\r
- _GuidDict = {}\r
- for Pkg in self.PackageList:\r
- Guids = Pkg.Guids\r
- _GuidDict.update(Guids)\r
try:\r
- ToPcd.DefaultValue = ValueExpressionEx(ToPcd.DefaultValue, ToPcd.DatumType, _GuidDict)(True)\r
+ ToPcd.DefaultValue = ValueExpressionEx(ToPcd.DefaultValue, ToPcd.DatumType, self._GuidDict)(True)\r
except BadExpression, Value:\r
EdkLogger.error('Parser', FORMAT_INVALID, 'PCD [%s.%s] Value "%s", %s' %(ToPcd.TokenSpaceGuidCName, ToPcd.TokenCName, ToPcd.DefaultValue, Value),\r
File=self.MetaFile)\r
File = Item.Target.Path.replace('\\', '/').strip('/').replace(DebugDir, '').strip('/')\r
if File not in self.OutputFile:\r
self.OutputFile.append(File)\r
+ if os.path.isabs(File):\r
+ File = File.replace('\\', '/').strip('/').replace(OutputDir, '').strip('/')\r
if Item.Target.Ext.lower() == '.aml':\r
AsBuiltInfDict['binary_item'] += ['ASL|' + File]\r
elif Item.Target.Ext.lower() == '.acpi':\r