X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=BaseTools%2FSource%2FPython%2FCommon%2FToolDefClassObject.py;h=4fefbd91e0a0d95224af6e1796c23480f4bb8dfe;hp=b5cd5ee435ef153c14e4495359ea01c9169506d2;hb=97fa0ee9b1cffbb4b97ee35365afa7afcf50e174;hpb=08dd311f5dc735c595d39faf2e6f7e2810bb79a9 diff --git a/BaseTools/Source/Python/Common/ToolDefClassObject.py b/BaseTools/Source/Python/Common/ToolDefClassObject.py index b5cd5ee435..4fefbd91e0 100644 --- a/BaseTools/Source/Python/Common/ToolDefClassObject.py +++ b/BaseTools/Source/Python/Common/ToolDefClassObject.py @@ -1,7 +1,7 @@ ## @file # This file is used to define each component of tools_def.txt file # -# Copyright (c) 2007, Intel Corporation. All rights reserved.
+# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
# This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License # which accompanies this distribution. The full text of the license may be found at @@ -14,13 +14,14 @@ ## # Import Modules # -import os +import Common.LongFilePathOs as os import re import EdkLogger from Dictionary import * from BuildToolError import * from TargetTxtClassObject import * +from Common.LongFilePathSupport import OpenLongFilePath as open ## # Static variables used for pattern @@ -28,7 +29,7 @@ from TargetTxtClassObject import * gMacroRefPattern = re.compile('(DEF\([^\(\)]+\))') gEnvRefPattern = re.compile('(ENV\([^\(\)]+\))') gMacroDefPattern = re.compile("DEFINE\s+([^\s]+)") -gDefaultToolsDefFile = "Conf/tools_def.txt" +gDefaultToolsDefFile = "tools_def.txt" ## ToolDefClassObject # @@ -180,8 +181,10 @@ class ToolDefClassObject(object): EnvReference = gEnvRefPattern.findall(Value) for Ref in EnvReference: if Ref not in self.MacroDictionary: - return False, Ref - Value = Value.replace(Ref, self.MacroDictionary[Ref]) + Value = Value.replace(Ref, "") + else: + Value = Value.replace(Ref, self.MacroDictionary[Ref]) + MacroReference = gMacroRefPattern.findall(Value) for Ref in MacroReference: @@ -193,18 +196,23 @@ class ToolDefClassObject(object): ## ToolDefDict # -# Load tools_def.txt in input workspace dir +# Load tools_def.txt in input Conf dir # -# @param WorkSpace: Workspace dir +# @param ConfDir: Conf dir # # @retval ToolDef An instance of ToolDefClassObject() with loaded tools_def.txt # -def ToolDefDict(WorkSpace): - Target = TargetTxtDict(WorkSpace) +def ToolDefDict(ConfDir): + Target = TargetTxtDict(ConfDir) ToolDef = ToolDefClassObject() if DataType.TAB_TAT_DEFINES_TOOL_CHAIN_CONF in Target.TargetTxtDictionary: - gDefaultToolsDefFile = Target.TargetTxtDictionary[DataType.TAB_TAT_DEFINES_TOOL_CHAIN_CONF] - ToolDef.LoadToolDefFile(os.path.normpath(os.path.join(WorkSpace, gDefaultToolsDefFile))) + ToolsDefFile = Target.TargetTxtDictionary[DataType.TAB_TAT_DEFINES_TOOL_CHAIN_CONF] + if ToolsDefFile: + ToolDef.LoadToolDefFile(os.path.normpath(ToolsDefFile)) + else: + ToolDef.LoadToolDefFile(os.path.normpath(os.path.join(ConfDir, gDefaultToolsDefFile))) + else: + ToolDef.LoadToolDefFile(os.path.normpath(os.path.join(ConfDir, gDefaultToolsDefFile))) return ToolDef ##