+ @property\r
+ def GenFdsCommandDict(self):\r
+ FdsCommandDict = {}\r
+ LogLevel = EdkLogger.GetLevel()\r
+ if LogLevel == EdkLogger.VERBOSE:\r
+ FdsCommandDict["verbose"] = True\r
+ elif LogLevel <= EdkLogger.DEBUG_9:\r
+ FdsCommandDict["debug"] = LogLevel - 1\r
+ elif LogLevel == EdkLogger.QUIET:\r
+ FdsCommandDict["quiet"] = True\r
+\r
+ if GlobalData.gEnableGenfdsMultiThread:\r
+ FdsCommandDict["GenfdsMultiThread"] = True\r
+ if GlobalData.gIgnoreSource:\r
+ FdsCommandDict["IgnoreSources"] = True\r
+\r
+ FdsCommandDict["OptionPcd"] = []\r
+ for pcd in GlobalData.BuildOptionPcd:\r
+ if pcd[2]:\r
+ pcdname = '.'.join(pcd[0:3])\r
+ else:\r
+ pcdname = '.'.join(pcd[0:2])\r
+ if pcd[3].startswith('{'):\r
+ FdsCommandDict["OptionPcd"].append(pcdname + '=' + 'H' + '"' + pcd[3] + '"')\r
+ else:\r
+ FdsCommandDict["OptionPcd"].append(pcdname + '=' + pcd[3])\r
+\r
+ MacroList = []\r
+ # macros passed to GenFds\r
+ MacroDict = {}\r
+ MacroDict.update(GlobalData.gGlobalDefines)\r
+ MacroDict.update(GlobalData.gCommandLineDefines)\r
+ for MacroName in MacroDict:\r
+ if MacroDict[MacroName] != "":\r
+ MacroList.append('"%s=%s"' % (MacroName, MacroDict[MacroName].replace('\\', '\\\\')))\r
+ else:\r
+ MacroList.append('"%s"' % MacroName)\r
+ FdsCommandDict["macro"] = MacroList\r
+\r
+ FdsCommandDict["fdf_file"] = [self.FdfFile]\r
+ FdsCommandDict["build_target"] = self.BuildTarget\r
+ FdsCommandDict["toolchain_tag"] = self.ToolChain\r
+ FdsCommandDict["active_platform"] = str(self)\r
+\r
+ FdsCommandDict["conf_directory"] = GlobalData.gConfDirectory\r
+ FdsCommandDict["build_architecture_list"] = ','.join(self.ArchList)\r
+ FdsCommandDict["platform_build_directory"] = self.BuildDir\r
+\r
+ FdsCommandDict["fd"] = self.FdTargetList\r
+ FdsCommandDict["fv"] = self.FvTargetList\r
+ FdsCommandDict["cap"] = self.CapTargetList\r
+ return FdsCommandDict\r
+\r