From ab957f036f6711869283217227480b109aedc8ef Mon Sep 17 00:00:00 2001 From: Michael D Kinney Date: Tue, 20 Apr 2021 23:12:51 -0700 Subject: BaseTools/Source/Python: New Target/ToolChain/Arch in DSC [BuildOptions] REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3359 Update BaseTools to support new build targets, new tool chains, and new architectures declared in DSC file [BuildOptions] sections. * Do not expand * when tools_def.txt is parsed. Only expand when both tools_def.txt and DSC [BuilsOptions] sections have been parsed. This also requires more flexible matching of tool keys that contain * in tool key fields. * Pre-scan the platform DSC file for FAMILY and TOOLCHAIN declarations DSC in [BuildOptions] sections before the FAMILY and TOOLCHAIN need to be known. Cc: Bob Feng Cc: Liming Gao Cc: Yuwei Chen Signed-off-by: Michael D Kinney Reviewed-by: Bob Feng --- BaseTools/Source/Python/Common/ToolDefClassObject.py | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) (limited to 'BaseTools/Source/Python/Common/ToolDefClassObject.py') diff --git a/BaseTools/Source/Python/Common/ToolDefClassObject.py b/BaseTools/Source/Python/Common/ToolDefClassObject.py index 8e70407cb9..2b4b238491 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 - 2019, Intel Corporation. All rights reserved.
+# Copyright (c) 2007 - 2021, Intel Corporation. All rights reserved.
# SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -86,23 +86,6 @@ class ToolDefClassObject(object): self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET_ARCH].sort() self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_COMMAND_TYPE].sort() - KeyList = [TAB_TOD_DEFINES_TARGET, TAB_TOD_DEFINES_TOOL_CHAIN_TAG, TAB_TOD_DEFINES_TARGET_ARCH, TAB_TOD_DEFINES_COMMAND_TYPE] - for Index in range(3, -1, -1): - # make a copy of the keys to enumerate over to prevent issues when - # adding/removing items from the original dict. - for Key in list(self.ToolsDefTxtDictionary.keys()): - List = Key.split('_') - if List[Index] == TAB_STAR: - for String in self.ToolsDefTxtDatabase[KeyList[Index]]: - List[Index] = String - NewKey = '%s_%s_%s_%s_%s' % tuple(List) - if NewKey not in self.ToolsDefTxtDictionary: - self.ToolsDefTxtDictionary[NewKey] = self.ToolsDefTxtDictionary[Key] - del self.ToolsDefTxtDictionary[Key] - elif List[Index] not in self.ToolsDefTxtDatabase[KeyList[Index]]: - del self.ToolsDefTxtDictionary[Key] - - ## IncludeToolDefFile # # Load target.txt file and parse it as if its contents were inside the main file -- cgit v1.2.3