import subprocess\r
from Common.Misc import SaveFileOnChange\r
from Workspace.BuildClassObject import PlatformBuildClassObject, StructurePcd, PcdClassObject, ModuleBuildClassObject\r
-from collections import OrderedDict\r
+from collections import OrderedDict,defaultdict\r
\r
PcdValueInitName = 'PcdValueInit'\r
\r
options[Key] += ' ' + Option\r
return self._ModuleTypeOptions[Edk, ModuleType]\r
\r
- def GetStructurePcdInfo(self, PcdSet):\r
- structure_pcd_data = {}\r
+ @staticmethod\r
+ def GetStructurePcdInfo(PcdSet):\r
+ structure_pcd_data = defaultdict(list)\r
for item in PcdSet:\r
- if (item[0],item[1]) not in structure_pcd_data:\r
- structure_pcd_data[(item[0],item[1])] = []\r
structure_pcd_data[(item[0],item[1])].append(item)\r
\r
return structure_pcd_data\r
S_PcdSet.append([ TokenSpaceGuid.split(".")[0],TokenSpaceGuid.split(".")[1], PcdCName,SkuName, default_store,Dummy5, AnalyzePcdExpression(Setting)[0]])\r
\r
# handle pcd value override\r
- StrPcdSet = self.GetStructurePcdInfo(S_PcdSet)\r
+ StrPcdSet = DscBuildData.GetStructurePcdInfo(S_PcdSet)\r
S_pcd_set = OrderedDict()\r
for str_pcd in StrPcdSet:\r
str_pcd_obj = Pcds.get((str_pcd[1], str_pcd[0]), None)\r