]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/AutoGen/AutoGen.py
Sync EDKII BaseTools to BaseTools project r2065.
[mirror_edk2.git] / BaseTools / Source / Python / AutoGen / AutoGen.py
index d95f40bf82ae52c4c5820617289fe8f956e134a2..aaba768b4a84867be9d545296f52a978855c7173 100644 (file)
@@ -162,6 +162,10 @@ class WorkspaceAutoGen(AutoGen):
 \r
         # parse FDF file to get PCDs in it, if any\r
         if self.FdfFile != None and self.FdfFile != '':\r
+            #\r
+            # Make global macros available when parsing FDF file\r
+            #\r
+            InputMacroDict.update(self.BuildDatabase.WorkspaceDb._GlobalMacros)\r
             Fdf = FdfParser(self.FdfFile.Path)\r
             Fdf.ParseFile()\r
             PcdSet = Fdf.Profile.PcdDict\r
@@ -544,9 +548,18 @@ class PlatformAutoGen(AutoGen):
                                     DecPcdEntry = eachDec.Pcds[DecPcd]\r
                                     if (DecPcdEntry.TokenSpaceGuidCName == DscPcdEntry.TokenSpaceGuidCName) and \\r
                                        (DecPcdEntry.TokenCName == DscPcdEntry.TokenCName):\r
+                                        # Print warning message to let the developer make a determine.\r
+                                        EdkLogger.warn("build", "Unreferenced vpd pcd used!",\r
+                                                        File=self.MetaFile, \\r
+                                                        ExtraData = "PCD: %s.%s used in the DSC file %s is unreferenced." \\r
+                                                        %(DscPcdEntry.TokenSpaceGuidCName, DscPcdEntry.TokenCName, self.Platform.MetaFile.Path))  \r
+                                                                              \r
                                         DscPcdEntry.DatumType    = DecPcdEntry.DatumType\r
                                         DscPcdEntry.DefaultValue = DecPcdEntry.DefaultValue\r
-                                        Sku.DefaultValue         = DecPcdEntry.DefaultValue                                                                    \r
+                                        # Only fix the value while no value provided in DSC file.\r
+                                        if (Sku.DefaultValue == "" or Sku.DefaultValue==None):\r
+                                            DscPcdEntry.SkuInfoList[DscPcdEntry.SkuInfoList.keys()[0]].DefaultValue = DecPcdEntry.DefaultValue\r
+                                                                                                                \r
                                                        \r
                             VpdFile.Add(DscPcdEntry, Sku.VpdOffset)\r
                             # if the offset of a VPD is *, then it need to be fixed up by third party tool.\r
@@ -569,11 +582,9 @@ class PlatformAutoGen(AutoGen):
                     except:\r
                         EdkLogger.error("build", FILE_WRITE_FAILURE, "Fail to create FV folder under %s" % self.BuildDir)\r
                         \r
-                VpdFileName = self.Platform.VpdFileName           \r
-                if VpdFileName == None or VpdFileName == "" :\r
-                    VpdFilePath = os.path.join(FvPath, "%s.txt" % self.Platform.VpdToolGuid)\r
-                else :\r
-                    VpdFilePath = os.path.join(FvPath, "%s.txt" % VpdFileName)  \r
+        \r
+                VpdFilePath = os.path.join(FvPath, "%s.txt" % self.Platform.VpdToolGuid)\r
+\r
                 \r
                 if not os.path.exists(VpdFilePath) or os.path.getmtime(VpdFilePath) < DscTimeStamp:\r
                     VpdFile.Write(VpdFilePath)\r
@@ -588,16 +599,13 @@ class PlatformAutoGen(AutoGen):
                             break\r
                     # Call third party GUID BPDG tool.\r
                     if BPDGToolName != None:\r
-                        VpdInfoFile.CallExtenalBPDGTool(BPDGToolName, VpdFilePath, VpdFileName)\r
+                        VpdInfoFile.CallExtenalBPDGTool(BPDGToolName, VpdFilePath)\r
                     else:\r
                         EdkLogger.error("Build", FILE_NOT_FOUND, "Fail to find third-party BPDG tool to process VPD PCDs. BPDG Guid tool need to be defined in tools_def.txt and VPD_TOOL_GUID need to be provided in DSC file.")\r
                         \r
                 # Process VPD map file generated by third party BPDG tool\r
                 if NeedProcessVpdMapFile:\r
-                    if VpdFileName == None or VpdFileName == "" :\r
-                        VpdMapFilePath = os.path.join(self.BuildDir, "FV", "%s.map" % self.Platform.VpdToolGuid)\r
-                    else :\r
-                        VpdMapFilePath = os.path.join(self.BuildDir, "FV", "%s.map" % VpdFileName)\r
+                    VpdMapFilePath = os.path.join(self.BuildDir, "FV", "%s.map" % self.Platform.VpdToolGuid)\r
                     if os.path.exists(VpdMapFilePath):\r
                         VpdFile.Read(VpdMapFilePath)\r
                 \r
@@ -1709,12 +1717,12 @@ class ModuleAutoGen(AutoGen):
             self._SourceFileList = []\r
             for F in self.Module.Sources:\r
                 # match tool chain\r
-                if F.TagName != "" and F.TagName != self.ToolChain:\r
+                if F.TagName not in ("", "*", self.ToolChain):\r
                     EdkLogger.debug(EdkLogger.DEBUG_9, "The toolchain [%s] for processing file [%s] is found, "\r
                                     "but [%s] is needed" % (F.TagName, str(F), self.ToolChain))\r
                     continue\r
                 # match tool chain family\r
-                if F.ToolChainFamily != "" and F.ToolChainFamily != self.ToolChainFamily:\r
+                if F.ToolChainFamily not in ("", "*", self.ToolChainFamily):\r
                     EdkLogger.debug(\r
                                 EdkLogger.DEBUG_0,\r
                                 "The file [%s] must be built by tools of [%s], " \\r
@@ -2128,14 +2136,6 @@ class ModuleAutoGen(AutoGen):
                         self._ApplyBuildRule(Lib.Target, TAB_UNKNOWN_FILE)\r
         return self._LibraryAutoGenList\r
 \r
-    ## Return build command string\r
-    #\r
-    #   @retval     string  Build command string\r
-    #\r
-    def _GetBuildCommand(self):\r
-        return self.PlatformInfo.BuildCommand\r
-\r
-\r
     Module          = property(_GetModule)\r
     Name            = property(_GetBaseName)\r
     Guid            = property(_GetGuid)\r