]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/UPT/Parser/InfLibrarySectionParser.py
BaseTools: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / BaseTools / Source / Python / UPT / Parser / InfLibrarySectionParser.py
index 8f9427cf4fa8c74dba1225efc8bbb1661139dc94..f2070b51a42fafc24ba3eadf2261ce6f4ae5b4f5 100644 (file)
@@ -1,15 +1,9 @@
 ## @file\r
-# This file contained the parser for [Libraries] sections in INF file \r
+# This file contained the parser for [Libraries] sections in INF file\r
 #\r
-# Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>\r
 #\r
-# This program and the accompanying materials are licensed and made available \r
-# under the terms and conditions of the BSD License which accompanies this \r
-# distribution. The full text of the license may be found at \r
-# http://opensource.org/licenses/bsd-license.php\r
-#\r
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+# SPDX-License-Identifier: BSD-2-Clause-Patent\r
 #\r
 '''\r
 InfLibrarySectionParser\r
@@ -34,33 +28,33 @@ from Parser.InfParserMisc import InfParserSectionRoot
 class InfLibrarySectionParser(InfParserSectionRoot):\r
     ## InfLibraryParser\r
     #\r
-    #                 \r
+    #\r
     def InfLibraryParser(self, SectionString, InfSectionObject, FileName):\r
         #\r
         # For Common INF file\r
         #\r
         if not GlobalData.gIS_BINARY_INF:\r
             #\r
-            # Macro defined in this section \r
+            # Macro defined in this section\r
             #\r
             SectionMacros = {}\r
-            ValueList     = []\r
-            LibraryList   = []\r
-            LibStillCommentFalg  = False\r
-            LibHeaderComments    = []\r
-            LibLineComment       = None              \r
+            ValueList = []\r
+            LibraryList = []\r
+            LibStillCommentFalg = False\r
+            LibHeaderComments = []\r
+            LibLineComment = None\r
             #\r
             # Parse section content\r
             #\r
             for Line in SectionString:\r
                 LibLineContent = Line[0]\r
-                LibLineNo      = Line[1]\r
-                \r
+                LibLineNo = Line[1]\r
+\r
                 if LibLineContent.strip() == '':\r
                     continue\r
-                \r
+\r
                 #\r
-                # Found Header Comments \r
+                # Found Header Comments\r
                 #\r
                 if LibLineContent.strip().startswith(DT.TAB_COMMENT_SPLIT):\r
                     #\r
@@ -70,7 +64,7 @@ class InfLibrarySectionParser(InfParserSectionRoot):
                         LibHeaderComments.append(Line)\r
                         continue\r
                     #\r
-                    # First time encounter comment \r
+                    # First time encounter comment\r
                     #\r
                     else:\r
                         #\r
@@ -82,24 +76,24 @@ class InfLibrarySectionParser(InfParserSectionRoot):
                         continue\r
                 else:\r
                     LibStillCommentFalg = False\r
-                              \r
+\r
                 if len(LibHeaderComments) >= 1:\r
                     LibLineComment = InfLineCommentObject()\r
                     LineCommentContent = ''\r
                     for Item in LibHeaderComments:\r
                         LineCommentContent += Item[0] + DT.END_OF_LINE\r
                     LibLineComment.SetHeaderComments(LineCommentContent)\r
-                \r
+\r
                 #\r
                 # Find Tail comment.\r
                 #\r
                 if LibLineContent.find(DT.TAB_COMMENT_SPLIT) > -1:\r
                     LibTailComments = LibLineContent[LibLineContent.find(DT.TAB_COMMENT_SPLIT):]\r
                     LibLineContent = LibLineContent[:LibLineContent.find(DT.TAB_COMMENT_SPLIT)]\r
-                    if LibLineComment == None:\r
+                    if LibLineComment is None:\r
                         LibLineComment = InfLineCommentObject()\r
-                    LibLineComment.SetTailComments(LibTailComments)            \r
-                \r
+                    LibLineComment.SetTailComments(LibTailComments)\r
+\r
                 #\r
                 # Find Macro\r
                 #\r
@@ -107,103 +101,97 @@ class InfLibrarySectionParser(InfParserSectionRoot):
                                           FileName,\r
                                           DT.MODEL_EFI_LIBRARY_CLASS,\r
                                           self.FileLocalMacros)\r
-                if Name != None:\r
+                if Name is not None:\r
                     SectionMacros[Name] = Value\r
                     LibLineComment = None\r
-                    LibHeaderComments = []                \r
+                    LibHeaderComments = []\r
                     continue\r
-                \r
+\r
                 TokenList = GetSplitValueList(LibLineContent, DT.TAB_VALUE_SPLIT, 1)\r
                 ValueList[0:len(TokenList)] = TokenList\r
-    \r
+\r
                 #\r
                 # Replace with Local section Macro and [Defines] section Macro.\r
-                #            \r
-                ValueList = [InfExpandMacro(Value, (FileName, LibLineContent, LibLineNo), \r
+                #\r
+                ValueList = [InfExpandMacro(Value, (FileName, LibLineContent, LibLineNo),\r
                                             self.FileLocalMacros, SectionMacros, True)\r
                                             for Value in ValueList]\r
-    \r
-                LibraryList.append((ValueList, LibLineComment, \r
+\r
+                LibraryList.append((ValueList, LibLineComment,\r
                                     (LibLineContent, LibLineNo, FileName)))\r
                 ValueList = []\r
                 LibLineComment = None\r
                 LibTailComments = ''\r
                 LibHeaderComments = []\r
-                \r
+\r
                 continue\r
-    \r
+\r
             #\r
             # Current section archs\r
-            #    \r
+            #\r
             KeyList = []\r
             for Item in self.LastSectionHeaderContent:\r
                 if (Item[1], Item[2]) not in KeyList:\r
                     KeyList.append((Item[1], Item[2]))\r
-                                   \r
-            if not InfSectionObject.SetLibraryClasses(LibraryList, KeyList = KeyList):\r
-                Logger.Error('InfParser', \r
+\r
+            if not InfSectionObject.SetLibraryClasses(LibraryList, KeyList=KeyList):\r
+                Logger.Error('InfParser',\r
                              FORMAT_INVALID,\r
                              ST.ERR_INF_PARSER_MODULE_SECTION_TYPE_ERROR % ("[Library]"),\r
-                             File=FileName, \r
+                             File=FileName,\r
                              Line=Item[3])\r
         #\r
         # For Binary INF\r
         #\r
         else:\r
             self.InfAsBuiltLibraryParser(SectionString, InfSectionObject, FileName)\r
-                \r
+\r
     def InfAsBuiltLibraryParser(self, SectionString, InfSectionObject, FileName):\r
         LibraryList = []\r
         LibInsFlag = False\r
         for Line in SectionString:\r
             LineContent = Line[0]\r
-            LineNo      = Line[1]\r
-            \r
+            LineNo = Line[1]\r
+\r
             if LineContent.strip() == '':\r
                 LibInsFlag = False\r
                 continue\r
-            \r
+\r
             if not LineContent.strip().startswith("#"):\r
-                Logger.Error('InfParser', \r
+                Logger.Error('InfParser',\r
                             FORMAT_INVALID,\r
-                            ST.ERR_LIB_CONTATIN_ASBUILD_AND_COMMON, \r
-                            File=FileName, \r
-                            Line=LineNo, \r
+                            ST.ERR_LIB_CONTATIN_ASBUILD_AND_COMMON,\r
+                            File=FileName,\r
+                            Line=LineNo,\r
                             ExtraData=LineContent)\r
-            \r
+\r
             if IsLibInstanceInfo(LineContent):\r
                 LibInsFlag = True\r
                 continue\r
-            \r
+\r
             if LibInsFlag:\r
-                LibGuid, LibVer = GetLibInstanceInfo(LineContent, GlobalData.gWORKSPACE, LineNo)\r
+                LibGuid, LibVer = GetLibInstanceInfo(LineContent, GlobalData.gWORKSPACE, LineNo, FileName)\r
                 #\r
                 # If the VERSION_STRING is missing from the INF file, tool should default to "0".\r
                 #\r
                 if LibVer == '':\r
                     LibVer = '0'\r
                 if LibGuid != '':\r
-                    LibraryList.append((LibGuid, LibVer))\r
-                else:\r
-                    Logger.Error('InfParser', \r
-                            FORMAT_INVALID,\r
-                            ST.ERR_LIB_INSTANCE_MISS_GUID, \r
-                            File=FileName, \r
-                            Line=LineNo, \r
-                            ExtraData=LineContent)                    \r
-                \r
+                    if (LibGuid, LibVer) not in LibraryList:\r
+                        LibraryList.append((LibGuid, LibVer))\r
+\r
         #\r
         # Current section archs\r
-        #    \r
+        #\r
         KeyList = []\r
         Item = ['', '', '']\r
         for Item in self.LastSectionHeaderContent:\r
             if (Item[1], Item[2]) not in KeyList:\r
                 KeyList.append((Item[1], Item[2]))\r
-                \r
-        if not InfSectionObject.SetLibraryClasses(LibraryList, KeyList = KeyList):\r
-            Logger.Error('InfParser', \r
+\r
+        if not InfSectionObject.SetLibraryClasses(LibraryList, KeyList=KeyList):\r
+            Logger.Error('InfParser',\r
                          FORMAT_INVALID,\r
                          ST.ERR_INF_PARSER_MODULE_SECTION_TYPE_ERROR % ("[Library]"),\r
-                         File=FileName, \r
-                         Line=Item[3])           
\ No newline at end of file
+                         File=FileName,\r
+                         Line=Item[3])\r