Hello Zhu Yonghong, On 01/18/16 08:36, Yonghong Zhu wrote: > By the BUILDRULEORDER feature to process files listed in INF [Sources] > sections in priority order, if a filename is listed with multiple > extensions, the tools will use only the file that matches the first > extension in the space separated list. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Yonghong Zhu <yonghong....@intel.com> > --- > BaseTools/Source/Python/AutoGen/AutoGen.py | 29 ++++++++++++++++++++++++++++- > 1 file changed, 28 insertions(+), 1 deletion(-)
does this version address the issue that we found in the following threads? http://thread.gmane.org/gmane.comp.bios.edk2.devel/5192/focus=5492 http://thread.gmane.org/gmane.comp.bios.edk2.devel/5485/focus=5501 Thanks! Laszlo > > diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py > b/BaseTools/Source/Python/AutoGen/AutoGen.py > index abac477..e9f4888 100644 > --- a/BaseTools/Source/Python/AutoGen/AutoGen.py > +++ b/BaseTools/Source/Python/AutoGen/AutoGen.py > @@ -1,9 +1,9 @@ > ## @file > # Generate AutoGen.h, AutoGen.c and *.depex files > # > -# Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR> > +# Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR> > # 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 > # http://opensource.org/licenses/bsd-license.php > # > @@ -2739,13 +2739,40 @@ class ModuleAutoGen(AutoGen): > > # add the file path into search path list for file including > if F.Dir not in self.IncludePathList and self.AutoGenVersion > >= 0x00010005: > self.IncludePathList.insert(0, F.Dir) > self._SourceFileList.append(F) > + > + self._MatchBuildRuleOrder(self._SourceFileList) > + > + for F in self._SourceFileList: > self._ApplyBuildRule(F, TAB_UNKNOWN_FILE) > return self._SourceFileList > > + def _MatchBuildRuleOrder(self, FileList): > + Order_Dict = {} > + self._GetModuleBuildOption() > + for SingleFile in FileList: > + if self.BuildRuleOrder and SingleFile.Ext in self.BuildRuleOrder > and SingleFile.Ext in self.BuildRules: > + key = SingleFile.Path.split(SingleFile.Ext)[0] > + if key in Order_Dict: > + Order_Dict[key].append(SingleFile.Ext) > + else: > + Order_Dict[key] = [SingleFile.Ext] > + > + RemoveList = [] > + for F in Order_Dict: > + if len(Order_Dict[F]) > 1: > + Order_Dict[F].sort(key=lambda i: > self.BuildRuleOrder.index(i)) > + for Ext in Order_Dict[F][1:]: > + RemoveList.append(F + Ext) > + > + for item in RemoveList: > + FileList.remove(item) > + > + return FileList > + > ## Return the list of unicode files > def _GetUnicodeFileList(self): > if self._UnicodeFileList == None: > if TAB_UNICODE_FILE in self.FileTypes: > self._UnicodeFileList = self.FileTypes[TAB_UNICODE_FILE] > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel