diff --git a/BaseTools/Source/Python/AutoGen/ModuleAutoGenHelper.py b/BaseTools/Source/Python/AutoGen/ModuleAutoGenHelper.py index 167bb59d23..036fdac3d7 100644 --- a/BaseTools/Source/Python/AutoGen/ModuleAutoGenHelper.py +++ b/BaseTools/Source/Python/AutoGen/ModuleAutoGenHelper.py @@ -181,20 +181,12 @@ class AutoGenInfo(object): if Family == ToolDef[Tool][TAB_TOD_DEFINES_BUILDRULEFAMILY]: FamilyMatch = True Found = True - if TAB_TOD_DEFINES_FAMILY in ToolDef[Tool]: - if Family == ToolDef[Tool][TAB_TOD_DEFINES_FAMILY]: - FamilyMatch = True - Found = True if TAB_STAR in ToolDef: FamilyIsNull = False if TAB_TOD_DEFINES_BUILDRULEFAMILY in ToolDef[TAB_STAR]: if Family == ToolDef[TAB_STAR][TAB_TOD_DEFINES_BUILDRULEFAMILY]: FamilyMatch = True Found = True - if TAB_TOD_DEFINES_FAMILY in ToolDef[TAB_STAR]: - if Family == ToolDef[TAB_STAR][TAB_TOD_DEFINES_FAMILY]: - FamilyMatch = True - Found = True if not Found: continue # expand any wildcard @@ -640,14 +632,19 @@ class PlatformInfo(AutoGenInfo): if Attr == TAB_TOD_DEFINES_BUILDRULEORDER: continue Value = Options[Tool][Attr] - # check if override is indicated - if Value.startswith('='): - BuildOptions[Tool][Attr] = mws.handleWsMacro(Value[1:]) - else: - if Attr != 'PATH': - BuildOptions[Tool][Attr] += " " + mws.handleWsMacro(Value) + ToolList = [Tool] + if Tool == TAB_STAR: + ToolList = list(AllTools) + ToolList.remove(TAB_STAR) + for ExpandedTool in ToolList: + # check if override is indicated + if Value.startswith('='): + BuildOptions[ExpandedTool][Attr] = mws.handleWsMacro(Value[1:]) else: - BuildOptions[Tool][Attr] = mws.handleWsMacro(Value) + if Attr != 'PATH': + BuildOptions[ExpandedTool][Attr] += " " + mws.handleWsMacro(Value) + else: + BuildOptions[ExpandedTool][Attr] = mws.handleWsMacro(Value) return BuildOptions, BuildRuleOrder diff --git a/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py b/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py index 21e72438e5..832c0da86b 100644 --- a/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py +++ b/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py @@ -1391,14 +1391,19 @@ class PlatformAutoGen(AutoGen): if Attr == TAB_TOD_DEFINES_BUILDRULEORDER: continue Value = Options[Tool][Attr] - # check if override is indicated - if Value.startswith('='): - BuildOptions[Tool][Attr] = mws.handleWsMacro(Value[1:]) - else: - if Attr != 'PATH': - BuildOptions[Tool][Attr] += " " + mws.handleWsMacro(Value) + ToolList = [Tool] + if Tool == TAB_STAR: + ToolList = list(AllTools) + ToolList.remove(TAB_STAR) + for ExpandedTool in ToolList: + # check if override is indicated + if Value.startswith('='): + BuildOptions[ExpandedTool][Attr] = mws.handleWsMacro(Value[1:]) else: - BuildOptions[Tool][Attr] = mws.handleWsMacro(Value) + if Attr != 'PATH': + BuildOptions[ExpandedTool][Attr] += " " + mws.handleWsMacro(Value) + else: + BuildOptions[ExpandedTool][Attr] = mws.handleWsMacro(Value) return BuildOptions, BuildRuleOrder @@ -1529,20 +1534,12 @@ class PlatformAutoGen(AutoGen): if Family == ToolDef[Tool][TAB_TOD_DEFINES_BUILDRULEFAMILY]: FamilyMatch = True Found = True - if TAB_TOD_DEFINES_FAMILY in ToolDef[Tool]: - if Family == ToolDef[Tool][TAB_TOD_DEFINES_FAMILY]: - FamilyMatch = True - Found = True if TAB_STAR in ToolDef: FamilyIsNull = False if TAB_TOD_DEFINES_BUILDRULEFAMILY in ToolDef[TAB_STAR]: if Family == ToolDef[TAB_STAR][TAB_TOD_DEFINES_BUILDRULEFAMILY]: FamilyMatch = True Found = True - if TAB_TOD_DEFINES_FAMILY in ToolDef[TAB_STAR]: - if Family == ToolDef[TAB_STAR][TAB_TOD_DEFINES_FAMILY]: - FamilyMatch = True - Found = True if not Found: continue diff --git a/BaseTools/Source/Python/build/build.py b/BaseTools/Source/Python/build/build.py index 0570c29f1a..e5693c0d27 100755 --- a/BaseTools/Source/Python/build/build.py +++ b/BaseTools/Source/Python/build/build.py @@ -897,6 +897,7 @@ class Build(): # $(TARGET), $(TOOLCHAIN), $(TOOLCHAIN_TAG), or $(ARCH) operands. # def GetToolChainAndFamilyFromDsc (self, File): + SavedGlobalDefines = GlobalData.gGlobalDefines.copy() for BuildTarget in self.BuildTargetList: GlobalData.gGlobalDefines['TARGET'] = BuildTarget for BuildToolChain in self.ToolChainList: @@ -929,6 +930,7 @@ class Build(): self.ToolDef.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TOOL_CHAIN_TAG] = [] if ToolChain not in self.ToolDef.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TOOL_CHAIN_TAG]: self.ToolDef.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TOOL_CHAIN_TAG].append(ToolChain) + GlobalData.gGlobalDefines = SavedGlobalDefines ## Load configuration #