Please review. Bump. >-----Original Message----- >From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of >Christian Rodriguez >Sent: Friday, May 24, 2019 7:40 AM >To: devel@edk2.groups.io >Cc: Feng, Bob C <bob.c.f...@intel.com>; Gao, Liming ><liming....@intel.com>; Zhu, Yonghong <yonghong....@intel.com> >Subject: [edk2-devel] [Patch V3 1/2] BaseTools: Add a checking for Sources >section in INF file [Part 1/2] > >BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1804 > >In V3: Seperate checker and hashing into individual patches In V2: Enable >check for all builds, move conditional to hash invalidation In the Edk2 INF >spec >3.9, it states, All HII Unicode format files must be listed in [Sources] >section. >Add a check to see if [Sources] section lists all the "source" type files of a >module. Performance impact should be minimal with this patch since >information is already being fetched for Makefile purposes. All other >information is already cached in memory. No extra IO time is needed. Part 1 is >checker only. > >Signed-off-by: Christian Rodriguez <christian.rodrig...@intel.com> >Cc: Bob Feng <bob.c.f...@intel.com> >Cc: Liming Gao <liming....@intel.com> >Cc: Yonghong Zhu <yonghong....@intel.com> >--- > BaseTools/Source/Python/AutoGen/GenMake.py | 38 >++++++++++++++++++++ > 1 file changed, 38 insertions(+) > >diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py >b/BaseTools/Source/Python/AutoGen/GenMake.py >index 0e0f9fd9b0..5c992d7c26 100644 >--- a/BaseTools/Source/Python/AutoGen/GenMake.py >+++ b/BaseTools/Source/Python/AutoGen/GenMake.py >@@ -905,6 +905,44 @@ cleanlib: > ForceIncludedFile, > self._AutoGenObject.IncludePathList + >self._AutoGenObject.BuildOptionIncPathList > ) >+ >+ # Check if header files are listed in metafile >+ # Get a list of unique module header source files from MetaFile >+ headerFilesInMetaFileSet = set() >+ for aFile in self._AutoGenObject.SourceFileList: >+ aFileName = str(aFile) >+ if not aFileName.endswith('.h'): >+ continue >+ headerFilesInMetaFileSet.add(aFileName.lower()) >+ >+ # Get a list of unique module autogen files >+ localAutoGenFileSet = set() >+ for aFile in self._AutoGenObject.AutoGenFileList: >+ localAutoGenFileSet.add(str(aFile).lower()) >+ >+ # Get a list of unique module dependency header files >+ # Exclude autogen files and files not in the source directory >+ headerFileDependencySet = set() >+ localSourceDir = str(self._AutoGenObject.SourceDir).lower() >+ for Dependency in FileDependencyDict.values(): >+ for aFile in Dependency: >+ aFileName = str(aFile).lower() >+ if not aFileName.endswith('.h'): >+ continue >+ if aFileName in localAutoGenFileSet: >+ continue >+ if localSourceDir not in aFileName: >+ continue >+ headerFileDependencySet.add(aFileName) >+ >+ # Check if a module dependency header file is missing from the >module's >MetaFile >+ for aFile in headerFileDependencySet: >+ if aFile in headerFilesInMetaFileSet: >+ continue >+ EdkLogger.warn("build","Module MetaFile [Sources] is missing local >header!", >+ ExtraData = "Local Header: " + aFile + " not found in >" + >self._AutoGenObject.MetaFile.Path >+ ) >+ > DepSet = None > for File,Dependency in FileDependencyDict.items(): > if not Dependency: >-- >2.19.1.windows.1 > > >
-=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#41616): https://edk2.groups.io/g/devel/message/41616 Mute This Topic: https://groups.io/mt/31833976/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-