]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools: Fixed the issue when ToolDefinitionFile is not generated
authorBob Feng <bob.c.feng@intel.com>
Thu, 11 Jul 2019 00:57:58 +0000 (08:57 +0800)
committerLiming Gao <liming.gao@intel.com>
Fri, 12 Jul 2019 09:11:58 +0000 (17:11 +0800)
ToolDefinitionFile is generated by PlatformAutoGen.ToolDefinition()
Code assume ToolDefinition is always called before using
ToolDefinitionFile, but in some cases, it's not true.

This patch is to fix this issue.

Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Bob Feng <bob.c.feng@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
BaseTools/Source/Python/AutoGen/AutoGen.py

index c0d0ca15867b1c8425e8eb4ed4eb016b5223ef28..5cfaf2141af03678c559b0bd28c3b42ba4b78627 100644 (file)
@@ -1912,8 +1912,8 @@ class PlatformAutoGen(AutoGen):
                     else:\r
                         ToolsDef += "%s_%s = %s\n" % (Tool, Attr, Value)\r
             ToolsDef += "\n"\r
-\r
-        SaveFileOnChange(self.ToolDefinitionFile, ToolsDef, False)\r
+        tool_def_file = os.path.join(self.MakeFileDir, "TOOLS_DEF." + self.Arch)\r
+        SaveFileOnChange(tool_def_file, ToolsDef, False)\r
         for DllPath in DllPathList:\r
             os.environ["PATH"] = DllPath + os.pathsep + os.environ["PATH"]\r
         os.environ["MAKE_FLAGS"] = MakeFlags\r
@@ -1923,7 +1923,10 @@ class PlatformAutoGen(AutoGen):
     ## Return the paths of tools\r
     @cached_property\r
     def ToolDefinitionFile(self):\r
-        return os.path.join(self.MakeFileDir, "TOOLS_DEF." + self.Arch)\r
+        tool_def_file = os.path.join(self.MakeFileDir, "TOOLS_DEF." + self.Arch)\r
+        if not os.path.exists(tool_def_file):\r
+            self.ToolDefinition\r
+        return tool_def_file\r
 \r
     ## Retrieve the toolchain family of given toolchain tag. Default to 'MSFT'.\r
     @cached_property\r