## @file # This file is used to define common parser functions for meta-data # # Copyright (c) 2008, Intel Corporation. All rights reserved.
# 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 # http://opensource.org/licenses/bsd-license.php # # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. # import os from CommonDataClass.DataClass import * ## Get the inlcude path list for a source file # # 1. Find the source file belongs to which inf file # 2. Find the inf's package # 3. Return the include path list of the package # def GetIncludeListOfFile(WorkSpace, Filepath, Db): IncludeList = [] Filepath = os.path.normpath(Filepath) SqlCommand = """ select Value1, FullPath from Inf, File where Inf.Model = %s and Inf.BelongsToFile in( select distinct B.BelongsToFile from File as A left join Inf as B where A.ID = B.BelongsToFile and B.Model = %s and (A.Path || '%s' || B.Value1) = '%s') and Inf.BelongsToFile = File.ID""" \ % (MODEL_META_DATA_PACKAGE, MODEL_EFI_SOURCE_FILE, '\\', Filepath) RecordSet = Db.TblFile.Exec(SqlCommand) for Record in RecordSet: DecFullPath = os.path.normpath(os.path.join(WorkSpace, Record[0])) InfFullPath = os.path.normpath(os.path.join(WorkSpace, Record[1])) (DecPath, DecName) = os.path.split(DecFullPath) (InfPath, InfName) = os.path.split(InfFullPath) SqlCommand = """select Value1 from Dec where BelongsToFile = (select ID from File where FullPath = '%s') and Model = %s""" \ % (DecFullPath, MODEL_EFI_INCLUDE) NewRecordSet = Db.TblDec.Exec(SqlCommand) if InfPath not in IncludeList: IncludeList.append(InfPath) for NewRecord in NewRecordSet: IncludePath = os.path.normpath(os.path.join(DecPath, NewRecord[0])) if IncludePath not in IncludeList: IncludeList.append(IncludePath) return IncludeList ## Get the table list # # Search table file and find all small tables # def GetTableList(FileModelList, Table, Db): TableList = [] SqlCommand = """select ID from File where Model in %s""" % str(FileModelList) RecordSet = Db.TblFile.Exec(SqlCommand) for Record in RecordSet: TableName = Table + str(Record[0]) TableList.append(TableName) return TableList