]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
BaseTools: rename ReadMe.txt to ReadMe.rst
[mirror_edk2.git] / BaseTools / Source / Python / GenFds / GenFdsGlobalVariable.py
index 037828ea1cca241729da1b05e691b7d062343ac6..dc1727c4666db66e9621f311f96dab4c7b1a8e19 100644 (file)
@@ -13,6 +13,7 @@ from __future__ import print_function
 from __future__ import absolute_import\r
 \r
 import Common.LongFilePathOs as os\r
+import sys\r
 from sys import stdout\r
 from subprocess import PIPE,Popen\r
 from struct import Struct\r
@@ -22,9 +23,9 @@ from Common.BuildToolError import COMMAND_FAILURE,GENFDS_ERROR
 from Common import EdkLogger\r
 from Common.Misc import SaveFileOnChange\r
 \r
-from Common.TargetTxtClassObject import TargetTxt\r
-from Common.ToolDefClassObject import ToolDef\r
-from AutoGen.BuildEngine import BuildRuleObj\r
+from Common.TargetTxtClassObject import TargetTxtDict\r
+from Common.ToolDefClassObject import ToolDefDict\r
+from AutoGen.BuildEngine import ToolBuildRule\r
 import Common.DataType as DataType\r
 from Common.Misc import PathClass\r
 from Common.LongFilePathSupport import OpenLongFilePath as open\r
@@ -69,7 +70,7 @@ class GenFdsGlobalVariable:
     SecCmdList = []\r
     CopyList   = []\r
     ModuleFile = ''\r
-    EnableGenfdsMultiThread = False\r
+    EnableGenfdsMultiThread = True\r
 \r
     #\r
     # The list whose element are flags to indicate if large FFS or SECTION files exist in FV.\r
@@ -95,12 +96,15 @@ class GenFdsGlobalVariable:
     def _LoadBuildRule():\r
         if GenFdsGlobalVariable.__BuildRuleDatabase:\r
             return GenFdsGlobalVariable.__BuildRuleDatabase\r
-        GenFdsGlobalVariable.__BuildRuleDatabase = BuildRuleObj\r
-        ToolDefinitionFile = TargetTxt.TargetTxtDictionary[DataType.TAB_TAT_DEFINES_TOOL_CHAIN_CONF]\r
+        BuildRule = ToolBuildRule()\r
+        GenFdsGlobalVariable.__BuildRuleDatabase = BuildRule.ToolBuildRule\r
+        TargetObj = TargetTxtDict()\r
+        ToolDefinitionFile = TargetObj.Target.TargetTxtDictionary[DataType.TAB_TAT_DEFINES_TOOL_CHAIN_CONF]\r
         if ToolDefinitionFile == '':\r
             ToolDefinitionFile = "Conf/tools_def.txt"\r
         if os.path.isfile(ToolDefinitionFile):\r
-            ToolDefinition = ToolDef.ToolsDefTxtDatabase\r
+            ToolDefObj = ToolDefDict((os.path.join(os.getenv("WORKSPACE"), "Conf")))\r
+            ToolDefinition = ToolDefObj.ToolDef.ToolsDefTxtDatabase\r
             if DataType.TAB_TOD_DEFINES_BUILDRULEFAMILY in ToolDefinition \\r
                and GenFdsGlobalVariable.ToolChainTag in ToolDefinition[DataType.TAB_TOD_DEFINES_BUILDRULEFAMILY] \\r
                and ToolDefinition[DataType.TAB_TOD_DEFINES_BUILDRULEFAMILY][GenFdsGlobalVariable.ToolChainTag]:\r
@@ -160,7 +164,7 @@ class GenFdsGlobalVariable:
         "OUTPUT_DIR":os.path.join(BuildDir, "OUTPUT"),\r
         "DEBUG_DIR":os.path.join(BuildDir, "DEBUG")\r
         }\r
-        \r
+\r
         BuildRules = {}\r
         for Type in BuildRuleDatabase.FileTypeList:\r
             #first try getting build rule by BuildRuleFamily\r
@@ -486,10 +490,10 @@ class GenFdsGlobalVariable:
 \r
             SaveFileOnChange(CommandFile, ' '.join(Cmd), False)\r
             if IsMakefile:\r
-                if GlobalData.gGlobalDefines.get("FAMILY") == "MSFT":\r
+                if sys.platform == "win32":\r
                     Cmd = ['if', 'exist', Input[0]] + Cmd\r
                 else:\r
-                    Cmd = ['test', '-e', Input[0], "&&"] + Cmd\r
+                    Cmd = ['-test', '-e', Input[0], "&&"] + Cmd\r
                 if ' '.join(Cmd).strip() not in GenFdsGlobalVariable.SecCmdList:\r
                     GenFdsGlobalVariable.SecCmdList.append(' '.join(Cmd).strip())\r
             elif GenFdsGlobalVariable.NeedsUpdate(Output, list(Input) + [CommandFile]):\r
@@ -742,7 +746,7 @@ class GenFdsGlobalVariable:
     #   @param  MacroDict     Dictionary that contains macro value pair\r
     #\r
     @staticmethod\r
-    def MacroExtend (Str, MacroDict={}, Arch=DataType.TAB_COMMON):\r
+    def MacroExtend (Str, MacroDict=None, Arch=DataType.TAB_COMMON):\r
         if Str is None:\r
             return None\r
 \r
@@ -829,6 +833,8 @@ class GenFdsGlobalVariable:
 #  @param  NameGuid         The Guid name\r
 #\r
 def FindExtendTool(KeyStringList, CurrentArchList, NameGuid):\r
+    ToolDefObj = ToolDefDict((os.path.join(os.getenv("WORKSPACE"), "Conf")))\r
+    ToolDef = ToolDefObj.ToolDef\r
     ToolDb = ToolDef.ToolsDefTxtDatabase\r
     # if user not specify filter, try to deduce it from global data.\r
     if KeyStringList is None or KeyStringList == []:\r