]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
BaseTools: Singleton the object to handle build conf file
[mirror_edk2.git] / BaseTools / Source / Python / GenFds / GenFdsGlobalVariable.py
index f43743dff4d1cbac7bebda1b91fd171833d993db..037828ea1cca241729da1b05e691b7d062343ac6 100644 (file)
@@ -22,9 +22,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 TargetTxtClassObject\r
-from Common.ToolDefClassObject import ToolDefClassObject, ToolDefDict\r
-from AutoGen.BuildEngine import BuildRule\r
+from Common.TargetTxtClassObject import TargetTxt\r
+from Common.ToolDefClassObject import ToolDef\r
+from AutoGen.BuildEngine import BuildRuleObj\r
 import Common.DataType as DataType\r
 from Common.Misc import PathClass\r
 from Common.LongFilePathSupport import OpenLongFilePath as open\r
@@ -95,31 +95,21 @@ class GenFdsGlobalVariable:
     def _LoadBuildRule():\r
         if GenFdsGlobalVariable.__BuildRuleDatabase:\r
             return GenFdsGlobalVariable.__BuildRuleDatabase\r
-        BuildConfigurationFile = os.path.normpath(os.path.join(GenFdsGlobalVariable.ConfDir, "target.txt"))\r
-        TargetTxt = TargetTxtClassObject()\r
-        if os.path.isfile(BuildConfigurationFile) == True:\r
-            TargetTxt.LoadTargetTxtFile(BuildConfigurationFile)\r
-            if DataType.TAB_TAT_DEFINES_BUILD_RULE_CONF in TargetTxt.TargetTxtDictionary:\r
-                BuildRuleFile = TargetTxt.TargetTxtDictionary[DataType.TAB_TAT_DEFINES_BUILD_RULE_CONF]\r
-            if not BuildRuleFile:\r
-                BuildRuleFile = 'Conf/build_rule.txt'\r
-            GenFdsGlobalVariable.__BuildRuleDatabase = BuildRule(BuildRuleFile)\r
-            ToolDefinitionFile = TargetTxt.TargetTxtDictionary[DataType.TAB_TAT_DEFINES_TOOL_CHAIN_CONF]\r
-            if ToolDefinitionFile == '':\r
-                ToolDefinitionFile = "Conf/tools_def.txt"\r
-            if os.path.isfile(ToolDefinitionFile):\r
-                ToolDef = ToolDefClassObject()\r
-                ToolDef.LoadToolDefFile(ToolDefinitionFile)\r
-                ToolDefinition = 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
-                    GenFdsGlobalVariable.BuildRuleFamily = ToolDefinition[DataType.TAB_TOD_DEFINES_BUILDRULEFAMILY][GenFdsGlobalVariable.ToolChainTag]\r
-\r
-                if DataType.TAB_TOD_DEFINES_FAMILY in ToolDefinition \\r
-                   and GenFdsGlobalVariable.ToolChainTag in ToolDefinition[DataType.TAB_TOD_DEFINES_FAMILY] \\r
-                   and ToolDefinition[DataType.TAB_TOD_DEFINES_FAMILY][GenFdsGlobalVariable.ToolChainTag]:\r
-                    GenFdsGlobalVariable.ToolChainFamily = ToolDefinition[DataType.TAB_TOD_DEFINES_FAMILY][GenFdsGlobalVariable.ToolChainTag]\r
+        GenFdsGlobalVariable.__BuildRuleDatabase = BuildRuleObj\r
+        ToolDefinitionFile = TargetTxt.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
+            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
+                GenFdsGlobalVariable.BuildRuleFamily = ToolDefinition[DataType.TAB_TOD_DEFINES_BUILDRULEFAMILY][GenFdsGlobalVariable.ToolChainTag]\r
+\r
+            if DataType.TAB_TOD_DEFINES_FAMILY in ToolDefinition \\r
+               and GenFdsGlobalVariable.ToolChainTag in ToolDefinition[DataType.TAB_TOD_DEFINES_FAMILY] \\r
+               and ToolDefinition[DataType.TAB_TOD_DEFINES_FAMILY][GenFdsGlobalVariable.ToolChainTag]:\r
+                GenFdsGlobalVariable.ToolChainFamily = ToolDefinition[DataType.TAB_TOD_DEFINES_FAMILY][GenFdsGlobalVariable.ToolChainTag]\r
         return GenFdsGlobalVariable.__BuildRuleDatabase\r
 \r
     ## GetBuildRules\r
@@ -839,7 +829,7 @@ class GenFdsGlobalVariable:
 #  @param  NameGuid         The Guid name\r
 #\r
 def FindExtendTool(KeyStringList, CurrentArchList, NameGuid):\r
-    ToolDb = ToolDefDict(GenFdsGlobalVariable.ConfDir).ToolsDefTxtDatabase\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
         Target = GenFdsGlobalVariable.TargetName\r
@@ -855,15 +845,15 @@ def FindExtendTool(KeyStringList, CurrentArchList, NameGuid):
         if NameGuid in GenFdsGlobalVariable.GuidToolDefinition:\r
             return GenFdsGlobalVariable.GuidToolDefinition[NameGuid]\r
 \r
-    ToolDefinition = ToolDefDict(GenFdsGlobalVariable.ConfDir).ToolsDefTxtDictionary\r
+    ToolDefinition = ToolDef.ToolsDefTxtDictionary\r
     ToolPathTmp = None\r
     ToolOption = None\r
     ToolPathKey = None\r
     ToolOptionKey = None\r
     KeyList = None\r
-    for ToolDef in ToolDefinition.items():\r
-        if NameGuid.lower() == ToolDef[1].lower():\r
-            KeyList = ToolDef[0].split('_')\r
+    for tool_def in ToolDefinition.items():\r
+        if NameGuid.lower() == tool_def[1].lower():\r
+            KeyList = tool_def[0].split('_')\r
             Key = KeyList[0] + \\r
                   '_' + \\r
                   KeyList[1] + \\r