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>
else:\r
ToolsDef += "%s_%s = %s\n" % (Tool, Attr, Value)\r
ToolsDef += "\n"\r
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
for DllPath in DllPathList:\r
os.environ["PATH"] = DllPath + os.pathsep + os.environ["PATH"]\r
os.environ["MAKE_FLAGS"] = MakeFlags\r
## Return the paths of tools\r
@cached_property\r
def ToolDefinitionFile(self):\r
## 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
\r
## Retrieve the toolchain family of given toolchain tag. Default to 'MSFT'.\r
@cached_property\r