]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/AutoGen/GenMake.py
BaseTools: Fix flexible PCD single quote and double quote bugs
[mirror_edk2.git] / BaseTools / Source / Python / AutoGen / GenMake.py
index afe6f2f99c47bee78e8bc76e426c4d5b98f551cd..4b924d21e099b0bee55554cd8a8194a95b12c3e6 100644 (file)
@@ -1555,13 +1555,19 @@ class TopLevelMakefile(BuildFile):
             for index, option in enumerate(GlobalData.gCommand):\r
                 if "--pcd" == option and GlobalData.gCommand[index+1]:\r
                     pcdName, pcdValue = GlobalData.gCommand[index+1].split('=')\r
-                    if pcdValue.startswith('H'):\r
-                        pcdValue = 'H' + '"' + pcdValue[1:] + '"'\r
-                        ExtraOption += " --pcd " + pcdName + '=' + pcdValue\r
-                    elif pcdValue.startswith("L'"):\r
-                        ExtraOption += "--pcd " + pcdName + '=' + pcdValue\r
-                    elif pcdValue.startswith('L'):\r
-                        pcdValue = 'L' + '"' + pcdValue[1:] + '"'\r
+                    for Item in GlobalData.BuildOptionPcd:\r
+                        if '.'.join(Item[0:2]) == pcdName:\r
+                            pcdValue = Item[2]\r
+                            if pcdValue.startswith('L') or pcdValue.startswith('"'):\r
+                                pcdValue, Size = ParseFieldValue(pcdValue)\r
+                                NewVal = '{'\r
+                                for S in range(Size):\r
+                                    NewVal = NewVal + '0x%02X' % ((pcdValue >> S * 8) & 0xff)\r
+                                    NewVal += ','\r
+                                pcdValue =  NewVal[:-1] + '}'\r
+                            break\r
+                    if pcdValue.startswith('{'):\r
+                        pcdValue = 'H' + '"' + pcdValue + '"'\r
                         ExtraOption += " --pcd " + pcdName + '=' + pcdValue\r
                     else:\r
                         ExtraOption += " --pcd " + GlobalData.gCommand[index+1]\r