]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Workspace/InfBuildData.py
BaseTools: Clean up not used code in BuildClassObject
[mirror_edk2.git] / BaseTools / Source / Python / Workspace / InfBuildData.py
index 602746de32f7d15ac59525a8ee3c97d44689782b..29e68aeb3bf38c67645a35e286c76c82ed19d302 100644 (file)
 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 #\r
 \r
-from Common.String import *\r
+from __future__ import absolute_import\r
+from Common.StringUtils import *\r
 from Common.DataType import *\r
 from Common.Misc import *\r
 from types import *\r
-from MetaFileParser import *\r
+from .MetaFileParser import *\r
 from collections import OrderedDict\r
 \r
 from Workspace.BuildClassObject import ModuleBuildClassObject, LibraryClassObject, PcdClassObject\r
@@ -698,7 +699,7 @@ class InfBuildData(ModuleBuildClassObject):
                 CName = Record[0]\r
                 Value = ProtocolValue(CName, self.Packages, self.MetaFile.Path)\r
                 if Value is None:\r
-                    PackageList = "\n\t".join([str(P) for P in self.Packages])\r
+                    PackageList = "\n\t".join(str(P) for P in self.Packages)\r
                     EdkLogger.error('build', RESOURCE_NOT_AVAILABLE,\r
                                     "Value of Protocol [%s] is not found under [Protocols] section in" % CName,\r
                                     ExtraData=PackageList, File=self.MetaFile, Line=Record[-1])\r
@@ -723,7 +724,7 @@ class InfBuildData(ModuleBuildClassObject):
                 CName = Record[0]\r
                 Value = PpiValue(CName, self.Packages, self.MetaFile.Path)\r
                 if Value is None:\r
-                    PackageList = "\n\t".join([str(P) for P in self.Packages])\r
+                    PackageList = "\n\t".join(str(P) for P in self.Packages)\r
                     EdkLogger.error('build', RESOURCE_NOT_AVAILABLE,\r
                                     "Value of PPI [%s] is not found under [Ppis] section in " % CName,\r
                                     ExtraData=PackageList, File=self.MetaFile, Line=Record[-1])\r
@@ -748,7 +749,7 @@ class InfBuildData(ModuleBuildClassObject):
                 CName = Record[0]\r
                 Value = GuidValue(CName, self.Packages, self.MetaFile.Path)\r
                 if Value is None:\r
-                    PackageList = "\n\t".join([str(P) for P in self.Packages])\r
+                    PackageList = "\n\t".join(str(P) for P in self.Packages)\r
                     EdkLogger.error('build', RESOURCE_NOT_AVAILABLE,\r
                                     "Value of Guid [%s] is not found under [Guids] section in" % CName,\r
                                     ExtraData=PackageList, File=self.MetaFile, Line=Record[-1])\r
@@ -911,14 +912,24 @@ class InfBuildData(ModuleBuildClassObject):
                                             ExtraData=Token, File=self.MetaFile, Line=Record[-1])\r
                         DepexList.append(Module.Guid)\r
                     else:\r
-                        # get the GUID value now\r
-                        Value = ProtocolValue(Token, self.Packages, self.MetaFile.Path)\r
-                        if Value is None:\r
-                            Value = PpiValue(Token, self.Packages, self.MetaFile.Path)\r
+                        # it use the Fixed PCD format\r
+                        if '.' in Token:\r
+                            if tuple(Token.split('.')[::-1]) not in self.Pcds:\r
+                                EdkLogger.error('build', RESOURCE_NOT_AVAILABLE, "PCD [{}] used in [Depex] section should be listed in module PCD section".format(Token), File=self.MetaFile, Line=Record[-1])\r
+                            else:\r
+                                if self.Pcds[tuple(Token.split('.')[::-1])].DatumType != TAB_VOID:\r
+                                    EdkLogger.error('build', FORMAT_INVALID, "PCD [{}] used in [Depex] section should be VOID* datum type".format(Token), File=self.MetaFile, Line=Record[-1])\r
+                            Value = Token\r
+                        else:\r
+                            # get the GUID value now\r
+                            Value = ProtocolValue(Token, self.Packages, self.MetaFile.Path)\r
                             if Value is None:\r
-                                Value = GuidValue(Token, self.Packages, self.MetaFile.Path)\r
+                                Value = PpiValue(Token, self.Packages, self.MetaFile.Path)\r
+                                if Value is None:\r
+                                    Value = GuidValue(Token, self.Packages, self.MetaFile.Path)\r
+\r
                         if Value is None:\r
-                            PackageList = "\n\t".join([str(P) for P in self.Packages])\r
+                            PackageList = "\n\t".join(str(P) for P in self.Packages)\r
                             EdkLogger.error('build', RESOURCE_NOT_AVAILABLE,\r
                                             "Value of [%s] is not found in" % Token,\r
                                             ExtraData=PackageList, File=self.MetaFile, Line=Record[-1])\r
@@ -961,7 +972,7 @@ class InfBuildData(ModuleBuildClassObject):
             if TokenSpaceGuid not in self.Guids:\r
                 Value = GuidValue(TokenSpaceGuid, self.Packages, self.MetaFile.Path)\r
                 if Value is None:\r
-                    PackageList = "\n\t".join([str(P) for P in self.Packages])\r
+                    PackageList = "\n\t".join(str(P) for P in self.Packages)\r
                     EdkLogger.error('build', RESOURCE_NOT_AVAILABLE,\r
                                     "Value of Guid [%s] is not found under [Guids] section in" % TokenSpaceGuid,\r
                                     ExtraData=PackageList, File=self.MetaFile, Line=LineNo)\r
@@ -1121,7 +1132,7 @@ class InfBuildData(ModuleBuildClassObject):
                     else:\r
                         try:\r
                             Pcd.DefaultValue = ValueExpressionEx(Pcd.DefaultValue, Pcd.DatumType, _GuidDict)(True)\r
-                        except BadExpression, Value:\r
+                        except BadExpression as Value:\r
                             EdkLogger.error('Parser', FORMAT_INVALID, 'PCD [%s.%s] Value "%s", %s' %(TokenSpaceGuid, PcdRealName, Pcd.DefaultValue, Value),\r
                                             File=self.MetaFile, Line=LineNo)\r
                     break\r
@@ -1131,7 +1142,7 @@ class InfBuildData(ModuleBuildClassObject):
                             FORMAT_INVALID,\r
                             "PCD [%s.%s] in [%s] is not found in dependent packages:" % (TokenSpaceGuid, PcdRealName, self.MetaFile),\r
                             File=self.MetaFile, Line=LineNo,\r
-                            ExtraData="\t%s" % '\n\t'.join([str(P) for P in self.Packages])\r
+                            ExtraData="\t%s" % '\n\t'.join(str(P) for P in self.Packages)\r
                             )\r
             Pcds[PcdCName, TokenSpaceGuid] = Pcd\r
 \r