From: Ed Maste Date: Sun, 8 Mar 2015 16:24:30 +0000 (+0000) Subject: Fix whitespace on Python SWIG wrapper X-Git-Tag: llvmorg-3.7.0-rc1~9850 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8f3c0cd1bacab79154c84b8891f4afa80925ba2c;p=platform%2Fupstream%2Fllvm.git Fix whitespace on Python SWIG wrapper llvm-svn: 231600 --- diff --git a/lldb/scripts/buildSwigWrapperClasses.py b/lldb/scripts/buildSwigWrapperClasses.py index d0668cc..0bd39d4 100644 --- a/lldb/scripts/buildSwigWrapperClasses.py +++ b/lldb/scripts/buildSwigWrapperClasses.py @@ -1,51 +1,51 @@ """ SWIG creates Python C++ Script Bridge wrapper code Windows/LINUX/OSX platform - -------------------------------------------------------------------------- - File: buildSwigWrapperClasses.py - - Overview: Python script(s) to build the SWIG Python C++ Script - Bridge wrapper code on the Windows/LINUX/OSX platform. - The Python scripts are equivalent to the shell script (.sh) - files. - For each scripting language lib lldb supports, we need to - create the appropriate Script Bridge wrapper classes for - that language so that users can call Script Bridge - functions from within the script interpreter. - We use SWIG to help create the appropriate wrapper - classes/functions for the scripting language. In some - cases the file generated by SWIG may need some tweaking - before it is completely ready to use. - - Environment: OS: Windows Vista or newer,LINUX,OSX. - IDE: Visual Studio 2013 Plugin Python Tools (PTVS) - Script: Python 2.6/2.7.5 x64 - Other: SWIG 2.0.11 - - Gotchas: For Windows OS it is assumed the SWIG executable can be - found in the %PATH% environmental variable. - - Copyright: None. - -------------------------------------------------------------------------- - + -------------------------------------------------------------------------- + File: buildSwigWrapperClasses.py + + Overview: Python script(s) to build the SWIG Python C++ Script + Bridge wrapper code on the Windows/LINUX/OSX platform. + The Python scripts are equivalent to the shell script (.sh) + files. + For each scripting language lib lldb supports, we need to + create the appropriate Script Bridge wrapper classes for + that language so that users can call Script Bridge + functions from within the script interpreter. + We use SWIG to help create the appropriate wrapper + classes/functions for the scripting language. In some + cases the file generated by SWIG may need some tweaking + before it is completely ready to use. + + Environment: OS: Windows Vista or newer,LINUX,OSX. + IDE: Visual Studio 2013 Plugin Python Tools (PTVS) + Script: Python 2.6/2.7.5 x64 + Other: SWIG 2.0.11 + + Gotchas: For Windows OS it is assumed the SWIG executable can be + found in the %PATH% environmental variable. + + Copyright: None. + -------------------------------------------------------------------------- + """ # Python modules: -import sys # Provide argument parsing -import os # Provide directory and file handling +import sys # Provide argument parsing +import os # Provide directory and file handling # Third party modules: # In-house modules: -import utilsArgsParse # Parse and validate this script's input arguments -import utilsOsType # Determine the OS type this script is running on -import utilsDebug # Debug Python scripts +import utilsArgsParse # Parse and validate this script's input arguments +import utilsOsType # Determine the OS type this script is running on +import utilsDebug # Debug Python scripts # Instantiations: -gbDbgVerbose = False; # True = Turn on script function tracing, False = off. -gbDbgFlag = False; # Global debug mode flag, set by input parameter - # --dbgFlag. True = operate in debug mode. -gbMakeFileFlag = False; # True = yes called from makefile system, False = not. -gbSwigGenDepFileFlag = False; # True = SWIG generate a dependency file. +gbDbgVerbose = False; # True = Turn on script function tracing, False = off. +gbDbgFlag = False; # Global debug mode flag, set by input parameter + # --dbgFlag. True = operate in debug mode. +gbMakeFileFlag = False; # True = yes called from makefile system, False = not. +gbSwigGenDepFileFlag = False; # True = SWIG generate a dependency file. # User facing text: strMsgErrorNoMain = "Program called by another Python script not allowed"; @@ -67,29 +67,29 @@ Python script(s) to build the SWIG Python C++ Script \n\ Bridge wrapper code on various platforms. The Python \n\ scripts are equivalent to the shell script (.sh) files \n\ run on others platforms.\n\ -Args: -h (optional) Print help information on this program.\n\ - -d (optional) Determines whether or not this script\n\ - outputs additional information when running.\n\ - -m (optional) Specify called from Makefile system.\n\ - -M (optional) Specify want SWIG to generate a dependency \n\ - file.\n\ - --srcRoot= The root of the lldb source tree.\n\ - --targetDir= Where the lldb framework/shared library gets put.\n\ - --cfgBldDir= (optional) Where the build-swig-Python-LLDB.py program \n\ - will put the lldb.py file it generated from running\n\ - SWIG.\n\ - --prefix= (optional) Is the root directory used to determine where\n\ - third-party modules for scripting languages should\n\ - be installed. Where non-Darwin systems want to put\n\ - the .py and .so files so that Python can find them\n\ - automatically. Python install directory.\n\ - --argsFile= The args are read from a file instead of the\n\ - command line. Other command line args are ignored.\n\ - --swigExecutable= (optional) Full path of swig executable.\n\ +Args: -h (optional) Print help information on this program.\n\ + -d (optional) Determines whether or not this script\n\ + outputs additional information when running.\n\ + -m (optional) Specify called from Makefile system.\n\ + -M (optional) Specify want SWIG to generate a dependency \n\ + file.\n\ + --srcRoot= The root of the lldb source tree.\n\ + --targetDir= Where the lldb framework/shared library gets put.\n\ + --cfgBldDir= (optional) Where the build-swig-Python-LLDB.py program \n\ + will put the lldb.py file it generated from running\n\ + SWIG.\n\ + --prefix= (optional) Is the root directory used to determine where\n\ + third-party modules for scripting languages should\n\ + be installed. Where non-Darwin systems want to put\n\ + the .py and .so files so that Python can find them\n\ + automatically. Python install directory.\n\ + --argsFile= The args are read from a file instead of the\n\ + command line. Other command line args are ignored.\n\ + --swigExecutable= (optional) Full path of swig executable.\n\ \n\ Usage:\n\ - buildSwigWrapperClasses.py --srcRoot=ADirPath --targetDir=ADirPath\n\ - --cfgBldDir=ADirPath --prefix=ADirPath --swigExecutable=ADirPath -m -d\n\ + buildSwigWrapperClasses.py --srcRoot=ADirPath --targetDir=ADirPath\n\ + --cfgBldDir=ADirPath --prefix=ADirPath --swigExecutable=ADirPath -m -d\n\ \n\ "; #TAG_PROGRAM_HELP_INFO strHelpInfoExtraWindows = "\ @@ -102,484 +102,484 @@ directories '/usr/bin', '/usr/local/bin'. If not found the script will \n\ abort."; #++--------------------------------------------------------------------------- -# Details: Retrieve the script -h help information based on the OS currently. -# Args: None. -# Returns: Str - Help Text. -# Throws: None. +# Details: Retrieve the script -h help information based on the OS currently. +# Args: None. +# Returns: Str - Help Text. +# Throws: None. #-- def get_help_information(): - strHelpMsg = strHelpInfo; - - eOSType = utilsOsType.determine_os_type(); - if eOSType == utilsOsType.EnumOsType.Windows: - strHelpMsg += strHelpInfoExtraWindows; - else: - strHelpMsg += strHelpInfoExtraNonWindows; - - return strHelpMsg; + strHelpMsg = strHelpInfo; + + eOSType = utilsOsType.determine_os_type(); + if eOSType == utilsOsType.EnumOsType.Windows: + strHelpMsg += strHelpInfoExtraWindows; + else: + strHelpMsg += strHelpInfoExtraNonWindows; + + return strHelpMsg; #++--------------------------------------------------------------------------- -# Details: Exit the program on success. Called on program successfully done -# its work. Returns a status result to the caller. -# Args: vnResult - (R) 0 or greater indicating success. -# vMsg - (R) Success message if any to show success to user. -# Returns: None. -# Throws: None. +# Details: Exit the program on success. Called on program successfully done +# its work. Returns a status result to the caller. +# Args: vnResult - (R) 0 or greater indicating success. +# vMsg - (R) Success message if any to show success to user. +# Returns: None. +# Throws: None. #-- def program_exit_success( vnResult, vMsg ): - strMsg = ""; - - if vMsg.__len__() == 0: - strMsg = "%s (%d)" % (strExitMsgSuccess, vnResult); - else: - strMsg = "%s: %s (%d)" % (strExitMsgSuccess, vMsg, vnResult); - print strMsg; - - sys.exit( vnResult ); + strMsg = ""; + + if vMsg.__len__() == 0: + strMsg = "%s (%d)" % (strExitMsgSuccess, vnResult); + else: + strMsg = "%s: %s (%d)" % (strExitMsgSuccess, vMsg, vnResult); + print strMsg; + + sys.exit( vnResult ); #++--------------------------------------------------------------------------- -# Details: Exit the program with error. Called on exit program failed its -# task. Returns a status result to the caller. -# Args: vnResult - (R) A negative number indicating error condition. -# vMsg - (R) Error message to show to user. -# Returns: None. -# Throws: None. +# Details: Exit the program with error. Called on exit program failed its +# task. Returns a status result to the caller. +# Args: vnResult - (R) A negative number indicating error condition. +# vMsg - (R) Error message to show to user. +# Returns: None. +# Throws: None. #-- def program_exit_on_failure( vnResult, vMsg ): - print "%s%s (%d)" % (strExitMsgError, vMsg, vnResult); - sys.exit( vnResult ); + print "%s%s (%d)" % (strExitMsgError, vMsg, vnResult); + sys.exit( vnResult ); #++--------------------------------------------------------------------------- -# Details: Exit the program return a exit result number and print a message. -# Positive numbers and zero are returned for success other error -# occurred. -# Args: vnResult - (R) A -ve (an error), 0 or +ve number (ok or status). -# vMsg - (R) Error message to show to user. -# Returns: None. -# Throws: None. +# Details: Exit the program return a exit result number and print a message. +# Positive numbers and zero are returned for success other error +# occurred. +# Args: vnResult - (R) A -ve (an error), 0 or +ve number (ok or status). +# vMsg - (R) Error message to show to user. +# Returns: None. +# Throws: None. #-- def program_exit( vnResult, vMsg ): - if vnResult >= 0: - program_exit_success( vnResult, vMsg ); - else: - program_exit_on_failure( vnResult, vMsg ); - + if vnResult >= 0: + program_exit_success( vnResult, vMsg ); + else: + program_exit_on_failure( vnResult, vMsg ); + #++--------------------------------------------------------------------------- -# Details: Dump input parameters. -# Args: vDictArgs - (R) Map of input args to value. -# Returns: None. -# Throws: None. +# Details: Dump input parameters. +# Args: vDictArgs - (R) Map of input args to value. +# Returns: None. +# Throws: None. #-- def print_out_input_parameters( vDictArgs ): - for arg, val in vDictArgs.iteritems(): - strEqs = ""; - strQ = ""; - if val.__len__() != 0: - strEqs = " ="; - strQ = "\""; - print "%s%s%s %s%s%s\n" % (strParameter, arg, strEqs, strQ, val, strQ); + for arg, val in vDictArgs.iteritems(): + strEqs = ""; + strQ = ""; + if val.__len__() != 0: + strEqs = " ="; + strQ = "\""; + print "%s%s%s %s%s%s\n" % (strParameter, arg, strEqs, strQ, val, strQ); #++--------------------------------------------------------------------------- -# Details: Locate the lldb.swig file. No checking for path correctness is -# done here as assumed all values checked already. Path is adapted -# to be compatible with the platform file system. -# Args: vstrSrcRoot - (R) Directory path to the lldb source root. -# veOSType - (R) Current OS type enumeration. -# Returns: Bool - True = Success. -# - False = Failure file not found. -# Str - Error message. -# Throws: None. +# Details: Locate the lldb.swig file. No checking for path correctness is +# done here as assumed all values checked already. Path is adapted +# to be compatible with the platform file system. +# Args: vstrSrcRoot - (R) Directory path to the lldb source root. +# veOSType - (R) Current OS type enumeration. +# Returns: Bool - True = Success. +# - False = Failure file not found. +# Str - Error message. +# Throws: None. #-- def check_lldb_swig_file_exists( vstrSrcRoot, veOSType ): - dbg = utilsDebug.CDebugFnVerbose( "check_lldb_swig_file_exists()" ); - bOk = True; - strStatusMsg = ""; - strSwigFilePathName = "/scripts/lldb.swig"; - - strFullPath = os.path.normcase( vstrSrcRoot + strSwigFilePathName ); - bOk = os.path.isfile( strFullPath ); - if bOk: - if gbDbgFlag: - print strSwigFileFound; - else: - strStatusMsg = strSwigFileFoundNotFound % strFullPath; - - return (bOk, strStatusMsg); + dbg = utilsDebug.CDebugFnVerbose( "check_lldb_swig_file_exists()" ); + bOk = True; + strStatusMsg = ""; + strSwigFilePathName = "/scripts/lldb.swig"; + + strFullPath = os.path.normcase( vstrSrcRoot + strSwigFilePathName ); + bOk = os.path.isfile( strFullPath ); + if bOk: + if gbDbgFlag: + print strSwigFileFound; + else: + strStatusMsg = strSwigFileFoundNotFound % strFullPath; + + return (bOk, strStatusMsg); #++--------------------------------------------------------------------------- -# Details: Locate SWIG sub script language directory and the script within -# and execute SWIG for that script language. -# Args: vStrScriptLang - (R) Name of the script language to build. -# vSwigBuildFileName - (R) Prefix file name to build full name. -# vDictArgs - (R) Program input parameters. -# Returns: Int - 0 = Success, < 0 some error condition. -# Str - Error message. -# Throws: None. +# Details: Locate SWIG sub script language directory and the script within +# and execute SWIG for that script language. +# Args: vStrScriptLang - (R) Name of the script language to build. +# vSwigBuildFileName - (R) Prefix file name to build full name. +# vDictArgs - (R) Program input parameters. +# Returns: Int - 0 = Success, < 0 some error condition. +# Str - Error message. +# Throws: None. #-- def run_swig( vStrScriptLang, vSwigBuildFileName, vDictArgs ): - dbg = utilsDebug.CDebugFnVerbose( "run_swig()" ); - nResult = 0; - strStatusMsg = ""; - strScriptFile = vSwigBuildFileName % vStrScriptLang; - strScriptFileDir = "%s%s/%s" % (vDictArgs[ "--srcRoot" ], "/scripts", - vStrScriptLang); - strScriptFilePath = "%s/%s" % (strScriptFileDir, strScriptFile); - - # Check for the existence of the script file - strPath = os.path.normcase( strScriptFilePath ); - bOk = os.path.exists( strPath ); - if bOk == False: - strDir = os.path.normcase( strScriptFileDir ); - strStatusMsg = strSwigScriptNotFound % (strScriptFile, strDir); - return (-9, strStatusMsg); - - if gbDbgFlag: - print strSwigScriptLangFound % vStrScriptLang; - print strSwigExecuteMsg % vStrScriptLang; - - # Change where Python looks for our modules - strDir = os.path.normcase( strScriptFileDir ); - sys.path.append( strDir ); - - # Execute the specific language script - dictArgs = vDictArgs; # Remove any args not required before passing on - strModuleName = strScriptFile[ : strScriptFile.__len__() - 3 ]; - module = __import__( strModuleName ); - nResult, strStatusMsg = module.main( dictArgs ); - - # Revert sys path - sys.path.remove( strDir ); - - return (nResult, strStatusMsg); + dbg = utilsDebug.CDebugFnVerbose( "run_swig()" ); + nResult = 0; + strStatusMsg = ""; + strScriptFile = vSwigBuildFileName % vStrScriptLang; + strScriptFileDir = "%s%s/%s" % (vDictArgs[ "--srcRoot" ], "/scripts", + vStrScriptLang); + strScriptFilePath = "%s/%s" % (strScriptFileDir, strScriptFile); + + # Check for the existence of the script file + strPath = os.path.normcase( strScriptFilePath ); + bOk = os.path.exists( strPath ); + if bOk == False: + strDir = os.path.normcase( strScriptFileDir ); + strStatusMsg = strSwigScriptNotFound % (strScriptFile, strDir); + return (-9, strStatusMsg); + + if gbDbgFlag: + print strSwigScriptLangFound % vStrScriptLang; + print strSwigExecuteMsg % vStrScriptLang; + + # Change where Python looks for our modules + strDir = os.path.normcase( strScriptFileDir ); + sys.path.append( strDir ); + + # Execute the specific language script + dictArgs = vDictArgs; # Remove any args not required before passing on + strModuleName = strScriptFile[ : strScriptFile.__len__() - 3 ]; + module = __import__( strModuleName ); + nResult, strStatusMsg = module.main( dictArgs ); + + # Revert sys path + sys.path.remove( strDir ); + + return (nResult, strStatusMsg); #++--------------------------------------------------------------------------- -# Details: Step through each SWIG sub directory script language supported -# type and execute SWIG to build wrapper code based on that language. -# If an error occurs for a build this function will return with an -# error and not continue with proceed script builds. -# For each scripting language, make sure the build script for that -# language exists. -# For now the only language we support is Python, but we expect this -# to change. -# Args: vDictArgs - (R) Program input parameters. -# Returns: Int - 0 = Success, < 0 some error condition. -# Str - Error message. -# Throws: None. +# Details: Step through each SWIG sub directory script language supported +# type and execute SWIG to build wrapper code based on that language. +# If an error occurs for a build this function will return with an +# error and not continue with proceed script builds. +# For each scripting language, make sure the build script for that +# language exists. +# For now the only language we support is Python, but we expect this +# to change. +# Args: vDictArgs - (R) Program input parameters. +# Returns: Int - 0 = Success, < 0 some error condition. +# Str - Error message. +# Throws: None. #-- def run_swig_for_each_script_supported( vDictArgs ): - dbg = utilsDebug.CDebugFnVerbose( "run_swig_for_each_script_supported()" ); - nResult = 0; - strStatusMsg = ""; - strSwigScriptDir = vDictArgs[ "--srcRoot" ] + "/scripts"; - strSwigBuildFileName = "buildSwig%s.py"; - - # Check for the existence of the SWIG scripts folder - strScriptsDir = os.path.normcase( strSwigScriptDir ); - bOk = os.path.exists( strScriptsDir ); - if bOk == False: - return (-8, strSwigScriptDirNotFound); - - # Look for any script language directories to build for - listDirs = []; - nDepth = 1; - for strPath, listDirs, listFiles in os.walk( strSwigScriptDir ): - nDepth = nDepth - 1; - if nDepth == 0: - break; - - if gbDbgFlag: - print strSwigScriptLangsFound, - for dir in listDirs: - print dir, - print "\n"; - - # Iterate script directory find any script language directories - for scriptLang in listDirs: - dbg.dump_text( "Executing language script for \'%s\'" % scriptLang ); - nResult, strStatusMsg = run_swig( scriptLang, strSwigBuildFileName, - vDictArgs ); - if nResult < 0: - break; - - if nResult < 0: - strTmp = strSwigExecuteError % scriptLang; - strTmp += strStatusMsg; - strStatusMsg = strTmp; - - return (nResult, strStatusMsg); - + dbg = utilsDebug.CDebugFnVerbose( "run_swig_for_each_script_supported()" ); + nResult = 0; + strStatusMsg = ""; + strSwigScriptDir = vDictArgs[ "--srcRoot" ] + "/scripts"; + strSwigBuildFileName = "buildSwig%s.py"; + + # Check for the existence of the SWIG scripts folder + strScriptsDir = os.path.normcase( strSwigScriptDir ); + bOk = os.path.exists( strScriptsDir ); + if bOk == False: + return (-8, strSwigScriptDirNotFound); + + # Look for any script language directories to build for + listDirs = []; + nDepth = 1; + for strPath, listDirs, listFiles in os.walk( strSwigScriptDir ): + nDepth = nDepth - 1; + if nDepth == 0: + break; + + if gbDbgFlag: + print strSwigScriptLangsFound, + for dir in listDirs: + print dir, + print "\n"; + + # Iterate script directory find any script language directories + for scriptLang in listDirs: + dbg.dump_text( "Executing language script for \'%s\'" % scriptLang ); + nResult, strStatusMsg = run_swig( scriptLang, strSwigBuildFileName, + vDictArgs ); + if nResult < 0: + break; + + if nResult < 0: + strTmp = strSwigExecuteError % scriptLang; + strTmp += strStatusMsg; + strStatusMsg = strTmp; + + return (nResult, strStatusMsg); + #++--------------------------------------------------------------------------- -# Details: Dummy function - system unknown. Function should not be called. -# Args: vDictArgs - (R) Program input parameters. -# Returns: Bool - False = Program logic error. -# Str - Error message. -# Throws: None. +# Details: Dummy function - system unknown. Function should not be called. +# Args: vDictArgs - (R) Program input parameters. +# Returns: Bool - False = Program logic error. +# Str - Error message. +# Throws: None. #-- def check_lldb_swig_executable_file_exists_Unknown( vDictArgs ): - dbg = utilsDebug.CDebugFnVerbose( "check_lldb_swig_executable_file_exists_Unknown()" ); - # Do nothing - return (False, strMsgErrorOsTypeUnknown); - + dbg = utilsDebug.CDebugFnVerbose( "check_lldb_swig_executable_file_exists_Unknown()" ); + # Do nothing + return (False, strMsgErrorOsTypeUnknown); + #++--------------------------------------------------------------------------- -# Details: Locate the SWIG executable file in a Windows system. Several hard -# coded predetermined possible file path locations are searched. -# (This is good candidate for a derived class object) -# Args: vDictArgs - (W) Program input parameters. -# Returns: Bool - True = Success. -# - False = Failure file not found. -# Str - Error message. -# Throws: None. +# Details: Locate the SWIG executable file in a Windows system. Several hard +# coded predetermined possible file path locations are searched. +# (This is good candidate for a derived class object) +# Args: vDictArgs - (W) Program input parameters. +# Returns: Bool - True = Success. +# - False = Failure file not found. +# Str - Error message. +# Throws: None. #-- def check_lldb_swig_executable_file_exists_Windows( vDictArgs ): - dbg = utilsDebug.CDebugFnVerbose( "check_lldb_swig_executable_file_exists_Windows()" ); - - # Will always be true as it assumed the path to SWIG executable will be - # in the OS system environmental variable %PATH%. Easier this way as the - # user may have renamed the directory and or custom path installation. - bExeFileFound = True; - vDictArgs[ "--swigExePath" ] = ""; - vDictArgs[ "--swigExeName" ] = "swig.exe"; - return (bExeFileFound, None); + dbg = utilsDebug.CDebugFnVerbose( "check_lldb_swig_executable_file_exists_Windows()" ); + + # Will always be true as it assumed the path to SWIG executable will be + # in the OS system environmental variable %PATH%. Easier this way as the + # user may have renamed the directory and or custom path installation. + bExeFileFound = True; + vDictArgs[ "--swigExePath" ] = ""; + vDictArgs[ "--swigExeName" ] = "swig.exe"; + return (bExeFileFound, None); #++--------------------------------------------------------------------------- -# Details: Locate the SWIG executable file in a Linux system. Several hard -# coded predetermined possible file path locations are searched. -# (This is good candidate for a derived class object) -# Args: vDictArgs - (W) Program input parameters. -# Returns: Bool - True = Success. -# - False = Failure file not found. -# Str - Error message. -# Throws: None. +# Details: Locate the SWIG executable file in a Linux system. Several hard +# coded predetermined possible file path locations are searched. +# (This is good candidate for a derived class object) +# Args: vDictArgs - (W) Program input parameters. +# Returns: Bool - True = Success. +# - False = Failure file not found. +# Str - Error message. +# Throws: None. #-- def check_lldb_swig_executable_file_exists_Linux( vDictArgs ): - dbg = utilsDebug.CDebugFnVerbose( "check_lldb_swig_executable_file_exists_Linux()" ); - bExeFileFound = False; - - strSwigExe = "swig"; - strSwigExePath = "/usr/bin"; - strExe = os.path.normcase( "%s/%s" % (strSwigExePath, strSwigExe) ); - if os.path.isfile( strExe ) and os.access( strExe, os.X_OK ): - bExeFileFound = True; - vDictArgs[ "--swigExePath" ] = os.path.normcase( strSwigExePath ); - vDictArgs[ "--swigExeName" ] = strSwigExe; - return (bExeFileFound, None); - - strSwigExePath = "/usr/local/bin"; - strExe = os.path.normcase( "%s/%s" % (strSwigExePath, strSwigExe) ); - if os.path.isfile( strExe ) and os.access( strExe, os.X_OK ): - bExeFileFound = True; - vDictArgs[ "--swigExePath" ] = os.path.normcase( strSwigExePath ); - vDictArgs[ "--swigExeName" ] = strSwigExe; - return (bExeFileFound, None); - - return (bExeFileFound, strSwigExeFileNotFound); + dbg = utilsDebug.CDebugFnVerbose( "check_lldb_swig_executable_file_exists_Linux()" ); + bExeFileFound = False; + + strSwigExe = "swig"; + strSwigExePath = "/usr/bin"; + strExe = os.path.normcase( "%s/%s" % (strSwigExePath, strSwigExe) ); + if os.path.isfile( strExe ) and os.access( strExe, os.X_OK ): + bExeFileFound = True; + vDictArgs[ "--swigExePath" ] = os.path.normcase( strSwigExePath ); + vDictArgs[ "--swigExeName" ] = strSwigExe; + return (bExeFileFound, None); + + strSwigExePath = "/usr/local/bin"; + strExe = os.path.normcase( "%s/%s" % (strSwigExePath, strSwigExe) ); + if os.path.isfile( strExe ) and os.access( strExe, os.X_OK ): + bExeFileFound = True; + vDictArgs[ "--swigExePath" ] = os.path.normcase( strSwigExePath ); + vDictArgs[ "--swigExeName" ] = strSwigExe; + return (bExeFileFound, None); + + return (bExeFileFound, strSwigExeFileNotFound); #++--------------------------------------------------------------------------- -# Details: Locate the SWIG executable file in a OSX system. Several hard -# coded predetermined possible file path locations are searched. -# (This is good candidate for a derived class object) -# Args: vDictArgs - (W) Program input parameters. -# Returns: Bool - True = Success. -# - False = Failure file not found. -# Str - Error message. -# Throws: None. +# Details: Locate the SWIG executable file in a OSX system. Several hard +# coded predetermined possible file path locations are searched. +# (This is good candidate for a derived class object) +# Args: vDictArgs - (W) Program input parameters. +# Returns: Bool - True = Success. +# - False = Failure file not found. +# Str - Error message. +# Throws: None. #-- def check_lldb_swig_executable_file_exists_Darwin( vDictArgs ): - dbg = utilsDebug.CDebugFnVerbose( "check_lldb_swig_executable_file_exists_Darwin()" ); - bExeFileFound = False; - # ToDo: Find the SWIG executable and add the path to the args dictionary - #vDictArgs.[ "--swigExePath" ] = "/usr/bin/swig"; - strStatusMsg = "Sorry function 'check_lldb_swig_executable_file_exists_Darwin()' is not implemented"; - - return (bExeFileFound, strStatusMsg); + dbg = utilsDebug.CDebugFnVerbose( "check_lldb_swig_executable_file_exists_Darwin()" ); + bExeFileFound = False; + # ToDo: Find the SWIG executable and add the path to the args dictionary + #vDictArgs.[ "--swigExePath" ] = "/usr/bin/swig"; + strStatusMsg = "Sorry function 'check_lldb_swig_executable_file_exists_Darwin()' is not implemented"; + + return (bExeFileFound, strStatusMsg); #++--------------------------------------------------------------------------- -# Details: Locate the SWIG executable file in a OSX system. Several hard -# coded predetermined possible file path locations are searched. -# (This is good candidate for a derived class object) -# Args: vDictArgs - (W) Program input parameters. -# Returns: Bool - True = Success. -# - False = Failure file not found. -# Str - Error message. -# Throws: None. +# Details: Locate the SWIG executable file in a OSX system. Several hard +# coded predetermined possible file path locations are searched. +# (This is good candidate for a derived class object) +# Args: vDictArgs - (W) Program input parameters. +# Returns: Bool - True = Success. +# - False = Failure file not found. +# Str - Error message. +# Throws: None. #-- def check_lldb_swig_executable_file_exists_FreeBSD( vDictArgs ): - dbg = utilsDebug.CDebugFnVerbose( "check_lldb_swig_executable_file_exists_FreeBSD()" ); - bExeFileFound = False; - # ToDo: Find the SWIG executable and add the path to the args dictionary - #vDictArgs.[ "--swigExePath" ] = "/usr/bin/swig"; - strStatusMsg = "Sorry function 'check_lldb_swig_executable_file_exists_FreeBSD()' is not implemented"; - - return (bExeFileFound, strStatusMsg); + dbg = utilsDebug.CDebugFnVerbose( "check_lldb_swig_executable_file_exists_FreeBSD()" ); + bExeFileFound = False; + # ToDo: Find the SWIG executable and add the path to the args dictionary + #vDictArgs.[ "--swigExePath" ] = "/usr/bin/swig"; + strStatusMsg = "Sorry function 'check_lldb_swig_executable_file_exists_FreeBSD()' is not implemented"; + + return (bExeFileFound, strStatusMsg); #++--------------------------------------------------------------------------- -# Details: Locate the SWIG executable file. Several hard coded predetermined -# possible file path locations are searched. -# Args: vDictArgs - (RW) Program input parameters. -# veOSType - (R) Current OS type enumeration. -# Returns: Bool - True = Success. -# - False = Failure file not found. -# Str - Error message. -# Throws: None. +# Details: Locate the SWIG executable file. Several hard coded predetermined +# possible file path locations are searched. +# Args: vDictArgs - (RW) Program input parameters. +# veOSType - (R) Current OS type enumeration. +# Returns: Bool - True = Success. +# - False = Failure file not found. +# Str - Error message. +# Throws: None. #-- def check_lldb_swig_executable_file_exists( vDictArgs, veOSType ): - dbg = utilsDebug.CDebugFnVerbose( "check_lldb_swig_executable_file_exists()" ); - bExeFileFound = False; - strStatusMsg = ""; - if "--swigExecutable" in vDictArgs: - vDictArgs["--swigExeName"] = os.path.basename(vDictArgs["--swigExecutable"]) - vDictArgs["--swigExePath"] = os.path.dirname(vDictArgs["--swigExecutable"]) - bExeFileFound = True - else: - from utilsOsType import EnumOsType; - switch = { EnumOsType.Unknown : check_lldb_swig_executable_file_exists_Unknown, - EnumOsType.Darwin : check_lldb_swig_executable_file_exists_Darwin, - EnumOsType.FreeBSD : check_lldb_swig_executable_file_exists_FreeBSD, - EnumOsType.Linux : check_lldb_swig_executable_file_exists_Linux, - EnumOsType.Windows : check_lldb_swig_executable_file_exists_Windows } - bExeFileFound, strStatusMsg = switch[ veOSType ]( vDictArgs ); - return (bExeFileFound, strStatusMsg); + dbg = utilsDebug.CDebugFnVerbose( "check_lldb_swig_executable_file_exists()" ); + bExeFileFound = False; + strStatusMsg = ""; + if "--swigExecutable" in vDictArgs: + vDictArgs["--swigExeName"] = os.path.basename(vDictArgs["--swigExecutable"]) + vDictArgs["--swigExePath"] = os.path.dirname(vDictArgs["--swigExecutable"]) + bExeFileFound = True + else: + from utilsOsType import EnumOsType; + switch = { EnumOsType.Unknown : check_lldb_swig_executable_file_exists_Unknown, + EnumOsType.Darwin : check_lldb_swig_executable_file_exists_Darwin, + EnumOsType.FreeBSD : check_lldb_swig_executable_file_exists_FreeBSD, + EnumOsType.Linux : check_lldb_swig_executable_file_exists_Linux, + EnumOsType.Windows : check_lldb_swig_executable_file_exists_Windows } + bExeFileFound, strStatusMsg = switch[ veOSType ]( vDictArgs ); + return (bExeFileFound, strStatusMsg); #++--------------------------------------------------------------------------- -# Details: Validate the arguments passed to the program. This function exits -# the program should error with the arguments be found. -# Args: vArgv - (R) List of arguments and values. -# Returns: Int - 0 = success, -ve = some failure. -# Dict - Map of arguments names to argument values -# Throws: None. +# Details: Validate the arguments passed to the program. This function exits +# the program should error with the arguments be found. +# Args: vArgv - (R) List of arguments and values. +# Returns: Int - 0 = success, -ve = some failure. +# Dict - Map of arguments names to argument values +# Throws: None. #-- def validate_arguments( vArgv ): - dbg = utilsDebug.CDebugFnVerbose( "validate_arguments()" ); - strMsg = ""; - dictArgs = {}; - nResult = 0; - strListArgs = "hdmM"; # Format "hiox:" = -h -i -o -x - listLongArgs = ["srcRoot=", "targetDir=", "cfgBldDir=", "prefix=", - "swigExecutable=", "argsFile"]; - dictArgReq = { "-h": "o", # o = optional, m = mandatory - "-d": "o", - "-m": "o", - "-M": "o", - "--srcRoot": "m", - "--targetDir": "m", - "--swigExecutable" : "o", - "--cfgBldDir": "o", - "--prefix": "o", - "--argsFile": "o" }; - strHelpInfo = get_help_information(); - - # Check for mandatory parameters - nResult, dictArgs, strMsg = utilsArgsParse.parse( vArgv, strListArgs, - listLongArgs, - dictArgReq, - strHelpInfo ); - if nResult < 0: - program_exit_on_failure( nResult, strMsg ); - - # User input -h for help - if nResult == 1: - program_exit_success( 0, strMsg ); - - return (nResult, dictArgs); + dbg = utilsDebug.CDebugFnVerbose( "validate_arguments()" ); + strMsg = ""; + dictArgs = {}; + nResult = 0; + strListArgs = "hdmM"; # Format "hiox:" = -h -i -o -x + listLongArgs = ["srcRoot=", "targetDir=", "cfgBldDir=", "prefix=", + "swigExecutable=", "argsFile"]; + dictArgReq = { "-h": "o", # o = optional, m = mandatory + "-d": "o", + "-m": "o", + "-M": "o", + "--srcRoot": "m", + "--targetDir": "m", + "--swigExecutable" : "o", + "--cfgBldDir": "o", + "--prefix": "o", + "--argsFile": "o" }; + strHelpInfo = get_help_information(); + + # Check for mandatory parameters + nResult, dictArgs, strMsg = utilsArgsParse.parse( vArgv, strListArgs, + listLongArgs, + dictArgReq, + strHelpInfo ); + if nResult < 0: + program_exit_on_failure( nResult, strMsg ); + + # User input -h for help + if nResult == 1: + program_exit_success( 0, strMsg ); + + return (nResult, dictArgs); #++--------------------------------------------------------------------------- -# Details: Program's main() with arguments passed in from the command line. -# Program either exits normally or with error from this function - -# top most level function. -# Args: vArgv - (R) List of arguments and values. -# Returns: None -# Throws: None. +# Details: Program's main() with arguments passed in from the command line. +# Program either exits normally or with error from this function - +# top most level function. +# Args: vArgv - (R) List of arguments and values. +# Returns: None +# Throws: None. #-- def main( vArgv ): - dbg = utilsDebug.CDebugFnVerbose( "main()" ); - bOk = False; - dictArgs = {}; - nResult = 0; - strMsg = ""; - - # The validate arguments fn will exit the program if tests fail - nResult, dictArgs = validate_arguments( vArgv ); - - eOSType = utilsOsType.determine_os_type(); - if eOSType == utilsOsType.EnumOsType.Unknown: - program_exit( -4, strMsgErrorOsTypeUnknown ); - - global gbDbgFlag; - gbDbgFlag = dictArgs.has_key( "-d" ); - if gbDbgFlag: - print_out_input_parameters( dictArgs ); - - # Check to see if we were called from the Makefile system. If we were, check - # if the caller wants SWIG to generate a dependency file. - # Not used in this program, but passed through to the language script file - # called by this program - global gbMakeFileFlag; - global gbSwigGenDepFileFlag; - gbMakeFileFlag = dictArgs.has_key( "-m" ); - gbSwigGenDepFileFlag = dictArgs.has_key( "-M" ); - - bOk, strMsg = check_lldb_swig_file_exists( dictArgs[ "--srcRoot" ], eOSType ); - if bOk == False: - program_exit( -3, strMsg ); - - bOk, strMsg = check_lldb_swig_executable_file_exists( dictArgs, eOSType ); - if bOk == False: - program_exit( -6, strMsg ); - - nResult, strMsg = run_swig_for_each_script_supported( dictArgs ); - - program_exit( nResult, strMsg ); + dbg = utilsDebug.CDebugFnVerbose( "main()" ); + bOk = False; + dictArgs = {}; + nResult = 0; + strMsg = ""; + + # The validate arguments fn will exit the program if tests fail + nResult, dictArgs = validate_arguments( vArgv ); + + eOSType = utilsOsType.determine_os_type(); + if eOSType == utilsOsType.EnumOsType.Unknown: + program_exit( -4, strMsgErrorOsTypeUnknown ); + + global gbDbgFlag; + gbDbgFlag = dictArgs.has_key( "-d" ); + if gbDbgFlag: + print_out_input_parameters( dictArgs ); + + # Check to see if we were called from the Makefile system. If we were, check + # if the caller wants SWIG to generate a dependency file. + # Not used in this program, but passed through to the language script file + # called by this program + global gbMakeFileFlag; + global gbSwigGenDepFileFlag; + gbMakeFileFlag = dictArgs.has_key( "-m" ); + gbSwigGenDepFileFlag = dictArgs.has_key( "-M" ); + + bOk, strMsg = check_lldb_swig_file_exists( dictArgs[ "--srcRoot" ], eOSType ); + if bOk == False: + program_exit( -3, strMsg ); + + bOk, strMsg = check_lldb_swig_executable_file_exists( dictArgs, eOSType ); + if bOk == False: + program_exit( -6, strMsg ); + + nResult, strMsg = run_swig_for_each_script_supported( dictArgs ); + + program_exit( nResult, strMsg ); #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- #TAG_PROGRAM_HELP_INFO -""" Details: Program main entry point. - - -------------------------------------------------------------------------- - Args: -h (optional) Print help information on this program. - -d (optional) Determines whether or not this script - outputs additional information when running. - -m (optional) Specify called from Makefile system. If given locate - the LLDBWrapPython.cpp in --srcRoot/source folder - else in the --targetDir folder. - -M (optional) Specify want SWIG to generate a dependency file. - --srcRoot= The root of the lldb source tree. - --targetDir= Where the lldb framework/shared library gets put. - --cfgBldDir= Where the buildSwigPythonLLDB.py program will - (optional) put the lldb.py file it generated from running - SWIG. - --prefix= Is the root directory used to determine where - (optional) third-party modules for scripting languages should - be installed. Where non-Darwin systems want to put - the .py and .so files so that Python can find them - automatically. Python install directory. - --argsFile= The args are read from a file instead of the - command line. Other command line args are ignored. - Usage: - buildSwigWrapperClasses.py --srcRoot=ADirPath --targetDir=ADirPath - --cfgBldDir=ADirPath --prefix=ADirPath --swigExecutable=ADirPath -m -d - - Results: 0 Success - -1 Error - invalid parameters passed. - -2 Error - incorrect number of mandatory parameters passed. - -3 Error - unable to locate lldb.swig file. - -4 Error - unable to determine OS type. - -5 Error - program called by another Python script not allowed. - -6 Error - unable to locate the swig executable file. - -7 Error - SWIG script execution failed. - -8 Error - unable to locate the SWIG scripts folder. - -9 Error - unable to locate the SWIG language script file. - -100+ - Error messages from the SWIG language script file. - -200+ - 200 +- the SWIG exit result. - -------------------------------------------------------------------------- - +""" Details: Program main entry point. + + -------------------------------------------------------------------------- + Args: -h (optional) Print help information on this program. + -d (optional) Determines whether or not this script + outputs additional information when running. + -m (optional) Specify called from Makefile system. If given locate + the LLDBWrapPython.cpp in --srcRoot/source folder + else in the --targetDir folder. + -M (optional) Specify want SWIG to generate a dependency file. + --srcRoot= The root of the lldb source tree. + --targetDir= Where the lldb framework/shared library gets put. + --cfgBldDir= Where the buildSwigPythonLLDB.py program will + (optional) put the lldb.py file it generated from running + SWIG. + --prefix= Is the root directory used to determine where + (optional) third-party modules for scripting languages should + be installed. Where non-Darwin systems want to put + the .py and .so files so that Python can find them + automatically. Python install directory. + --argsFile= The args are read from a file instead of the + command line. Other command line args are ignored. + Usage: + buildSwigWrapperClasses.py --srcRoot=ADirPath --targetDir=ADirPath + --cfgBldDir=ADirPath --prefix=ADirPath --swigExecutable=ADirPath -m -d + + Results: 0 Success + -1 Error - invalid parameters passed. + -2 Error - incorrect number of mandatory parameters passed. + -3 Error - unable to locate lldb.swig file. + -4 Error - unable to determine OS type. + -5 Error - program called by another Python script not allowed. + -6 Error - unable to locate the swig executable file. + -7 Error - SWIG script execution failed. + -8 Error - unable to locate the SWIG scripts folder. + -9 Error - unable to locate the SWIG language script file. + -100+ - Error messages from the SWIG language script file. + -200+ - 200 +- the SWIG exit result. + -------------------------------------------------------------------------- + """ # Called using "__main__" when not imported i.e. from the command line if __name__ == "__main__": - utilsDebug.CDebugFnVerbose.bVerboseOn = gbDbgVerbose; - dbg = utilsDebug.CDebugFnVerbose( "__main__" ); - main( sys.argv[ 1: ] ); + utilsDebug.CDebugFnVerbose.bVerboseOn = gbDbgVerbose; + dbg = utilsDebug.CDebugFnVerbose( "__main__" ); + main( sys.argv[ 1: ] ); else: - program_exit( -5, strMsgErrorNoMain ); + program_exit( -5, strMsgErrorNoMain );