]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/AutoGen/GenC.py
BaseTool: Fixed the issue of empty PcdDB.
[mirror_edk2.git] / BaseTools / Source / Python / AutoGen / GenC.py
index 2bc4fbdb6e4047524ea66c540c0f347bec20f273..481c4dda1447d15a355b889beeebb35947ab4eca 100644 (file)
@@ -916,11 +916,8 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
     PatchPcdSizeVariableName = '_gPcd_BinaryPatch_Size_' + TokenCName\r
     FixPcdSizeTokenName = '_PCD_SIZE_' + TokenCName\r
 \r
-    if GlobalData.BuildOptionPcd:\r
-        for PcdItem in GlobalData.BuildOptionPcd:\r
-            if (Pcd.TokenSpaceGuidCName, TokenCName) == (PcdItem[0], PcdItem[1]):\r
-                Pcd.DefaultValue = PcdItem[2]\r
-                break\r
+    if Pcd.PcdValueFromComm:\r
+        Pcd.DefaultValue = Pcd.PcdValueFromComm\r
     \r
     if Pcd.Type in gDynamicExPcd:\r
         TokenNumber = int(Pcd.TokenValue, 0)\r
@@ -1033,6 +1030,8 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
 \r
         if Pcd.DatumType in ['UINT64', 'UINT32', 'UINT16', 'UINT8']:\r
             try:\r
+                if Value.upper().endswith('L'):\r
+                    Value = Value[:-1]\r
                 if Value.upper().startswith('0X'):\r
                     ValueNumber = int (Value, 16)\r
                 else:\r
@@ -1213,12 +1212,8 @@ def CreateLibraryPcdCode(Info, AutoGenC, AutoGenH, Pcd):
     PatchPcdSizeTokenName = '_PCD_PATCHABLE_' + TokenCName +'_SIZE'\r
     PatchPcdSizeVariableName = '_gPcd_BinaryPatch_Size_' + TokenCName\r
 \r
-    if GlobalData.BuildOptionPcd:\r
-        for PcdItem in GlobalData.BuildOptionPcd:\r
-            if (Pcd.TokenSpaceGuidCName, TokenCName) == (PcdItem[0], PcdItem[1]):\r
-                Pcd.DefaultValue = PcdItem[2]\r
-                break\r
-\r
+    if Pcd.PcdValueFromComm:\r
+        Pcd.DefaultValue = Pcd.PcdValueFromComm\r
     #\r
     # Write PCDs\r
     #\r
@@ -1677,6 +1672,9 @@ def CreatePcdCode(Info, AutoGenC, AutoGenH):
         if Pcd.Type in gDynamicExPcd and Pcd.TokenSpaceGuidCName not in TokenSpaceList:\r
             TokenSpaceList += [Pcd.TokenSpaceGuidCName]\r
             \r
+    SkuMgr = Info.Workspace.Platform.SkuIdMgr\r
+    AutoGenH.Append("\n// Definition of SkuId Array\n")\r
+    AutoGenH.Append("extern UINT64 _gPcd_SkuId_Array[];\n")\r
     # Add extern declarations to AutoGen.h if one or more Token Space GUIDs were found\r
     if TokenSpaceList <> []:            \r
         AutoGenH.Append("\n// Definition of PCD Token Space GUIDs used in this module\n\n")\r
@@ -1694,6 +1692,8 @@ def CreatePcdCode(Info, AutoGenC, AutoGenH):
             CreateLibraryPcdCode(Info, AutoGenC, AutoGenH, Pcd)\r
         DynExPcdTokenNumberMapping (Info, AutoGenH)\r
     else:\r
+        AutoGenC.Append("\n// Definition of SkuId Array\n")\r
+        AutoGenC.Append("GLOBAL_REMOVE_IF_UNREFERENCED UINT64 _gPcd_SkuId_Array[] = %s;\n" % SkuMgr.DumpSkuIdArrary())\r
         if Info.ModulePcdList:\r
             AutoGenH.Append("\n// Definition of PCDs used in this module\n")\r
             AutoGenC.Append("\n// Definition of PCDs used in this module\n")\r