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