BaseTools/Ecc: Add a Configuration item

Add a ‘SkipFileList’ in config.ini to exclude the files not be scanned.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: YangX Li <yangx.li@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17705 6f19259b-4bc3-4df7-8a09-765794883524
diff --git a/BaseTools/Source/Python/Ecc/Check.py b/BaseTools/Source/Python/Ecc/Check.py
index 5bee6db..da3b0fb 100644
--- a/BaseTools/Source/Python/Ecc/Check.py
+++ b/BaseTools/Source/Python/Ecc/Check.py
@@ -1,7 +1,7 @@
 ## @file

 # This file is used to define checkpoints used by ECC tool

 #

-# Copyright (c) 2008 - 2014, Intel Corporation. All rights reserved.<BR>

+# Copyright (c) 2008 - 2015, 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

@@ -100,6 +100,9 @@
                         Dirnames.append(Dirname)

             if IgnoredPattern.match(Dirpath.upper()):

                 continue

+            for f in Filenames[:]:

+                if f.lower() in EccGlobalData.gConfig.SkipFileList:

+                    Filenames.remove(f)

             yield (Dirpath, Dirnames, Filenames)

 

     # Check whether return type exists and in the first line

diff --git a/BaseTools/Source/Python/Ecc/Configuration.py b/BaseTools/Source/Python/Ecc/Configuration.py
index 3e54438..55a1655 100644
--- a/BaseTools/Source/Python/Ecc/Configuration.py
+++ b/BaseTools/Source/Python/Ecc/Configuration.py
@@ -1,7 +1,7 @@
 ## @file

 # This file is used to define class Configuration

 #

-# Copyright (c) 2008 - 2014, Intel Corporation. All rights reserved.<BR>

+# Copyright (c) 2008 - 2015, 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

@@ -256,6 +256,9 @@
 

         # The directory listed here will not be parsed, split with ','

         self.SkipDirList = []

+        

+        # The file listed here will not be parsed, split with ','

+        self.SkipFileList = []

 

         # A list for binary file ext name

         self.BinaryExtList = []

@@ -286,6 +289,8 @@
                     continue

                 if List[0] == 'SkipDirList':

                     List[1] = GetSplitValueList(List[1], TAB_COMMA_SPLIT)

+                if List[0] == 'SkipFileList':

+                    List[1] = GetSplitValueList(List[1], TAB_COMMA_SPLIT)

                 if List[0] == 'BinaryExtList':

                     List[1] = GetSplitValueList(List[1], TAB_COMMA_SPLIT)

                 self.__dict__[List[0]] = List[1]

diff --git a/BaseTools/Source/Python/Ecc/c.py b/BaseTools/Source/Python/Ecc/c.py
index 6c20f6c..a25532a 100644
--- a/BaseTools/Source/Python/Ecc/c.py
+++ b/BaseTools/Source/Python/Ecc/c.py
@@ -1,7 +1,7 @@
 ## @file

 # This file is used to be the c coding style checking of ECC tool

 #

-# Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>

+# Copyright (c) 2009 - 2015, 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

@@ -514,6 +514,8 @@
                     dirnames.append(Dirname)

 

         for f in filenames:

+            if f.lower() in EccGlobalData.gConfig.SkipFileList:

+                continue

             collector = None

             FullName = os.path.normpath(os.path.join(dirpath, f))

             model = DataClass.MODEL_FILE_OTHERS