]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - BaseTools/Source/Python/GenFds/UiSection.py
BaseTools: Replace StandardError with Expression
[mirror_edk2.git] / BaseTools / Source / Python / GenFds / UiSection.py
... / ...
CommitLineData
1## @file\r
2# process UI section generation\r
3#\r
4# Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.<BR>\r
5#\r
6# This program and the accompanying materials\r
7# are licensed and made available under the terms and conditions of the BSD License\r
8# which accompanies this distribution. The full text of the license may be found at\r
9# http://opensource.org/licenses/bsd-license.php\r
10#\r
11# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13#\r
14\r
15##\r
16# Import Modules\r
17#\r
18import Section\r
19from Ffs import Ffs\r
20import subprocess\r
21import Common.LongFilePathOs as os\r
22from GenFdsGlobalVariable import GenFdsGlobalVariable\r
23from CommonDataClass.FdfClass import UiSectionClassObject\r
24from Common.LongFilePathSupport import OpenLongFilePath as open\r
25from Common.DataType import *\r
26\r
27## generate UI section\r
28#\r
29#\r
30class UiSection (UiSectionClassObject):\r
31\r
32 ## The constructor\r
33 #\r
34 # @param self The object pointer\r
35 #\r
36 def __init__(self):\r
37 UiSectionClassObject.__init__(self)\r
38\r
39 ## GenSection() method\r
40 #\r
41 # Generate UI section\r
42 #\r
43 # @param self The object pointer\r
44 # @param OutputPath Where to place output file\r
45 # @param ModuleName Which module this section belongs to\r
46 # @param SecNum Index of section\r
47 # @param KeyStringList Filter for inputs of section generation\r
48 # @param FfsInf FfsInfStatement object that contains this section data\r
49 # @param Dict dictionary contains macro and its value\r
50 # @retval tuple (Generated file name, section alignment)\r
51 #\r
52 def GenSection(self, OutputPath, ModuleName, SecNum, KeyStringList, FfsInf=None, Dict={}, IsMakefile = False):\r
53 #\r
54 # Prepare the parameter of GenSection\r
55 #\r
56 if FfsInf is not None:\r
57 self.Alignment = FfsInf.__ExtendMacro__(self.Alignment)\r
58 self.StringData = FfsInf.__ExtendMacro__(self.StringData)\r
59 self.FileName = FfsInf.__ExtendMacro__(self.FileName)\r
60\r
61 OutputFile = os.path.join(OutputPath, ModuleName + SUP_MODULE_SEC + SecNum + Ffs.SectionSuffix.get(BINARY_FILE_TYPE_UI))\r
62\r
63 if self.StringData is not None :\r
64 NameString = self.StringData\r
65 elif self.FileName is not None:\r
66 FileNameStr = GenFdsGlobalVariable.ReplaceWorkspaceMacro(self.FileName)\r
67 FileNameStr = GenFdsGlobalVariable.MacroExtend(FileNameStr, Dict)\r
68 FileObj = open(FileNameStr, 'r')\r
69 NameString = FileObj.read()\r
70 FileObj.close()\r
71 else:\r
72 NameString = ''\r
73 GenFdsGlobalVariable.GenerateSection(OutputFile, None, 'EFI_SECTION_USER_INTERFACE', Ui=NameString, IsMakefile=IsMakefile)\r
74\r
75 OutputFileList = []\r
76 OutputFileList.append(OutputFile)\r
77 return OutputFileList, self.Alignment\r