Check In tool source code based on Build tool project revision r1655.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8964 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
116
BaseTools/Source/Python/fpd2dsc/fpd2dsc.py
Normal file
116
BaseTools/Source/Python/fpd2dsc/fpd2dsc.py
Normal file
@ -0,0 +1,116 @@
|
||||
## @file
|
||||
# Convert an XML-based FPD file to a text-based DSC file.
|
||||
#
|
||||
# Copyright (c) 2007, 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 Modules
|
||||
#
|
||||
import os, re, sys, xml.dom.minidom #XmlRoutines, EdkIIWorkspace
|
||||
from LoadFpd import LoadFpd
|
||||
from StoreDsc import StoreDsc
|
||||
from optparse import OptionParser
|
||||
|
||||
# Version and Copyright
|
||||
__version_number__ = "1.0"
|
||||
__version__ = "%prog Version " + __version_number__
|
||||
__copyright__ = "Copyright (c) 2007, Intel Corporation All rights reserved."
|
||||
|
||||
## Parse command line options
|
||||
#
|
||||
# Using standard Python module optparse to parse command line option of this tool.
|
||||
#
|
||||
# @retval Options A optparse.Values object containing the parsed options
|
||||
# @retval Args All the arguments got from the command line
|
||||
#
|
||||
def MyOptionParser():
|
||||
""" Argument Parser """
|
||||
usage = "%prog [options] input_filename"
|
||||
parser = OptionParser(usage=usage,description=__copyright__,version="%prog " + str(__version_number__))
|
||||
parser.add_option("-o", "--output", dest="outfile", help="Specific Name of the DSC file to create, otherwise it is the FPD filename with the extension repalced.")
|
||||
parser.add_option("-a", "--auto", action="store_true", dest="autowrite", default=False, help="Automatically create output files and write the DSC file")
|
||||
parser.add_option("-q", "--quiet", action="store_const", const=0, dest="verbose", help="Do not print any messages, just return either 0 for succes or 1 for failure")
|
||||
parser.add_option("-v", "--verbose", action="count", dest="verbose", help="Do not print any messages, just return either 0 for succes or 1 for failure")
|
||||
parser.add_option("-d", "--debug", action="store_true", dest="debug", default=False, help="Enable printing of debug messages.")
|
||||
parser.add_option("-w", "--workspace", dest="workspace", default=str(os.environ.get('WORKSPACE')), help="Specify workspace directory.")
|
||||
(options, args) = parser.parse_args(sys.argv[1:])
|
||||
|
||||
return options,args
|
||||
|
||||
## Entrance method
|
||||
#
|
||||
# This method mainly dispatch specific methods per the command line options.
|
||||
# If no error found, return zero value so the caller of this tool can know
|
||||
# if it's executed successfully or not.
|
||||
#
|
||||
# @retval 0 Tool was successful
|
||||
# @retval 1 Tool failed
|
||||
#
|
||||
def Main():
|
||||
global Options
|
||||
global Args
|
||||
global WorkSpace
|
||||
Options,Args = MyOptionParser()
|
||||
|
||||
WorkSpace = ""
|
||||
#print Options.workspace
|
||||
if (Options.workspace == None):
|
||||
print "ERROR: E0000: WORKSPACE not defined.\n Please set the WORKSPACE environment variable to the location of the EDK II install directory."
|
||||
sys.exit(1)
|
||||
else:
|
||||
WorkSpace = Options.workspace
|
||||
if (Options.debug):
|
||||
print "Using Workspace:", WorkSpace
|
||||
try:
|
||||
Options.verbose +=1
|
||||
except:
|
||||
Options.verbose = 1
|
||||
pass
|
||||
|
||||
InputFile = ""
|
||||
if Args == []:
|
||||
print "usage:" "%prog [options] input_filename"
|
||||
else:
|
||||
InputFile = Args[0]
|
||||
#print InputFile
|
||||
if InputFile != "":
|
||||
FileName = InputFile
|
||||
if ((Options.verbose > 1) | (Options.autowrite)):
|
||||
print "FileName:",InputFile
|
||||
else:
|
||||
print "ERROR: E0001 - You must specify an input filename"
|
||||
sys.exit(1)
|
||||
|
||||
if (Options.outfile):
|
||||
OutputFile = Options.outfile
|
||||
else:
|
||||
OutputFile = FileName.replace('.fpd', '.dsc')
|
||||
|
||||
if ((Options.verbose > 2) or (Options.debug)):
|
||||
print "Output Filename:", OutputFile
|
||||
|
||||
try:
|
||||
Platform = LoadFpd(FileName)
|
||||
StoreDsc(OutputFile, Platform)
|
||||
return 0
|
||||
except Exception, e:
|
||||
print e
|
||||
return 1
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(Main())
|
||||
#pass
|
||||
#global Options
|
||||
#global Args
|
||||
#Options,Args = MyOptionParser()
|
||||
|
||||
#Main()
|
||||
#sys.exit(0)
|
Reference in New Issue
Block a user