## @file\r
-# This file is used to define class objects of INF file [Sources] section. \r
-# It will consumed by InfParser. \r
+# This file is used to define class objects of INF file [Sources] section.\r
+# It will consumed by InfParser.\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
+# 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
from Logger import StringTable as ST\r
from Logger import ToolError\r
import Logger.Log as Logger\r
-from Library import GlobalData \r
+from Library import GlobalData\r
\r
from Library.Misc import Sdict\r
-from Library.ExpressionValidate import IsValidFeatureFlagExp \r
+from Library.ExpressionValidate import IsValidFeatureFlagExp\r
from Object.Parser.InfCommonObject import InfSectionCommonDef\r
-from Library.Misc import ValidFile \r
+from Library.Misc import ValidFile\r
from Library.ParserValidate import IsValidFamily\r
from Library.ParserValidate import IsValidPath\r
\r
-## __GenSourceInstance \r
+## __GenSourceInstance\r
+#\r
#\r
-# \r
def GenSourceInstance(Item, CurrentLineOfItem, ItemObj):\r
- \r
+\r
IsValidFileFlag = False\r
- \r
+\r
if len(Item) < 6 and len(Item) >= 1:\r
#\r
# File | Family | TagName | ToolCode | FeatureFlagExpr\r
# Validate Feature Flag Express\r
#\r
if Item[4].strip() == '':\r
- Logger.Error("InfParser", \r
+ Logger.Error("InfParser",\r
ToolError.FORMAT_INVALID,\r
ST.ERR_INF_PARSER_FEATURE_FLAG_EXP_MISSING,\r
- File=CurrentLineOfItem[2], \r
- Line=CurrentLineOfItem[1], \r
+ File=CurrentLineOfItem[2],\r
+ Line=CurrentLineOfItem[1],\r
ExtraData=CurrentLineOfItem[0])\r
#\r
- # Validate FFE \r
+ # Validate FFE\r
#\r
FeatureFlagRtv = IsValidFeatureFlagExp(Item[4].strip())\r
if not FeatureFlagRtv[0]:\r
- Logger.Error("InfParser", \r
+ Logger.Error("InfParser",\r
ToolError.FORMAT_INVALID,\r
ST.ERR_INF_PARSER_FEATURE_FLAG_EXP_SYNTAX_INVLID%(FeatureFlagRtv[1]),\r
- File=CurrentLineOfItem[2], \r
- Line=CurrentLineOfItem[1], \r
+ File=CurrentLineOfItem[2],\r
+ Line=CurrentLineOfItem[1],\r
ExtraData=CurrentLineOfItem[0])\r
ItemObj.SetFeatureFlagExp(Item[4])\r
if len(Item) >= 4:\r
if Item[3].strip() == '':\r
ItemObj.SetToolCode(Item[3])\r
else:\r
- Logger.Error("InfParser", \r
+ Logger.Error("InfParser",\r
ToolError.FORMAT_INVALID,\r
ST.ERR_INF_PARSER_TOOLCODE_NOT_PERMITTED%(Item[2]),\r
- File=CurrentLineOfItem[2], \r
- Line=CurrentLineOfItem[1], \r
- ExtraData=CurrentLineOfItem[0]) \r
+ File=CurrentLineOfItem[2],\r
+ Line=CurrentLineOfItem[1],\r
+ ExtraData=CurrentLineOfItem[0])\r
if len(Item) >= 3:\r
if Item[2].strip() == '':\r
ItemObj.SetTagName(Item[2])\r
else:\r
- Logger.Error("InfParser", \r
+ Logger.Error("InfParser",\r
ToolError.FORMAT_INVALID,\r
ST.ERR_INF_PARSER_TAGNAME_NOT_PERMITTED%(Item[2]),\r
- File=CurrentLineOfItem[2], \r
- Line=CurrentLineOfItem[1], \r
+ File=CurrentLineOfItem[2],\r
+ Line=CurrentLineOfItem[1],\r
ExtraData=CurrentLineOfItem[0])\r
if len(Item) >= 2:\r
if IsValidFamily(Item[1].strip()):\r
Item[1] = ""\r
ItemObj.SetFamily(Item[1])\r
else:\r
- Logger.Error("InfParser", \r
+ Logger.Error("InfParser",\r
ToolError.FORMAT_INVALID,\r
ST.ERR_INF_PARSER_SOURCE_SECTION_FAMILY_INVALID%(Item[1]),\r
- File=CurrentLineOfItem[2], \r
- Line=CurrentLineOfItem[1], \r
+ File=CurrentLineOfItem[2],\r
+ Line=CurrentLineOfItem[1],\r
ExtraData=CurrentLineOfItem[0])\r
if len(Item) >= 1:\r
#\r
#\r
FullFileName = os.path.normpath(os.path.realpath(os.path.join(GlobalData.gINF_MODULE_DIR, Item[0])))\r
if not (ValidFile(FullFileName) or ValidFile(Item[0])):\r
- Logger.Error("InfParser", \r
+ Logger.Error("InfParser",\r
ToolError.FORMAT_INVALID,\r
ST.ERR_FILELIST_EXIST%(Item[0]),\r
- File=CurrentLineOfItem[2], \r
- Line=CurrentLineOfItem[1], \r
+ File=CurrentLineOfItem[2],\r
+ Line=CurrentLineOfItem[1],\r
ExtraData=CurrentLineOfItem[0])\r
- \r
+\r
#\r
# Validate file exist/format.\r
#\r
- \r
+\r
if IsValidPath(Item[0], GlobalData.gINF_MODULE_DIR):\r
IsValidFileFlag = True\r
else:\r
- Logger.Error("InfParser", \r
+ Logger.Error("InfParser",\r
ToolError.FORMAT_INVALID,\r
ST.ERR_INF_PARSER_FILE_NOT_EXIST_OR_NAME_INVALID%(Item[0]),\r
- File=CurrentLineOfItem[2], \r
- Line=CurrentLineOfItem[1], \r
+ File=CurrentLineOfItem[2],\r
+ Line=CurrentLineOfItem[1],\r
ExtraData=CurrentLineOfItem[0])\r
return False\r
if IsValidFileFlag:\r
- ItemObj.SetSourceFileName(Item[0]) \r
+ ItemObj.SetSourceFileName(Item[0])\r
else:\r
- Logger.Error("InfParser", \r
- ToolError.FORMAT_INVALID, \r
+ Logger.Error("InfParser",\r
+ ToolError.FORMAT_INVALID,\r
ST.ERR_INF_PARSER_SOURCES_SECTION_CONTENT_ERROR,\r
- File=CurrentLineOfItem[2], \r
+ File=CurrentLineOfItem[2],\r
Line=CurrentLineOfItem[1],\r
ExtraData=CurrentLineOfItem[0])\r
- \r
- return ItemObj \r
+\r
+ return ItemObj\r
\r
## InfSourcesItemObject()\r
-# \r
+#\r
#\r
class InfSourcesItemObject():\r
def __init__(self, \\r
self.HeaderString = ''\r
self.TailString = ''\r
self.SupArchList = []\r
- \r
+\r
def SetSourceFileName(self, SourceFilename):\r
self.SourceFileName = SourceFilename\r
def GetSourceFileName(self):\r
return self.SourceFileName\r
- \r
+\r
def SetFamily(self, Family):\r
self.Family = Family\r
def GetFamily(self):\r
return self.Family\r
- \r
+\r
def SetTagName(self, TagName):\r
self.TagName = TagName\r
def GetTagName(self):\r
return self.TagName\r
- \r
+\r
def SetToolCode(self, ToolCode):\r
self.ToolCode = ToolCode\r
def GetToolCode(self):\r
return self.ToolCode\r
- \r
+\r
def SetFeatureFlagExp(self, FeatureFlagExp):\r
self.FeatureFlagExp = FeatureFlagExp\r
def GetFeatureFlagExp(self):\r
return self.FeatureFlagExp\r
- \r
+\r
def SetHeaderString(self, HeaderString):\r
self.HeaderString = HeaderString\r
def GetHeaderString(self):\r
self.TailString = TailString\r
def GetTailString(self):\r
return self.TailString\r
- \r
+\r
def SetSupArchList(self, SupArchList):\r
self.SupArchList = SupArchList\r
def GetSupArchList(self):\r
- return self.SupArchList \r
+ return self.SupArchList\r
##\r
#\r
#\r
def __init__(self):\r
self.Sources = Sdict()\r
InfSectionCommonDef.__init__(self)\r
- \r
+\r
def SetSources(self, SourceList, Arch = None):\r
__SupArchList = []\r
for ArchItem in Arch:\r
#\r
# Validate Arch\r
- # \r
+ #\r
if (ArchItem == '' or ArchItem is None):\r
- ArchItem = 'COMMON' \r
- __SupArchList.append(ArchItem) \r
+ ArchItem = 'COMMON'\r
+ __SupArchList.append(ArchItem)\r
\r
for Item in SourceList:\r
ItemObj = InfSourcesItemObject()\r
CurrentLineOfItem = Item[2]\r
- Item = Item[0] \r
- \r
+ Item = Item[0]\r
+\r
ItemObj = GenSourceInstance(Item, CurrentLineOfItem, ItemObj)\r
- \r
- ItemObj.SetSupArchList(__SupArchList) \r
- \r
+\r
+ ItemObj.SetSupArchList(__SupArchList)\r
+\r
if (ItemObj) in self.Sources:\r
SourceContent = self.Sources[ItemObj]\r
SourceContent.append(ItemObj)\r
SourceContent = []\r
SourceContent.append(ItemObj)\r
self.Sources[ItemObj] = SourceContent\r
- \r
+\r
return True\r
- \r
+\r
def GetSources(self):\r
return self.Sources\r