Reviewed-by: Andrew Fish <af...@apple.com> Thanks,
Andrew Fish > On May 1, 2021, at 10:02 AM, Michael D Kinney <michael.d.kin...@intel.com> > wrote: > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3359 > > * Save/Restore global state in GetToolChainAndFamilyFromDsc() > This resolves an issue where the multi-arch build for > UefiPayloadPkg would skip the autogen and build of IA32 > components. > * Expand tools wildcard. > This resolves the issue where autogen makefile contents > would have a BUIDLRULEFAMILY tools definitions with an > '*' in the tool field that breaks the build from invalid > makefile syntax. > * Build rule family higher priority than Family. > This resolves the issue where flags were appended from > both the BUILDRULEFAMILY and FAMILY when only > BUILDRULEFAMILY should be appended when present. > > Cc: Bob Feng <bob.c.f...@intel.com> > Cc: Liming Gao <gaolim...@byosoft.com.cn> > Cc: Yuwei Chen <yuwei.c...@intel.com> > Cc: Ray Ni <ray...@intel.com> > Cc: Steven Shi <steven....@intel.com> > Signed-off-by: Michael D Kinney <michael.d.kin...@intel.com> > --- > .../Python/AutoGen/ModuleAutoGenHelper.py | 27 +++++++++---------- > .../Source/Python/AutoGen/PlatformAutoGen.py | 27 +++++++++---------- > BaseTools/Source/Python/build/build.py | 2 ++ > 3 files changed, 26 insertions(+), 30 deletions(-) > > diff --git a/BaseTools/Source/Python/AutoGen/ModuleAutoGenHelper.py > b/BaseTools/Source/Python/AutoGen/ModuleAutoGenHelper.py > index 167bb59d2315..036fdac3d7df 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 21e72438e59e..832c0da86bb7 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 0570c29f1ada..e5693c0d27a2 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 > # > -- > 2.31.1.windows.1 > > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#74711): https://edk2.groups.io/g/devel/message/74711 Mute This Topic: https://groups.io/mt/82510906/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-