[Lldb-commits] [lldb] r252244 - [swig] Start of pylint on python build scripts.
Bruce Mitchener via lldb-commits
lldb-commits at lists.llvm.org
Thu Nov 5 15:57:33 PST 2015
Author: brucem
Date: Thu Nov 5 17:57:33 2015
New Revision: 252244
URL: http://llvm.org/viewvc/llvm-project?rev=252244&view=rev
Log:
[swig] Start of pylint on python build scripts.
Summary:
This does a broad first pass on cleaning up a lot of the noise when
using pylint on these scripts. It mostly addresses issues of:
* Mixed tabs and spaces.
* Trailing whitespace.
* Semicolons where they aren't needed.
* Incorrect whitespace around () and [].
* Superfluous parentheses.
There will be subsequent patches with further changes that build
upon these.
Reviewers: zturner, domipheus
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D14375
Modified:
lldb/trunk/scripts/Python/buildSwigPython.py
lldb/trunk/scripts/Python/finishSwigPythonLLDB.py
lldb/trunk/scripts/Python/modify-python-lldb.py
lldb/trunk/scripts/buildSwigWrapperClasses.py
lldb/trunk/scripts/finishSwigWrapperClasses.py
lldb/trunk/scripts/utilsArgsParse.py
lldb/trunk/scripts/utilsDebug.py
lldb/trunk/scripts/utilsOsType.py
Modified: lldb/trunk/scripts/Python/buildSwigPython.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/Python/buildSwigPython.py?rev=252244&r1=252243&r2=252244&view=diff
==============================================================================
--- lldb/trunk/scripts/Python/buildSwigPython.py (original)
+++ lldb/trunk/scripts/Python/buildSwigPython.py Thu Nov 5 17:57:33 2015
@@ -1,798 +1,794 @@
""" Python SWIG wrapper creation script Windows/LINUX/OSX platform
- --------------------------------------------------------------------------
- File: buildSwigPython.py
+ --------------------------------------------------------------------------
+ File: buildSwigPython.py
+
+ Overview: Creates SWIG Python C++ Script Bridge wrapper code. This
+ script is called by build-swig-wrapper-classes.py in turn.
+
+ Gotchas: Python debug complied pythonXX_d.lib is required for SWIG
+ to build correct LLDBWrapperPython.cpp in order for Visual
+ Studio to compile successfully. The release version of the
+ Python lib will not work.
+ LLDB (dir) CMakeLists.txt uses windows environmental
+ variables $PYTHON_INCLUDE and $PYTHON_LIB to locate
+ Python files required for the build.
+
+ Copyright: None.
+ --------------------------------------------------------------------------
- Overview: Creates SWIG Python C++ Script Bridge wrapper code. This
- script is called by build-swig-wrapper-classes.py in turn.
-
- Gotchas: Python debug complied pythonXX_d.lib is required for SWIG
- to build correct LLDBWrapperPython.cpp in order for Visual
- Studio to compile successfully. The release version of the
- Python lib will not work.
- LLDB (dir) CMakeLists.txt uses windows environmental
- variables $PYTHON_INCLUDE and $PYTHON_LIB to locate
- Python files required for the build.
-
- Copyright: None.
- --------------------------------------------------------------------------
-
"""
# Python modules:
-import os # Provide directory and file handling, determine OS information
-import sys # sys.executable
-import time # Time access and conversions
-import subprocess # Call external programs
-import shutil # File handling
+import os # Provide directory and file handling, determine OS information
+import sys # sys.executable
+import subprocess # Call external programs
+import shutil # File handling
# Third party modules:
# In-house modules:
-import utilsOsType # Determine the OS type this script is running on
-import utilsDebug # Debug Python scripts
+import utilsOsType # Determine the OS type this script is running on
+import utilsDebug # Debug Python scripts
# User facing text:
strMsgLldbDisablePythonEnv = "Python build aborted as LLDB_DISABLE_PYTHON \
-environmental variable is defined";
+environmental variable is defined"
strMsgLldbDisableGccEnv = "Python build aborted as GCC_PREPROCESSOR_DEFINITIONS \
-environmental variable is defined";
-strMsgHdrFiles = "Header files are:";
-strMsgIFaceFiles = "SWIG interface files are";
-strErrMsgProgFail = "Program failure: ";
-strMsgFileNewrSwigOpFile = "\'%s\' is newer than \'%s\'\nSWIG file will need to be re-built";
-strMsgFileNotExist = "\'%s\' could not be found\nSWIG file will need to be re-built";
-strErrMsgOsTypeUnknown = "Unable to determine current OS type";
-strMsgNotNeedUpdate = "Everything is up-to-date";
-strMsgSwigNeedRebuild = "SWIG needs to be re-run";
+environmental variable is defined"
+strMsgHdrFiles = "Header files are:"
+strMsgIFaceFiles = "SWIG interface files are"
+strErrMsgProgFail = "Program failure: "
+strMsgFileNewrSwigOpFile = "\'%s\' is newer than \'%s\'\nSWIG file will need to be re-built"
+strMsgFileNotExist = "\'%s\' could not be found\nSWIG file will need to be re-built"
+strErrMsgOsTypeUnknown = "Unable to determine current OS type"
+strMsgNotNeedUpdate = "Everything is up-to-date"
+strMsgSwigNeedRebuild = "SWIG needs to be re-run"
strErrMsgSwigParamsMissing = "This script was not passed either '--swigExePath \
-or the '--swigExeName' argument. Both are required.";
-strMsgSwigExecute = "SWIG executing the following:\n\'%s'";
-strErrMsgSwigExecute = "SWIG failed: %s";
-strErrMsgPythonExecute = "Python script '%s' failed: %s";
-strMsgSwigNoGenDep = "SWIG ran with no generated dependencies, script exit early";
-strMsgSwigGenDep = "SWIG ran and generated dependencies, script exit early, deleted '%s'";
-strErrMsgFrameWkPyDirNotExist = "Unable to find the LLDB. Framework directory is '%s'";
-strMsgFoundLldbFrameWkDir = "Found '%s'";
-strErrMsgModifyPythonLldbPyFileNotFound = "Unable to find '%s' in '%s'";
-
-#++---------------------------------------------------------------------------
-# Details: Retrieve the list of hard coded lldb header file names and
-# put in the program's dictArgs map container. Make paths compatible
-# with the current OS.
-# Note this does not necessarily match the content of those
-# directories. The resultant header string is inserted into the
-# dictionary vDictArgs key "--headerFiles".
-# Args: vDictArgs - (RW) Program input parameters.
-# Returns: Bool - True = success, False = failure.
-# Throws: None.
-#--
-def get_header_files( vDictArgs ):
- dbg = utilsDebug.CDebugFnVerbose( "Python script get_header_files()" );
- listHeaderFiles = [ "/include/lldb/API/lldb.h", # .sh has /include/lldb/lldb.h 21/11/2013
- "/include/lldb/lldb-defines.h",
- "/include/lldb/lldb-enumerations.h",
- "/include/lldb/lldb-forward.h",
- "/include/lldb/lldb-forward-rtti.h",
- "/include/lldb/lldb-types.h",
- "/include/lldb/API/SBAddress.h",
- "/include/lldb/API/SBAttachInfo.h",
- "/include/lldb/API/SBBlock.h",
- "/include/lldb/API/SBBreakpoint.h",
- "/include/lldb/API/SBBreakpointLocation.h",
- "/include/lldb/API/SBBroadcaster.h",
- "/include/lldb/API/SBCommandInterpreter.h",
- "/include/lldb/API/SBCommandReturnObject.h",
- "/include/lldb/API/SBCommunication.h",
- "/include/lldb/API/SBCompileUnit.h",
- "/include/lldb/API/SBData.h",
- "/include/lldb/API/SBDebugger.h",
- "/include/lldb/API/SBError.h",
- "/include/lldb/API/SBEvent.h",
- "/include/lldb/API/SBExpressionOptions.h",
- "/include/lldb/API/SBFileSpec.h",
- "/include/lldb/API/SBFrame.h",
- "/include/lldb/API/SBFunction.h",
- "/include/lldb/API/SBHostOS.h",
- "/include/lldb/API/SBInputReader.h",
- "/include/lldb/API/SBInstruction.h",
- "/include/lldb/API/SBInstructionList.h",
- "/include/lldb/API/SBLanguageRuntime.h",
- "/include/lldb/API/SBLaunchInfo.h",
- "/include/lldb/API/SBLineEntry.h",
- "/include/lldb/API/SBListener.h",
- "/include/lldb/API/SBModule.h",
- "/include/lldb/API/SBModuleSpec.h",
- "/include/lldb/API/SBProcess.h",
- "/include/lldb/API/SBSourceManager.h",
- "/include/lldb/API/SBStream.h",
- "/include/lldb/API/SBStringList.h",
- "/include/lldb/API/SBSymbol.h",
- "/include/lldb/API/SBSymbolContext.h",
- "/include/lldb/API/SBSymbolContextList.h",
- "/include/lldb/API/SBTarget.h",
- "/include/lldb/API/SBThread.h",
- "/include/lldb/API/SBThreadCollection.h",
- "/include/lldb/API/SBType.h",
- "/include/lldb/API/SBTypeCategory.h",
- "/include/lldb/API/SBTypeFilter.h",
- "/include/lldb/API/SBTypeFormat.h",
- "/include/lldb/API/SBTypeNameSpecifier.h",
- "/include/lldb/API/SBTypeSummary.h",
- "/include/lldb/API/SBTypeSynthetic.h",
- "/include/lldb/API/SBValue.h",
- "/include/lldb/API/SBValueList.h",
- "/include/lldb/API/SBWatchpoint.h" ];
- bDebug = "-d" in vDictArgs;
- strRt = vDictArgs[ "--srcRoot" ];
- strRt = os.path.normcase( strRt );
-
- strHeaderFiles = "";
- for strHdr in listHeaderFiles[ 0: len( listHeaderFiles ) ]:
- strHdr = os.path.normcase( strHdr );
- strHeaderFiles += " %s%s" % (strRt, strHdr);
-
- if bDebug:
- print(strMsgHdrFiles);
- print(strHeaderFiles);
-
- vDictArgs[ "--headerFiles" ] = strHeaderFiles;
-
- return True;
-
-#++---------------------------------------------------------------------------
-# Details: Retrieve the list of hard coded lldb SWIG interface file names and
-# put in the program's dictArgs map container. Make paths compatible
-# with the current OS.
-# Note this does not necessarily match the content of those
-# directories. The resultant interface string is inserted into the
-# dictionary vDictArgs key "--ifaceFiles".
-# Args: vDictArgs - (RW) Program input parameters.
-# Returns: Bool - True = success, False = failure.
-# Throws: None.
-#--
-def get_interface_files( vDictArgs ):
- dbg = utilsDebug.CDebugFnVerbose( "Python script get_interface_files()" );
- listIFaceFiles = [ "/scripts/interface/SBAddress.i",
- "/scripts/interface/SBAttachInfo.i",
- "/scripts/interface/SBBlock.i",
- "/scripts/interface/SBBreakpoint.i",
- "/scripts/interface/SBBreakpointLocation.i",
- "/scripts/interface/SBBroadcaster.i",
- "/scripts/interface/SBCommandInterpreter.i",
- "/scripts/interface/SBCommandReturnObject.i",
- "/scripts/interface/SBCommunication.i",
- "/scripts/interface/SBCompileUnit.i",
- "/scripts/interface/SBData.i",
- "/scripts/interface/SBDebugger.i",
- "/scripts/interface/SBDeclaration.i",
- "/scripts/interface/SBError.i",
- "/scripts/interface/SBEvent.i",
- "/scripts/interface/SBExpressionOptions.i",
- "/scripts/interface/SBFileSpec.i",
- "/scripts/interface/SBFrame.i",
- "/scripts/interface/SBFunction.i",
- "/scripts/interface/SBHostOS.i",
- "/scripts/interface/SBInputReader.i",
- "/scripts/interface/SBInstruction.i",
- "/scripts/interface/SBInstructionList.i",
- "/scripts/interface/SBLanguageRuntime.i",
- "/scripts/interface/SBLaunchInfo.i",
- "/scripts/interface/SBLineEntry.i",
- "/scripts/interface/SBListener.i",
- "/scripts/interface/SBModule.i",
- "/scripts/interface/SBModuleSpec.i",
- "/scripts/interface/SBProcess.i",
- "/scripts/interface/SBSourceManager.i",
- "/scripts/interface/SBStream.i",
- "/scripts/interface/SBStringList.i",
- "/scripts/interface/SBSymbol.i",
- "/scripts/interface/SBSymbolContext.i",
- "/scripts/interface/SBTarget.i",
- "/scripts/interface/SBThread.i",
- "/scripts/interface/SBThreadCollection.i",
- "/scripts/interface/SBType.i",
- "/scripts/interface/SBTypeCategory.i",
- "/scripts/interface/SBTypeFilter.i",
- "/scripts/interface/SBTypeFormat.i",
- "/scripts/interface/SBTypeNameSpecifier.i",
- "/scripts/interface/SBTypeSummary.i",
- "/scripts/interface/SBTypeSynthetic.i",
- "/scripts/interface/SBValue.i",
- "/scripts/interface/SBValueList.i",
- "/scripts/interface/SBWatchpoint.i" ];
- bDebug = "-d" in vDictArgs;
- strRt = vDictArgs[ "--srcRoot" ];
- strRt = os.path.normcase( strRt );
-
- strInterfaceFiles = "";
- for strIFace in listIFaceFiles[ 0: len( listIFaceFiles ) ]:
- strIFace = os.path.normcase( strIFace );
- strInterfaceFiles += " %s%s" % (strRt, strIFace);
-
- if bDebug:
- print(strMsgIFaceFiles);
- print(strInterfaceFiles);
-
- vDictArgs[ "--ifaceFiles" ] = strInterfaceFiles;
-
- return True;
-
-#++---------------------------------------------------------------------------
-# Details: Compare which file is newer.
-# Args: vFile1 - (R) File name path.
-# vFile2 - (R) File name path.
-# Returns: Int - 0 = both not exist, 1 = file 1 newer, 2 = file 2 newer,
-# 3 = file 1 not exist.
-# Throws: None.
-#--
-def which_file_is_newer( vFile1, vFile2 ):
- bF1 = os.path.exists( vFile1 );
- bF2 = os.path.exists( vFile2 );
- if bF1 == False and bF2 == False:
- return 0; # Both files not exist
- if bF1 == False:
- return 3; # File 1 not exist
- if bF2 == False:
- return 1; # File 1 is newer / file 2 not exist
- f1Stamp = os.path.getmtime( vFile1 );
- f2Stamp = os.path.getmtime( vFile2 );
- if f1Stamp > f2Stamp:
- return 1; # File 1 is newer
-
- return 2; # File 2 is newer than file 1
-
-#++---------------------------------------------------------------------------
-# Details: Determine whether the specified file exists.
-# Args: vDictArgs - (R) Program input parameters.
-# vstrFileNamePath - (R) Check this file exists.
-# Returns: Bool - True = Files exists, false = not found.
-# Throws: None.
-#--
-def check_file_exists( vDictArgs, vstrFileNamePath ):
- bExists = False;
- bDebug = "-d" in vDictArgs;
-
- if os.path.exists( vstrFileNamePath ):
- bExists = True;
- elif bDebug:
- print((strMsgFileNotExist % vstrFileNamePath));
-
- return bExists;
-
-#++---------------------------------------------------------------------------
-# Details: Determine whether the specified file is newer than the
-# LLDBWrapPython.cpp file.
-# Args: vDictArgs - (R) Program input parameters.
-# vstrSwigOpFileNamePath - (R) LLDBWrapPython.cpp file.
-# vstrFileNamePath - (R) Specific file.
-# Returns: Bool - True = SWIG update required, false = no update required.
-# Throws: None.
-#--
-def check_newer_file( vDictArgs, vstrSwigOpFileNamePath, vstrFileNamePath ):
- bNeedUpdate = False;
- bDebug = "-d" in vDictArgs;
-
- strMsg = "";
- nResult = which_file_is_newer( vstrFileNamePath, vstrSwigOpFileNamePath );
- if nResult == 1:
- strMsg = strMsgFileNewrSwigOpFile % (vstrFileNamePath,
- vstrSwigOpFileNamePath);
- bNeedUpdate = True;
- elif nResult == 3:
- strMsg = strMsgFileNotExist % vstrFileNamePath;
- bNeedUpdate = True;
-
- if bNeedUpdate and bDebug:
- print(strMsg);
-
- return bNeedUpdate;
-
-#++---------------------------------------------------------------------------
-# Details: Determine whether the any files in the list are newer than the
-# LLDBWrapPython.cpp file.
-# Args: vDictArgs - (R) Program input parameters.
-# vstrSwigOpFileNamePath - (R) LLDBWrapPython.cpp file.
-# vstrFiles - (R) Multi string file names ' ' delimiter.
-# Returns: Bool - True = SWIG update required, false = no update required.
-# Throws: None.
-#--
-def check_newer_files( vDictArgs, vstrSwigOpFileNamePath, vstrFiles ):
- bNeedUpdate = False;
-
- listFiles = vstrFiles.split();
- for strFile in listFiles:
- if check_newer_file( vDictArgs, vstrSwigOpFileNamePath, strFile ):
- bNeedUpdate = True;
- break;
-
- return bNeedUpdate;
-
-#++---------------------------------------------------------------------------
-# Details: Retrieve the directory path for Python's dist_packages/
-# site_package folder on a Windows platform.
-# Args: vDictArgs - (R) Program input parameters.
-# Returns: Bool - True = function success, False = failure.
-# Str - Python Framework directory path.
-# strErrMsg - Error description on task failure.
-# Throws: None.
-#--
-def get_framework_python_dir_windows( vDictArgs ):
- dbg = utilsDebug.CDebugFnVerbose( "Python script get_framework_python_dir_windows()" );
- bOk = True;
- strWkDir = "";
- strErrMsg = "";
-
- # We are being built by LLVM, so use the PYTHON_INSTALL_DIR argument,
- # and append the python version directory to the end of it. Depending
- # on the system other stuff may need to be put here as well.
- from distutils.sysconfig import get_python_lib;
- strPythonInstallDir = "";
- bHaveArgPrefix = "--prefix" in vDictArgs;
- if bHaveArgPrefix:
- strPythonInstallDir = vDictArgs[ "--prefix" ];
- if strPythonInstallDir.__len__() != 0:
- strWkDir = get_python_lib( True, False, strPythonInstallDir );
- else:
- strWkDir = get_python_lib( True, False );
- strWkDir += "/lldb";
- strWkDir = os.path.normcase( strWkDir );
-
- return (bOk, strWkDir, strErrMsg);
-
-#++---------------------------------------------------------------------------
-# Details: Retrieve the directory path for Python's dist_packages/
-# site_package folder on a UNIX style platform.
-# Args: vDictArgs - (R) Program input parameters.
-# Returns: Bool - True = function success, False = failure.
-# Str - Python Framework directory path.
-# strErrMsg - Error description on task failure.
-# Throws: None.
-#--
-def get_framework_python_dir_other_platforms( vDictArgs ):
- dbg = utilsDebug.CDebugFnVerbose( "Python script get_framework_python_dir_other_platform()" );
- bOk = True;
- strWkDir = "";
- strErrMsg = "";
- bDbg = "-d" in vDictArgs;
-
- bMakeFileCalled = "-m" in vDictArgs;
- if bMakeFileCalled:
- dbg.dump_text( "Built by LLVM" );
- return get_framework_python_dir_windows( vDictArgs );
- else:
- dbg.dump_text( "Built by XCode" );
- # We are being built by XCode, so all the lldb Python files can go
- # into the LLDB.framework/Resources/Python subdirectory.
- strWkDir = vDictArgs[ "--targetDir" ];
- strWkDir += "/LLDB.framework";
- if os.path.exists( strWkDir ):
- if bDbg:
- print((strMsgFoundLldbFrameWkDir % strWkDir));
- strWkDir += "/Resources/Python/lldb";
- strWkDir = os.path.normcase( strWkDir );
- else:
- bOk = False;
- strErrMsg = strErrMsgFrameWkPyDirNotExist % strWkDir;
-
- return (bOk, strWkDir, strErrMsg);
-
-#++---------------------------------------------------------------------------
-# Details: Retrieve the directory path for Python's dist_packages/
-# site_package folder depending on the type of OS platform being
-# used.
-# Args: vDictArgs - (R) Program input parameters.
-# Returns: Bool - True = function success, False = failure.
-# Str - Python Framework directory path.
-# strErrMsg - Error description on task failure.
-# Throws: None.
-#--
-def get_framework_python_dir( vDictArgs ):
- dbg = utilsDebug.CDebugFnVerbose( "Python script get_framework_python_dir()" );
- bOk = True;
- strWkDir = "";
- strErrMsg = "";
-
- eOSType = utilsOsType.determine_os_type();
- if eOSType == utilsOsType.EnumOsType.Unknown:
- bOk = False;
- strErrMsg = strErrMsgOsTypeUnknown;
- elif eOSType == utilsOsType.EnumOsType.Windows:
- bOk, strWkDir, strErrMsg = get_framework_python_dir_windows( vDictArgs );
- else:
- bOk, strWkDir, strErrMsg = get_framework_python_dir_other_platforms( vDictArgs );
-
- return (bOk, strWkDir, strErrMsg);
-
-#++---------------------------------------------------------------------------
-# Details: Retrieve the configuration build path if present and valid (using
-# parameter --cfgBlddir or copy the Python Framework directory.
-# Args: vDictArgs - (R) Program input parameters.
-# vstrFrameworkPythonDir - (R) Python framework directory.
-# Returns: Bool - True = function success, False = failure.
-# Str - Config directory path.
-# strErrMsg - Error description on task failure.
-# Throws: None.
-#--
-def get_config_build_dir( vDictArgs, vstrFrameworkPythonDir ):
- dbg = utilsDebug.CDebugFnVerbose( "Python script get_config_build_dir()" );
- bOk = True;
- strErrMsg = "";
-
- strConfigBldDir = "";
- bHaveConfigBldDir = "--cfgBldDir" in vDictArgs;
- if bHaveConfigBldDir:
- strConfigBldDir = vDictArgs[ "--cfgBldDir" ];
- if (bHaveConfigBldDir == False) or (strConfigBldDir.__len__() == 0):
- strConfigBldDir = vstrFrameworkPythonDir;
-
- return (bOk, strConfigBldDir, strErrMsg);
+or the '--swigExeName' argument. Both are required."
+strMsgSwigExecute = "SWIG executing the following:\n\'%s'"
+strErrMsgSwigExecute = "SWIG failed: %s"
+strErrMsgPythonExecute = "Python script '%s' failed: %s"
+strMsgSwigNoGenDep = "SWIG ran with no generated dependencies, script exit early"
+strMsgSwigGenDep = "SWIG ran and generated dependencies, script exit early, deleted '%s'"
+strErrMsgFrameWkPyDirNotExist = "Unable to find the LLDB. Framework directory is '%s'"
+strMsgFoundLldbFrameWkDir = "Found '%s'"
+strErrMsgModifyPythonLldbPyFileNotFound = "Unable to find '%s' in '%s'"
+
+#++---------------------------------------------------------------------------
+# Details: Retrieve the list of hard coded lldb header file names and
+# put in the program's dictArgs map container. Make paths compatible
+# with the current OS.
+# Note this does not necessarily match the content of those
+# directories. The resultant header string is inserted into the
+# dictionary vDictArgs key "--headerFiles".
+# Args: vDictArgs - (RW) Program input parameters.
+# Returns: Bool - True = success, False = failure.
+# Throws: None.
+#--
+def get_header_files(vDictArgs):
+ dbg = utilsDebug.CDebugFnVerbose("Python script get_header_files()")
+ listHeaderFiles = ["/include/lldb/API/lldb.h", # .sh has /include/lldb/lldb.h 21/11/2013
+ "/include/lldb/lldb-defines.h",
+ "/include/lldb/lldb-enumerations.h",
+ "/include/lldb/lldb-forward.h",
+ "/include/lldb/lldb-forward-rtti.h",
+ "/include/lldb/lldb-types.h",
+ "/include/lldb/API/SBAddress.h",
+ "/include/lldb/API/SBAttachInfo.h",
+ "/include/lldb/API/SBBlock.h",
+ "/include/lldb/API/SBBreakpoint.h",
+ "/include/lldb/API/SBBreakpointLocation.h",
+ "/include/lldb/API/SBBroadcaster.h",
+ "/include/lldb/API/SBCommandInterpreter.h",
+ "/include/lldb/API/SBCommandReturnObject.h",
+ "/include/lldb/API/SBCommunication.h",
+ "/include/lldb/API/SBCompileUnit.h",
+ "/include/lldb/API/SBData.h",
+ "/include/lldb/API/SBDebugger.h",
+ "/include/lldb/API/SBError.h",
+ "/include/lldb/API/SBEvent.h",
+ "/include/lldb/API/SBExpressionOptions.h",
+ "/include/lldb/API/SBFileSpec.h",
+ "/include/lldb/API/SBFrame.h",
+ "/include/lldb/API/SBFunction.h",
+ "/include/lldb/API/SBHostOS.h",
+ "/include/lldb/API/SBInputReader.h",
+ "/include/lldb/API/SBInstruction.h",
+ "/include/lldb/API/SBInstructionList.h",
+ "/include/lldb/API/SBLanguageRuntime.h",
+ "/include/lldb/API/SBLaunchInfo.h",
+ "/include/lldb/API/SBLineEntry.h",
+ "/include/lldb/API/SBListener.h",
+ "/include/lldb/API/SBModule.h",
+ "/include/lldb/API/SBModuleSpec.h",
+ "/include/lldb/API/SBProcess.h",
+ "/include/lldb/API/SBSourceManager.h",
+ "/include/lldb/API/SBStream.h",
+ "/include/lldb/API/SBStringList.h",
+ "/include/lldb/API/SBSymbol.h",
+ "/include/lldb/API/SBSymbolContext.h",
+ "/include/lldb/API/SBSymbolContextList.h",
+ "/include/lldb/API/SBTarget.h",
+ "/include/lldb/API/SBThread.h",
+ "/include/lldb/API/SBThreadCollection.h",
+ "/include/lldb/API/SBType.h",
+ "/include/lldb/API/SBTypeCategory.h",
+ "/include/lldb/API/SBTypeFilter.h",
+ "/include/lldb/API/SBTypeFormat.h",
+ "/include/lldb/API/SBTypeNameSpecifier.h",
+ "/include/lldb/API/SBTypeSummary.h",
+ "/include/lldb/API/SBTypeSynthetic.h",
+ "/include/lldb/API/SBValue.h",
+ "/include/lldb/API/SBValueList.h",
+ "/include/lldb/API/SBWatchpoint.h"]
+ bDebug = "-d" in vDictArgs
+ strRt = vDictArgs["--srcRoot"]
+ strRt = os.path.normcase(strRt)
+
+ strHeaderFiles = ""
+ for strHdr in listHeaderFiles[0: len(listHeaderFiles)]:
+ strHdr = os.path.normcase(strHdr)
+ strHeaderFiles += " %s%s" % (strRt, strHdr)
+
+ if bDebug:
+ print(strMsgHdrFiles)
+ print(strHeaderFiles)
+
+ vDictArgs["--headerFiles"] = strHeaderFiles
+
+ return True
+
+#++---------------------------------------------------------------------------
+# Details: Retrieve the list of hard coded lldb SWIG interface file names and
+# put in the program's dictArgs map container. Make paths compatible
+# with the current OS.
+# Note this does not necessarily match the content of those
+# directories. The resultant interface string is inserted into the
+# dictionary vDictArgs key "--ifaceFiles".
+# Args: vDictArgs - (RW) Program input parameters.
+# Returns: Bool - True = success, False = failure.
+# Throws: None.
+#--
+def get_interface_files(vDictArgs):
+ dbg = utilsDebug.CDebugFnVerbose("Python script get_interface_files()")
+ listIFaceFiles = ["/scripts/interface/SBAddress.i",
+ "/scripts/interface/SBAttachInfo.i",
+ "/scripts/interface/SBBlock.i",
+ "/scripts/interface/SBBreakpoint.i",
+ "/scripts/interface/SBBreakpointLocation.i",
+ "/scripts/interface/SBBroadcaster.i",
+ "/scripts/interface/SBCommandInterpreter.i",
+ "/scripts/interface/SBCommandReturnObject.i",
+ "/scripts/interface/SBCommunication.i",
+ "/scripts/interface/SBCompileUnit.i",
+ "/scripts/interface/SBData.i",
+ "/scripts/interface/SBDebugger.i",
+ "/scripts/interface/SBDeclaration.i",
+ "/scripts/interface/SBError.i",
+ "/scripts/interface/SBEvent.i",
+ "/scripts/interface/SBExpressionOptions.i",
+ "/scripts/interface/SBFileSpec.i",
+ "/scripts/interface/SBFrame.i",
+ "/scripts/interface/SBFunction.i",
+ "/scripts/interface/SBHostOS.i",
+ "/scripts/interface/SBInputReader.i",
+ "/scripts/interface/SBInstruction.i",
+ "/scripts/interface/SBInstructionList.i",
+ "/scripts/interface/SBLanguageRuntime.i",
+ "/scripts/interface/SBLaunchInfo.i",
+ "/scripts/interface/SBLineEntry.i",
+ "/scripts/interface/SBListener.i",
+ "/scripts/interface/SBModule.i",
+ "/scripts/interface/SBModuleSpec.i",
+ "/scripts/interface/SBProcess.i",
+ "/scripts/interface/SBSourceManager.i",
+ "/scripts/interface/SBStream.i",
+ "/scripts/interface/SBStringList.i",
+ "/scripts/interface/SBSymbol.i",
+ "/scripts/interface/SBSymbolContext.i",
+ "/scripts/interface/SBTarget.i",
+ "/scripts/interface/SBThread.i",
+ "/scripts/interface/SBThreadCollection.i",
+ "/scripts/interface/SBType.i",
+ "/scripts/interface/SBTypeCategory.i",
+ "/scripts/interface/SBTypeFilter.i",
+ "/scripts/interface/SBTypeFormat.i",
+ "/scripts/interface/SBTypeNameSpecifier.i",
+ "/scripts/interface/SBTypeSummary.i",
+ "/scripts/interface/SBTypeSynthetic.i",
+ "/scripts/interface/SBValue.i",
+ "/scripts/interface/SBValueList.i",
+ "/scripts/interface/SBWatchpoint.i"]
+ bDebug = "-d" in vDictArgs
+ strRt = vDictArgs["--srcRoot"]
+ strRt = os.path.normcase(strRt)
+
+ strInterfaceFiles = ""
+ for strIFace in listIFaceFiles[0: len(listIFaceFiles)]:
+ strIFace = os.path.normcase(strIFace)
+ strInterfaceFiles += " %s%s" % (strRt, strIFace)
+
+ if bDebug:
+ print(strMsgIFaceFiles)
+ print(strInterfaceFiles)
+
+ vDictArgs["--ifaceFiles"] = strInterfaceFiles
+
+ return True
+
+#++---------------------------------------------------------------------------
+# Details: Compare which file is newer.
+# Args: vFile1 - (R) File name path.
+# vFile2 - (R) File name path.
+# Returns: Int - 0 = both not exist, 1 = file 1 newer, 2 = file 2 newer,
+# 3 = file 1 not exist.
+# Throws: None.
+#--
+def which_file_is_newer(vFile1, vFile2):
+ bF1 = os.path.exists(vFile1)
+ bF2 = os.path.exists(vFile2)
+ if bF1 == False and bF2 == False:
+ return 0 # Both files not exist
+ if bF1 == False:
+ return 3 # File 1 not exist
+ if bF2 == False:
+ return 1 # File 1 is newer / file 2 not exist
+ f1Stamp = os.path.getmtime(vFile1)
+ f2Stamp = os.path.getmtime(vFile2)
+ if f1Stamp > f2Stamp:
+ return 1 # File 1 is newer
+
+ return 2 # File 2 is newer than file 1
+
+#++---------------------------------------------------------------------------
+# Details: Determine whether the specified file exists.
+# Args: vDictArgs - (R) Program input parameters.
+# vstrFileNamePath - (R) Check this file exists.
+# Returns: Bool - True = Files exists, false = not found.
+# Throws: None.
+#--
+def check_file_exists(vDictArgs, vstrFileNamePath):
+ bExists = False
+ bDebug = "-d" in vDictArgs
+
+ if os.path.exists(vstrFileNamePath):
+ bExists = True
+ elif bDebug:
+ print((strMsgFileNotExist % vstrFileNamePath))
+
+ return bExists
+
+#++---------------------------------------------------------------------------
+# Details: Determine whether the specified file is newer than the
+# LLDBWrapPython.cpp file.
+# Args: vDictArgs - (R) Program input parameters.
+# vstrSwigOpFileNamePath - (R) LLDBWrapPython.cpp file.
+# vstrFileNamePath - (R) Specific file.
+# Returns: Bool - True = SWIG update required, false = no update required.
+# Throws: None.
+#--
+def check_newer_file(vDictArgs, vstrSwigOpFileNamePath, vstrFileNamePath):
+ bNeedUpdate = False
+ bDebug = "-d" in vDictArgs
+
+ strMsg = ""
+ nResult = which_file_is_newer(vstrFileNamePath, vstrSwigOpFileNamePath)
+ if nResult == 1:
+ strMsg = strMsgFileNewrSwigOpFile % (vstrFileNamePath,
+ vstrSwigOpFileNamePath)
+ bNeedUpdate = True
+ elif nResult == 3:
+ strMsg = strMsgFileNotExist % vstrFileNamePath
+ bNeedUpdate = True
+
+ if bNeedUpdate and bDebug:
+ print(strMsg)
+
+ return bNeedUpdate
+
+#++---------------------------------------------------------------------------
+# Details: Determine whether the any files in the list are newer than the
+# LLDBWrapPython.cpp file.
+# Args: vDictArgs - (R) Program input parameters.
+# vstrSwigOpFileNamePath - (R) LLDBWrapPython.cpp file.
+# vstrFiles - (R) Multi string file names ' ' delimiter.
+# Returns: Bool - True = SWIG update required, false = no update required.
+# Throws: None.
+#--
+def check_newer_files(vDictArgs, vstrSwigOpFileNamePath, vstrFiles):
+ bNeedUpdate = False
+
+ listFiles = vstrFiles.split()
+ for strFile in listFiles:
+ if check_newer_file(vDictArgs, vstrSwigOpFileNamePath, strFile):
+ bNeedUpdate = True
+ break
+
+ return bNeedUpdate
+
+#++---------------------------------------------------------------------------
+# Details: Retrieve the directory path for Python's dist_packages/
+# site_package folder on a Windows platform.
+# Args: vDictArgs - (R) Program input parameters.
+# Returns: Bool - True = function success, False = failure.
+# Str - Python Framework directory path.
+# strErrMsg - Error description on task failure.
+# Throws: None.
+#--
+def get_framework_python_dir_windows(vDictArgs):
+ dbg = utilsDebug.CDebugFnVerbose("Python script get_framework_python_dir_windows()")
+ bOk = True
+ strWkDir = ""
+ strErrMsg = ""
+
+ # We are being built by LLVM, so use the PYTHON_INSTALL_DIR argument,
+ # and append the python version directory to the end of it. Depending
+ # on the system other stuff may need to be put here as well.
+ from distutils.sysconfig import get_python_lib
+ strPythonInstallDir = ""
+ bHaveArgPrefix = "--prefix" in vDictArgs
+ if bHaveArgPrefix:
+ strPythonInstallDir = vDictArgs["--prefix"]
+ if strPythonInstallDir.__len__() != 0:
+ strWkDir = get_python_lib(True, False, strPythonInstallDir)
+ else:
+ strWkDir = get_python_lib(True, False)
+ strWkDir += "/lldb"
+ strWkDir = os.path.normcase(strWkDir)
+
+ return (bOk, strWkDir, strErrMsg)
+
+#++---------------------------------------------------------------------------
+# Details: Retrieve the directory path for Python's dist_packages/
+# site_package folder on a UNIX style platform.
+# Args: vDictArgs - (R) Program input parameters.
+# Returns: Bool - True = function success, False = failure.
+# Str - Python Framework directory path.
+# strErrMsg - Error description on task failure.
+# Throws: None.
+#--
+def get_framework_python_dir_other_platforms(vDictArgs):
+ dbg = utilsDebug.CDebugFnVerbose("Python script get_framework_python_dir_other_platform()")
+ bOk = True
+ strWkDir = ""
+ strErrMsg = ""
+ bDbg = "-d" in vDictArgs
+
+ bMakeFileCalled = "-m" in vDictArgs
+ if bMakeFileCalled:
+ dbg.dump_text("Built by LLVM")
+ return get_framework_python_dir_windows(vDictArgs)
+ else:
+ dbg.dump_text("Built by XCode")
+ # We are being built by XCode, so all the lldb Python files can go
+ # into the LLDB.framework/Resources/Python subdirectory.
+ strWkDir = vDictArgs["--targetDir"]
+ strWkDir += "/LLDB.framework"
+ if os.path.exists(strWkDir):
+ if bDbg:
+ print((strMsgFoundLldbFrameWkDir % strWkDir))
+ strWkDir += "/Resources/Python/lldb"
+ strWkDir = os.path.normcase(strWkDir)
+ else:
+ bOk = False
+ strErrMsg = strErrMsgFrameWkPyDirNotExist % strWkDir
+
+ return (bOk, strWkDir, strErrMsg)
+
+#++---------------------------------------------------------------------------
+# Details: Retrieve the directory path for Python's dist_packages/
+# site_package folder depending on the type of OS platform being
+# used.
+# Args: vDictArgs - (R) Program input parameters.
+# Returns: Bool - True = function success, False = failure.
+# Str - Python Framework directory path.
+# strErrMsg - Error description on task failure.
+# Throws: None.
+#--
+def get_framework_python_dir(vDictArgs):
+ dbg = utilsDebug.CDebugFnVerbose("Python script get_framework_python_dir()")
+ bOk = True
+ strWkDir = ""
+ strErrMsg = ""
+
+ eOSType = utilsOsType.determine_os_type()
+ if eOSType == utilsOsType.EnumOsType.Unknown:
+ bOk = False
+ strErrMsg = strErrMsgOsTypeUnknown
+ elif eOSType == utilsOsType.EnumOsType.Windows:
+ bOk, strWkDir, strErrMsg = get_framework_python_dir_windows(vDictArgs)
+ else:
+ bOk, strWkDir, strErrMsg = get_framework_python_dir_other_platforms(vDictArgs)
+
+ return (bOk, strWkDir, strErrMsg)
+
+#++---------------------------------------------------------------------------
+# Details: Retrieve the configuration build path if present and valid (using
+# parameter --cfgBlddir or copy the Python Framework directory.
+# Args: vDictArgs - (R) Program input parameters.
+# vstrFrameworkPythonDir - (R) Python framework directory.
+# Returns: Bool - True = function success, False = failure.
+# Str - Config directory path.
+# strErrMsg - Error description on task failure.
+# Throws: None.
+#--
+def get_config_build_dir(vDictArgs, vstrFrameworkPythonDir):
+ dbg = utilsDebug.CDebugFnVerbose("Python script get_config_build_dir()")
+ bOk = True
+ strErrMsg = ""
+
+ strConfigBldDir = ""
+ bHaveConfigBldDir = "--cfgBldDir" in vDictArgs
+ if bHaveConfigBldDir:
+ strConfigBldDir = vDictArgs["--cfgBldDir"]
+ if (bHaveConfigBldDir == False) or (strConfigBldDir.__len__() == 0):
+ strConfigBldDir = vstrFrameworkPythonDir
+
+ return (bOk, strConfigBldDir, strErrMsg)
"""
Removes given file, ignoring error if it doesn't exist.
"""
def remove_ignore_enoent(filename):
- try:
- os.remove( filename );
- except OSError as e:
- import errno
- if e.errno != errno.ENOENT:
- raise
- pass
-
-#++---------------------------------------------------------------------------
-# Details: Do a SWIG code rebuild. Any number returned by SWIG which is not
-# zero is treated as an error. The generate dependencies flag decides
-# how SWIG is rebuilt and if set false will cause the script to exit
-# immediately with the exit status + 200 if status is not zero.
-# Args: vDictArgs - (R) Program input parameters.
-# vstrSwigDepFile - (R) SWIG dependency file.
-# vstrCfgBldDir - (R) Configuration build directory.
-# vstrSwigOpFile - (R) SWIG output file.
-# vstrSwigIpFile - (R) SWIG input file.
-# Returns: Bool - True = function success, False = failure.
-# strMsg - Error or status message.
-# nExitResult - Exit result of SWIG executable.
-# - 0 = Success.
-# - 1 = Success, exit this script and parent script.
-# - +200 = A SWIG error status result.
-# Throws: None.
-#--
-def do_swig_rebuild( vDictArgs, vstrSwigDepFile, vstrCfgBldDir,
- vstrSwigOpFile, vstrSwigIpFile ):
- dbg = utilsDebug.CDebugFnVerbose( "Python script do_swig_rebuild()" );
- bOk = True;
- strMsg = "";
- bDbg = "-d" in vDictArgs;
- bGenDependencies = "-M" in vDictArgs;
- strSwigExePath = vDictArgs[ "--swigExePath" ];
- strSwigExeName = vDictArgs[ "--swigExeName" ];
- strSrcRoot = vDictArgs[ "--srcRoot" ];
-
- # Build SWIG path to executable
- if strSwigExePath != "":
- strSwig = "%s/%s" % (strSwigExePath, strSwigExeName);
- strSwig = os.path.normcase( strSwig );
- else:
- strSwig = strSwigExeName;
-
- strCfg = vstrCfgBldDir;
- strOp = vstrSwigOpFile;
- strIp = vstrSwigIpFile;
- strSi = os.path.normcase( "./." );
- strRoot = strSrcRoot + "/include";
- strRoot = os.path.normcase( strRoot );
- strDep = "";
- if bGenDependencies:
- strDep = vstrSwigDepFile + ".tmp";
-
- # Build the SWIG args list
- strCmd = "%s " % strSwig;
- strCmd += "-c++ ";
- strCmd += "-shadow ";
- strCmd += "-python ";
- strCmd += "-threads ";
- strCmd += "-I\"%s\" " % strRoot;
- strCmd += "-I\"%s\" " % strSi;
- strCmd += "-D__STDC_LIMIT_MACROS ";
- strCmd += "-D__STDC_CONSTANT_MACROS ";
- if bGenDependencies:
- strCmd += "-MMD -MF \"%s\" " % strDep;
- strCmd += "-outdir \"%s\" " % strCfg;
- strCmd += "-o \"%s\" " % strOp;
- strCmd += "\"%s\" " % strIp;
- if bDbg:
- print((strMsgSwigExecute % strCmd));
-
- # Execute SWIG
- process = subprocess.Popen( strCmd, stdout=subprocess.PIPE,
- stderr=subprocess.PIPE, shell=True );
- # Wait for SWIG process to terminate
- strStdOut, strStdErr = process.communicate();
- nResult = process.returncode;
- if nResult != 0:
- bOk = False;
- nResult += 200;
- strMsg = strErrMsgSwigExecute % strStdErr;
- else:
- if bDbg and (strStdOut.__len__() != 0):
- strMsg = strStdOut;
-
- if bGenDependencies:
- if bOk:
- if os.path.exists( strDep ):
- shutil.move( strDep, vstrSwigDepFile );
- else:
- os.remove( strDep );
- nResult = 1; # Exit this script and parent script
- if bDbg:
- strMsg = strMsgSwigGenDep % strDep;
- else:
- strMsg = strMsgSwigNoGenDep + strMsg;
-
- return bOk, strMsg, nResult;
-
-#++---------------------------------------------------------------------------
-# Details: Execute another Python script from this script in a separate
-# process. No data is passed back to the caller script. It is
-# assumed should any exit result be returned that -ve numbers are
-# error conditions. A zero or +ve numbers mean ok/warning/status.
-# Args: vDictArgs - (R) Program input parameters.
-# vstrArgs - (R) Space separated parameters passed to python.
-# Returns: Bool - True = function success, False = failure.
-# strMsg - Error or status message.
-# Throws: None.
-#--
-def run_python_script( vDictArgs, vstrArgs ):
- dbg = utilsDebug.CDebugFnVerbose( "Python script run_python_script()" );
- bOk = True;
- strMsg = "";
- bDbg = "-d" in vDictArgs;
-
- strPy = "%s %s" % (sys.executable, vstrArgs);
- process = subprocess.Popen( strPy, shell=True );
- strStdOut, strStdErr = process.communicate();
- nResult = process.returncode;
- if nResult < 0:
- bOk = False;
- strErr = strStdErr;
- if strErr == None:
- strErr = "No error given";
- strMsg = strErrMsgPythonExecute % (vstrArgs, strErr);
- else:
- if bDbg:
- strOut = strStdOut;
- if strOut == None:
- strOut = "No status given";
- strMsg = strOut;
-
- return bOk, strMsg;
-
-#++---------------------------------------------------------------------------
-# Details: Implement the iterator protocol and/or eq/ne operators for some
-# lldb objects.
-# Append global variable to lldb Python module.
-# And initialize the lldb debugger subsystem.
-# Args: vDictArgs - (R) Program input parameters.
-# vstrCfgBldDir - (R) Configuration build directory.
-# Returns: Bool - True = function success, False = failure.
-# strMsg - Error or status message.
-# Throws: None.
-#--
-def do_modify_python_lldb( vDictArgs, vstrCfgBldDir ):
- dbg = utilsDebug.CDebugFnVerbose( "Python script do_modify_python_lldb()" );
- bOk = True;
- strMsg = "";
- bDbg = "-d" in vDictArgs;
- strCwd = vDictArgs[ "--srcRoot" ]; # /llvm/tools/lldb
- strCwd += "/scripts/Python";
- strPyScript = "modify-python-lldb.py";
- strPath = "%s/%s" % (strCwd, strPyScript);
- strPath = os.path.normcase( strPath );
-
- bOk = os.path.exists( strPath );
- if not bOk:
- strMsg = strErrMsgModifyPythonLldbPyFileNotFound % (strPyScript, strPath);
- return bOk, strMsg;
-
- strPyArgs = "%s %s" % (strPath, vstrCfgBldDir);
- bOk, strMsg = run_python_script( vDictArgs, strPyArgs );
-
- return bOk, strMsg;
+ try:
+ os.remove(filename)
+ except OSError as e:
+ import errno
+ if e.errno != errno.ENOENT:
+ raise
+
+#++---------------------------------------------------------------------------
+# Details: Do a SWIG code rebuild. Any number returned by SWIG which is not
+# zero is treated as an error. The generate dependencies flag decides
+# how SWIG is rebuilt and if set false will cause the script to exit
+# immediately with the exit status + 200 if status is not zero.
+# Args: vDictArgs - (R) Program input parameters.
+# vstrSwigDepFile - (R) SWIG dependency file.
+# vstrCfgBldDir - (R) Configuration build directory.
+# vstrSwigOpFile - (R) SWIG output file.
+# vstrSwigIpFile - (R) SWIG input file.
+# Returns: Bool - True = function success, False = failure.
+# strMsg - Error or status message.
+# nExitResult - Exit result of SWIG executable.
+# - 0 = Success.
+# - 1 = Success, exit this script and parent script.
+# - +200 = A SWIG error status result.
+# Throws: None.
+#--
+def do_swig_rebuild(vDictArgs, vstrSwigDepFile, vstrCfgBldDir,
+ vstrSwigOpFile, vstrSwigIpFile):
+ dbg = utilsDebug.CDebugFnVerbose("Python script do_swig_rebuild()")
+ bOk = True
+ strMsg = ""
+ bDbg = "-d" in vDictArgs
+ bGenDependencies = "-M" in vDictArgs
+ strSwigExePath = vDictArgs["--swigExePath"]
+ strSwigExeName = vDictArgs["--swigExeName"]
+ strSrcRoot = vDictArgs["--srcRoot"]
+
+ # Build SWIG path to executable
+ if strSwigExePath != "":
+ strSwig = "%s/%s" % (strSwigExePath, strSwigExeName)
+ strSwig = os.path.normcase(strSwig)
+ else:
+ strSwig = strSwigExeName
+
+ strCfg = vstrCfgBldDir
+ strOp = vstrSwigOpFile
+ strIp = vstrSwigIpFile
+ strSi = os.path.normcase("./.")
+ strRoot = strSrcRoot + "/include"
+ strRoot = os.path.normcase(strRoot)
+ strDep = ""
+ if bGenDependencies:
+ strDep = vstrSwigDepFile + ".tmp"
+
+ # Build the SWIG args list
+ strCmd = "%s " % strSwig
+ strCmd += "-c++ "
+ strCmd += "-shadow "
+ strCmd += "-python "
+ strCmd += "-threads "
+ strCmd += "-I\"%s\" " % strRoot
+ strCmd += "-I\"%s\" " % strSi
+ strCmd += "-D__STDC_LIMIT_MACROS "
+ strCmd += "-D__STDC_CONSTANT_MACROS "
+ if bGenDependencies:
+ strCmd += "-MMD -MF \"%s\" " % strDep
+ strCmd += "-outdir \"%s\" " % strCfg
+ strCmd += "-o \"%s\" " % strOp
+ strCmd += "\"%s\" " % strIp
+ if bDbg:
+ print((strMsgSwigExecute % strCmd))
+
+ # Execute SWIG
+ process = subprocess.Popen(strCmd, stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE, shell=True)
+ # Wait for SWIG process to terminate
+ strStdOut, strStdErr = process.communicate()
+ nResult = process.returncode
+ if nResult != 0:
+ bOk = False
+ nResult += 200
+ strMsg = strErrMsgSwigExecute % strStdErr
+ else:
+ if bDbg and (strStdOut.__len__() != 0):
+ strMsg = strStdOut
+
+ if bGenDependencies:
+ if bOk:
+ if os.path.exists(strDep):
+ shutil.move(strDep, vstrSwigDepFile)
+ else:
+ os.remove(strDep)
+ nResult = 1 # Exit this script and parent script
+ if bDbg:
+ strMsg = strMsgSwigGenDep % strDep
+ else:
+ strMsg = strMsgSwigNoGenDep + strMsg
+
+ return bOk, strMsg, nResult
+
+#++---------------------------------------------------------------------------
+# Details: Execute another Python script from this script in a separate
+# process. No data is passed back to the caller script. It is
+# assumed should any exit result be returned that -ve numbers are
+# error conditions. A zero or +ve numbers mean ok/warning/status.
+# Args: vDictArgs - (R) Program input parameters.
+# vstrArgs - (R) Space separated parameters passed to python.
+# Returns: Bool - True = function success, False = failure.
+# strMsg - Error or status message.
+# Throws: None.
+#--
+def run_python_script(vDictArgs, vstrArgs):
+ dbg = utilsDebug.CDebugFnVerbose("Python script run_python_script()")
+ bOk = True
+ strMsg = ""
+ bDbg = "-d" in vDictArgs
+
+ strPy = "%s %s" % (sys.executable, vstrArgs)
+ process = subprocess.Popen(strPy, shell=True)
+ strStdOut, strStdErr = process.communicate()
+ nResult = process.returncode
+ if nResult < 0:
+ bOk = False
+ strErr = strStdErr
+ if strErr == None:
+ strErr = "No error given"
+ strMsg = strErrMsgPythonExecute % (vstrArgs, strErr)
+ else:
+ if bDbg:
+ strOut = strStdOut
+ if strOut == None:
+ strOut = "No status given"
+ strMsg = strOut
+
+ return bOk, strMsg
+
+#++---------------------------------------------------------------------------
+# Details: Implement the iterator protocol and/or eq/ne operators for some
+# lldb objects.
+# Append global variable to lldb Python module.
+# And initialize the lldb debugger subsystem.
+# Args: vDictArgs - (R) Program input parameters.
+# vstrCfgBldDir - (R) Configuration build directory.
+# Returns: Bool - True = function success, False = failure.
+# strMsg - Error or status message.
+# Throws: None.
+#--
+def do_modify_python_lldb(vDictArgs, vstrCfgBldDir):
+ dbg = utilsDebug.CDebugFnVerbose("Python script do_modify_python_lldb()")
+ bOk = True
+ strMsg = ""
+ bDbg = "-d" in vDictArgs
+ strCwd = vDictArgs["--srcRoot"] # /llvm/tools/lldb
+ strCwd += "/scripts/Python"
+ strPyScript = "modify-python-lldb.py"
+ strPath = "%s/%s" % (strCwd, strPyScript)
+ strPath = os.path.normcase(strPath)
+
+ bOk = os.path.exists(strPath)
+ if not bOk:
+ strMsg = strErrMsgModifyPythonLldbPyFileNotFound % (strPyScript, strPath)
+ return bOk, strMsg
+
+ strPyArgs = "%s %s" % (strPath, vstrCfgBldDir)
+ bOk, strMsg = run_python_script(vDictArgs, strPyArgs)
+
+ return bOk, strMsg
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
""" Details: Program main entry point fn. Called by another Python script.
-
- --------------------------------------------------------------------------
- Details: This script is to be called by another Python script. It is not
- intended to be called directly i.e from the command line.
- If environmental variable "LLDB_DISABLE_PYTHON" is defined/exists
- it will cause the script to end early creating nothing.
- If environmental variable "GCC_PREPROCESSOR_DEFINITIONS" is
- defined/exists it will cause the script to end early creating
- nothing.
- Args: vDictArgs - (R) Map of parameter names to values. Used to for the
- the SWIG required parameters to create code. Note
- this container does get amended with more data.
- -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.
- --swigExePath File path the SWIG executable. (Determined and
- passed by buildSwigWrapperClasses.py to here)
- --swigExeName The file name of the SWIG executable. (Determined
- and passed by buildSwigWrapperClasses.py to
- here)
- Results: 0 Success
- 1 Success, generated dependencies removed
- LLDBWrapPython.cpp.d.
- -100+ Error from this script to the caller script.
- -100 Error program failure with optional message.
- -200+ - 200 +- the SWIG exit result.
-
- --------------------------------------------------------------------------
-
+
+ --------------------------------------------------------------------------
+ Details: This script is to be called by another Python script. It is not
+ intended to be called directly i.e from the command line.
+ If environmental variable "LLDB_DISABLE_PYTHON" is defined/exists
+ it will cause the script to end early creating nothing.
+ If environmental variable "GCC_PREPROCESSOR_DEFINITIONS" is
+ defined/exists it will cause the script to end early creating
+ nothing.
+ Args: vDictArgs - (R) Map of parameter names to values. Used to for the
+ the SWIG required parameters to create code. Note
+ this container does get amended with more data.
+ -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.
+ --swigExePath File path the SWIG executable. (Determined and
+ passed by buildSwigWrapperClasses.py to here)
+ --swigExeName The file name of the SWIG executable. (Determined
+ and passed by buildSwigWrapperClasses.py to
+ here)
+ Results: 0 Success
+ 1 Success, generated dependencies removed
+ LLDBWrapPython.cpp.d.
+ -100+ Error from this script to the caller script.
+ -100 Error program failure with optional message.
+ -200+ - 200 +- the SWIG exit result.
+
+ --------------------------------------------------------------------------
+
"""
-def main( vDictArgs ):
- dbg = utilsDebug.CDebugFnVerbose( "Python script main()" );
- bOk = True;
- strMsg = "";
- strErrMsgProgFail = "";
-
- if not("--swigExePath" in vDictArgs) and ("--swigExeName" in vDictArgs):
- strErrMsgProgFail += strErrMsgSwigParamsMissing;
- return (-100, strErrMsgProgFail );
-
- bDebug = "-d" in vDictArgs;
-
- strSwigDepFile = "";
- strSwigDepOptions = "";
- bGenDependencies = "-M" in vDictArgs;
- if bGenDependencies:
- strSwigDepFile = vDictArgs[ "--targetDir" ] + "/LLDBWrapPython.cpp.d";
- strSwigDepOptions = "-MMD -MF \"%s.tmp\"" % strSwigDepFile;
- strSwigDepFile = os.path.normcase( strSwigDepFile );
- strSwigDepOptions = os.path.normcase( strSwigDepOptions );
-
- bMakeFileCalled = "-m" in vDictArgs;
- strSwigOutputFile = ""
- if bMakeFileCalled:
- strSwigOutputFile = vDictArgs[ "--targetDir" ] + "/LLDBWrapPython.cpp";
- else:
- strSwigOutputFile = vDictArgs[ "--srcRoot" ] + "/source/LLDBWrapPython.cpp";
- strSwigOutputFile = os.path.normcase( strSwigOutputFile );
-
- strRt = vDictArgs[ "--srcRoot" ];
- strSwigInputFile = strRt + "/scripts/lldb.swig";
- strSwigPythonExtensions = strRt + "/scripts/Python/python-extensions.swig";
- strSwigPythonWrapper = strRt + "/scripts/Python/python-wrapper.swig";
- strSwigPythonTypemaps = strRt + "/scripts/Python/python-typemaps.swig";
- strSwigPythonSwigsafecast = strRt + "/scripts/Python/python-swigsafecast.swig";
- strSwigInputFile = os.path.normcase( strSwigInputFile );
- strSwigPythonExtensions = os.path.normcase( strSwigPythonExtensions );
- strSwigPythonWrapper = os.path.normcase( strSwigPythonWrapper );
- strSwigPythonTypemaps = os.path.normcase( strSwigPythonTypemaps );
- strSwigPythonSwigsafecast = os.path.normcase( strSwigPythonSwigsafecast );
-
- strEnvVarLLDBDisablePython = os.getenv( "LLDB_DISABLE_PYTHON", None );
- # We don't want Python for this build, but touch the output file so we
- # don't have to conditionalize the build on this as well.
- # Note, at present iOS doesn't have Python, so if you're building for
+def main(vDictArgs):
+ dbg = utilsDebug.CDebugFnVerbose("Python script main()")
+ bOk = True
+ strMsg = ""
+
+ if not("--swigExePath" in vDictArgs) and ("--swigExeName" in vDictArgs):
+ strErrMsgProgFail += strErrMsgSwigParamsMissing
+ return (-100, strErrMsgProgFail)
+
+ bDebug = "-d" in vDictArgs
+
+ strSwigDepFile = ""
+ strSwigDepOptions = ""
+ bGenDependencies = "-M" in vDictArgs
+ if bGenDependencies:
+ strSwigDepFile = vDictArgs["--targetDir"] + "/LLDBWrapPython.cpp.d"
+ strSwigDepOptions = "-MMD -MF \"%s.tmp\"" % strSwigDepFile
+ strSwigDepFile = os.path.normcase(strSwigDepFile)
+ strSwigDepOptions = os.path.normcase(strSwigDepOptions)
+
+ bMakeFileCalled = "-m" in vDictArgs
+ strSwigOutputFile = ""
+ if bMakeFileCalled:
+ strSwigOutputFile = vDictArgs["--targetDir"] + "/LLDBWrapPython.cpp"
+ else:
+ strSwigOutputFile = vDictArgs["--srcRoot"] + "/source/LLDBWrapPython.cpp"
+ strSwigOutputFile = os.path.normcase(strSwigOutputFile)
+
+ strRt = vDictArgs["--srcRoot"]
+ strSwigInputFile = strRt + "/scripts/lldb.swig"
+ strSwigPythonExtensions = strRt + "/scripts/Python/python-extensions.swig"
+ strSwigPythonWrapper = strRt + "/scripts/Python/python-wrapper.swig"
+ strSwigPythonTypemaps = strRt + "/scripts/Python/python-typemaps.swig"
+ strSwigPythonSwigsafecast = strRt + "/scripts/Python/python-swigsafecast.swig"
+ strSwigInputFile = os.path.normcase(strSwigInputFile)
+ strSwigPythonExtensions = os.path.normcase(strSwigPythonExtensions)
+ strSwigPythonWrapper = os.path.normcase(strSwigPythonWrapper)
+ strSwigPythonTypemaps = os.path.normcase(strSwigPythonTypemaps)
+ strSwigPythonSwigsafecast = os.path.normcase(strSwigPythonSwigsafecast)
+
+ strEnvVarLLDBDisablePython = os.getenv("LLDB_DISABLE_PYTHON", None)
+ # We don't want Python for this build, but touch the output file so we
+ # don't have to conditionalize the build on this as well.
+ # Note, at present iOS doesn't have Python, so if you're building for
# iOS be sure to set LLDB_DISABLE_PYTHON to 1.
- if (strEnvVarLLDBDisablePython != None) and \
- (strEnvVarLLDBDisablePython == "1"):
- remove_ignore_enoent( strSwigOutputFile )
- open( strSwigOutputFile, 'w' ).close(); # Touch the file
- if bDebug:
- strMsg = strMsgLldbDisablePythonEnv;
- return (0, strMsg );
-
- # If this project is being built with LLDB_DISABLE_PYTHON defined,
- # don't bother generating Python swig bindings -- we don't have
- # Python available.
- strEnvVarGccPreprocessDefs = os.getenv( "GCC_PREPROCESSOR_DEFINITIONS",
- None );
- if (strEnvVarGccPreprocessDefs != None) or \
- (strEnvVarLLDBDisablePython != None):
- remove_ignore_enoent( strSwigOutputFile )
- open( strSwigOutputFile, 'w' ).close(); # Touch the file
- if bDebug:
- strMsg = strMsgLldbDisableGccEnv;
- return (0, strMsg);
-
- bOk = bOk and get_header_files( vDictArgs );
- bOk = bOk and get_interface_files( vDictArgs );
-
- strFrameworkPythonDir = "";
- if bOk:
- bNeedUpdate = (check_file_exists( vDictArgs, strSwigOutputFile ) == False);
- dbg.dump_object( "check_file_exists strSwigOutputFile, bNeedUpdate =", bNeedUpdate);
- if bNeedUpdate == False:
- bNeedUpdate = check_newer_files( vDictArgs, strSwigOutputFile, vDictArgs[ "--headerFiles" ] );
- dbg.dump_object( "check_newer_files header files than strSwigOutputFile, bNeedUpdate =", bNeedUpdate);
- if bNeedUpdate == False:
- bNeedUpdate = check_newer_files( vDictArgs, strSwigOutputFile, vDictArgs[ "--ifaceFiles" ] );
- dbg.dump_object( "check_newer_files iface files than strSwigOutputFile, bNeedUpdate =", bNeedUpdate);
- if bNeedUpdate == False:
- bNeedUpdate = check_newer_file( vDictArgs, strSwigOutputFile, strSwigInputFile );
- dbg.dump_object( "check_newer_files strSwigInputFile than strSwigOutputFile, bNeedUpdate =", bNeedUpdate);
- if bNeedUpdate == False:
- bNeedUpdate = check_newer_file( vDictArgs, strSwigOutputFile, strSwigPythonExtensions );
- dbg.dump_object( "check_newer_files strSwigPythonExtensions than strSwigOutputFile, bNeedUpdate =", bNeedUpdate);
- if bNeedUpdate == False:
- bNeedUpdate = check_newer_file( vDictArgs, strSwigOutputFile, strSwigPythonWrapper );
- dbg.dump_object( "check_newer_files strSwigPythonWrapper than strSwigOutputFile, bNeedUpdate =", bNeedUpdate);
- if bNeedUpdate == False:
- bNeedUpdate = check_newer_file( vDictArgs, strSwigOutputFile, strSwigPythonTypemaps );
- dbg.dump_object( "check_newer_files strSwigPythonTypemaps than strSwigOutputFile, bNeedUpdate =", bNeedUpdate);
- if bNeedUpdate == False:
- bNeedUpdate = check_newer_file( vDictArgs, strSwigOutputFile, strSwigPythonSwigsafecast );
- dbg.dump_object( "check_newer_files strSwigPythonSwigsafecast than strSwigOutputFile, bNeedUpdate =", bNeedUpdate);
-
- # Determine where to put the files
- bOk, strFrameworkPythonDir, strMsg = get_framework_python_dir( vDictArgs );
-
- if bOk:
- bOk, strCfgBldDir, strMsg = get_config_build_dir( vDictArgs, strFrameworkPythonDir );
-
- if bOk and (bNeedUpdate == False):
- strDllPath = strFrameworkPythonDir + "/_lldb.so";
- strDllPath = os.path.normcase( strDllPath );
- bSymbolicLink = check_file_exists( vDictArgs, strDllPath ) and os.path.islink( strDllPath );
- bNeedUpdate = not bSymbolicLink;
- dbg.dump_object( "check_file_exists( vDictArgs, strDllPath ) and os.path.islink( strDllPath ), bNeedUpdate =", bNeedUpdate);
-
- if bOk and (bNeedUpdate == False):
- strInitPiPath = strFrameworkPythonDir + "/__init__.py";
- strInitPiPath = os.path.normcase( strInitPiPath );
- print(strInitPiPath)
- bNeedUpdate = not check_file_exists( vDictArgs, strInitPiPath );
- dbg.dump_object( "check_file_exists( vDictArgs, strInitPiPath ), bNeedUpdate =", bNeedUpdate);
-
- if bOk:
- if (bNeedUpdate == False):
- strMsg = strMsgNotNeedUpdate;
- return (0, strMsg );
- else:
- print(strMsgSwigNeedRebuild);
- bOk, strMsg, nExitResult = do_swig_rebuild( vDictArgs, strSwigDepFile,
- strCfgBldDir,
- strSwigOutputFile,
- strSwigInputFile );
- bGenDependencies = "-M" in vDictArgs;
- if bGenDependencies == True:
- return (nExitResult, strMsg);
-
- if bOk:
- bOk, strMsg = do_modify_python_lldb( vDictArgs, strCfgBldDir );
-
- if bOk:
- return (0, strMsg );
- else:
- strErrMsgProgFail += strMsg;
- return (-100, strErrMsgProgFail );
-
+ if (strEnvVarLLDBDisablePython != None) and \
+ (strEnvVarLLDBDisablePython == "1"):
+ remove_ignore_enoent(strSwigOutputFile)
+ open(strSwigOutputFile, 'w').close() # Touch the file
+ if bDebug:
+ strMsg = strMsgLldbDisablePythonEnv
+ return (0, strMsg)
+
+ # If this project is being built with LLDB_DISABLE_PYTHON defined,
+ # don't bother generating Python swig bindings -- we don't have
+ # Python available.
+ strEnvVarGccPreprocessDefs = os.getenv("GCC_PREPROCESSOR_DEFINITIONS",
+ None)
+ if (strEnvVarGccPreprocessDefs != None) or \
+ (strEnvVarLLDBDisablePython != None):
+ remove_ignore_enoent(strSwigOutputFile)
+ open(strSwigOutputFile, 'w').close() # Touch the file
+ if bDebug:
+ strMsg = strMsgLldbDisableGccEnv
+ return (0, strMsg)
+
+ bOk = bOk and get_header_files(vDictArgs)
+ bOk = bOk and get_interface_files(vDictArgs)
+
+ strFrameworkPythonDir = ""
+ if bOk:
+ bNeedUpdate = (check_file_exists(vDictArgs, strSwigOutputFile) == False)
+ dbg.dump_object("check_file_exists strSwigOutputFile, bNeedUpdate =", bNeedUpdate)
+ if bNeedUpdate == False:
+ bNeedUpdate = check_newer_files(vDictArgs, strSwigOutputFile, vDictArgs["--headerFiles"])
+ dbg.dump_object("check_newer_files header files than strSwigOutputFile, bNeedUpdate =", bNeedUpdate)
+ if bNeedUpdate == False:
+ bNeedUpdate = check_newer_files(vDictArgs, strSwigOutputFile, vDictArgs["--ifaceFiles"])
+ dbg.dump_object("check_newer_files iface files than strSwigOutputFile, bNeedUpdate =", bNeedUpdate)
+ if bNeedUpdate == False:
+ bNeedUpdate = check_newer_file(vDictArgs, strSwigOutputFile, strSwigInputFile)
+ dbg.dump_object("check_newer_files strSwigInputFile than strSwigOutputFile, bNeedUpdate =", bNeedUpdate)
+ if bNeedUpdate == False:
+ bNeedUpdate = check_newer_file(vDictArgs, strSwigOutputFile, strSwigPythonExtensions)
+ dbg.dump_object("check_newer_files strSwigPythonExtensions than strSwigOutputFile, bNeedUpdate =", bNeedUpdate)
+ if bNeedUpdate == False:
+ bNeedUpdate = check_newer_file(vDictArgs, strSwigOutputFile, strSwigPythonWrapper)
+ dbg.dump_object("check_newer_files strSwigPythonWrapper than strSwigOutputFile, bNeedUpdate =", bNeedUpdate)
+ if bNeedUpdate == False:
+ bNeedUpdate = check_newer_file(vDictArgs, strSwigOutputFile, strSwigPythonTypemaps)
+ dbg.dump_object("check_newer_files strSwigPythonTypemaps than strSwigOutputFile, bNeedUpdate =", bNeedUpdate)
+ if bNeedUpdate == False:
+ bNeedUpdate = check_newer_file(vDictArgs, strSwigOutputFile, strSwigPythonSwigsafecast)
+ dbg.dump_object("check_newer_files strSwigPythonSwigsafecast than strSwigOutputFile, bNeedUpdate =", bNeedUpdate)
+
+ # Determine where to put the files
+ bOk, strFrameworkPythonDir, strMsg = get_framework_python_dir(vDictArgs)
+
+ if bOk:
+ bOk, strCfgBldDir, strMsg = get_config_build_dir(vDictArgs, strFrameworkPythonDir)
+
+ if bOk and (bNeedUpdate == False):
+ strDllPath = strFrameworkPythonDir + "/_lldb.so"
+ strDllPath = os.path.normcase(strDllPath)
+ bSymbolicLink = check_file_exists(vDictArgs, strDllPath) and os.path.islink(strDllPath)
+ bNeedUpdate = not bSymbolicLink
+ dbg.dump_object("check_file_exists(vDictArgs, strDllPath) and os.path.islink(strDllPath), bNeedUpdate =", bNeedUpdate)
+
+ if bOk and (bNeedUpdate == False):
+ strInitPiPath = strFrameworkPythonDir + "/__init__.py"
+ strInitPiPath = os.path.normcase(strInitPiPath)
+ print(strInitPiPath)
+ bNeedUpdate = not check_file_exists(vDictArgs, strInitPiPath)
+ dbg.dump_object("check_file_exists(vDictArgs, strInitPiPath), bNeedUpdate =", bNeedUpdate)
+
+ if bOk:
+ if bNeedUpdate == False:
+ strMsg = strMsgNotNeedUpdate
+ return (0, strMsg)
+ else:
+ print(strMsgSwigNeedRebuild)
+ bOk, strMsg, nExitResult = do_swig_rebuild(vDictArgs, strSwigDepFile,
+ strCfgBldDir,
+ strSwigOutputFile,
+ strSwigInputFile)
+ bGenDependencies = "-M" in vDictArgs
+ if bGenDependencies == True:
+ return (nExitResult, strMsg)
+
+ if bOk:
+ bOk, strMsg = do_modify_python_lldb(vDictArgs, strCfgBldDir)
+
+ if bOk:
+ return (0, strMsg)
+ else:
+ strErrMsgProgFail += strMsg
+ return (-100, strErrMsgProgFail)
+
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
-# This script can be called by another Python script by calling the main()
+# This script can be called by another Python script by calling the main()
# function directly
if __name__ == "__main__":
- print("Script cannot be called directly, called by buildSwigWrapperClasses.py");
-
+ print("Script cannot be called directly, called by buildSwigWrapperClasses.py")
Modified: lldb/trunk/scripts/Python/finishSwigPythonLLDB.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/Python/finishSwigPythonLLDB.py?rev=252244&r1=252243&r2=252244&view=diff
==============================================================================
--- lldb/trunk/scripts/Python/finishSwigPythonLLDB.py (original)
+++ lldb/trunk/scripts/Python/finishSwigPythonLLDB.py Thu Nov 5 17:57:33 2015
@@ -38,9 +38,7 @@
# Python modules:
import os # Provide directory and file handling, determine OS information
import sys # System specific parameters and functions
-import errno # OS error results
import shutil # High-level operations on files and collections of files
-import subprocess # Call external programs
import ctypes # Invoke Windows API for creating symlinks
# Third party modules:
@@ -50,28 +48,28 @@ import utilsOsType # Determine the
import utilsDebug # Debug Python scripts
# User facing text:
-strMsgOsVersion = "The current OS is %s";
-strMsgPyVersion = "The Python version is %d.%d";
-strErrMsgProgFail = "Program failure: ";
-strErrMsgLLDBPyFileNotNotFound = "Unable to locate lldb.py at path '%s'";
-strMsgCopyLLDBPy = "Copying lldb.py from '%s' to '%s'";
-strErrMsgFrameWkPyDirNotExist = "Unable to find the LLDB.framework directory '%s'";
-strMsgCreatePyPkgCopyPkgFile = "create_py_pkg: Copied file '%s' to folder '%s'";
-strMsgCreatePyPkgInitFile = "create_py_pkg: Creating pakage init file '%s'";
-strMsgCreatePyPkgMkDir = "create_py_pkg: Created folder '%s'";
-strMsgConfigBuildDir = "Configuration build directory located at '%s'";
-strMsgFoundLldbFrameWkDir = "Found '%s'";
-strMsgPyFileLocatedHere = "Python file will be put in '%s'";
-strMsgFrameWkPyExists = "Python output folder '%s' already exists";
-strMsgFrameWkPyMkDir = "Python output folder '%s' will be created";
-strErrMsgCreateFrmWkPyDirFailed = "Unable to create directory '%s' error: %s";
-strMsgSymlinkExists = "Symlink for '%s' already exists";
-strMsgSymlinkMk = "Creating symlink for %s (%s -> %s)";
-strErrMsgCpLldbpy = "copying lldb to lldb package directory";
-strErrMsgCreatePyPkgMissingSlash = "Parameter 3 fn create_py_pkg() missing slash";
-strErrMsgMkLinkExecute = "Command mklink failed: %s";
-strErrMsgMakeSymlink = "creating symbolic link";
-strErrMsgUnexpected = "Unexpected error: %s";
+strMsgOsVersion = "The current OS is %s"
+strMsgPyVersion = "The Python version is %d.%d"
+strErrMsgProgFail = "Program failure: "
+strErrMsgLLDBPyFileNotNotFound = "Unable to locate lldb.py at path '%s'"
+strMsgCopyLLDBPy = "Copying lldb.py from '%s' to '%s'"
+strErrMsgFrameWkPyDirNotExist = "Unable to find the LLDB.framework directory '%s'"
+strMsgCreatePyPkgCopyPkgFile = "create_py_pkg: Copied file '%s' to folder '%s'"
+strMsgCreatePyPkgInitFile = "create_py_pkg: Creating pakage init file '%s'"
+strMsgCreatePyPkgMkDir = "create_py_pkg: Created folder '%s'"
+strMsgConfigBuildDir = "Configuration build directory located at '%s'"
+strMsgFoundLldbFrameWkDir = "Found '%s'"
+strMsgPyFileLocatedHere = "Python file will be put in '%s'"
+strMsgFrameWkPyExists = "Python output folder '%s' already exists"
+strMsgFrameWkPyMkDir = "Python output folder '%s' will be created"
+strErrMsgCreateFrmWkPyDirFailed = "Unable to create directory '%s' error: %s"
+strMsgSymlinkExists = "Symlink for '%s' already exists"
+strMsgSymlinkMk = "Creating symlink for %s (%s -> %s)"
+strErrMsgCpLldbpy = "copying lldb to lldb package directory"
+strErrMsgCreatePyPkgMissingSlash = "Parameter 3 fn create_py_pkg() missing slash"
+strErrMsgMkLinkExecute = "Command mklink failed: %s"
+strErrMsgMakeSymlink = "creating symbolic link"
+strErrMsgUnexpected = "Unexpected error: %s"
def is_debug_interpreter():
return hasattr(sys, 'gettotalrefcount')
@@ -84,29 +82,29 @@ def is_debug_interpreter():
# Str - Error description on task failure.
# Throws: None.
#--
-def macosx_copy_file_for_heap( vDictArgs, vstrFrameworkPythonDir ):
- dbg = utilsDebug.CDebugFnVerbose( "Python script macosx_copy_file_for_heap()" );
- bOk = True;
- strMsg = "";
+def macosx_copy_file_for_heap(vDictArgs, vstrFrameworkPythonDir):
+ dbg = utilsDebug.CDebugFnVerbose("Python script macosx_copy_file_for_heap()")
+ bOk = True
+ strMsg = ""
- eOSType = utilsOsType.determine_os_type();
+ eOSType = utilsOsType.determine_os_type()
if eOSType != utilsOsType.EnumOsType.Darwin:
- return (bOk, strMsg);
+ return (bOk, strMsg)
- strHeapDir = os.path.join(vstrFrameworkPythonDir, "macosx", "heap");
- strHeapDir = os.path.normcase( strHeapDir );
- if (os.path.exists( strHeapDir ) and os.path.isdir( strHeapDir )):
- return (bOk, strMsg);
-
- os.makedirs( strHeapDir );
-
- strRoot = os.path.normpath(vDictArgs[ "--srcRoot" ]);
- strSrc = os.path.join(strRoot, "examples", "darwin", "heap_find", "heap", "heap_find.cpp");
- shutil.copy( strSrc, strHeapDir );
- strSrc = os.path.join(strRoot, "examples", "darwin", "heap_find", "heap", "Makefile");
- shutil.copy( strSrc, strHeapDir );
+ strHeapDir = os.path.join(vstrFrameworkPythonDir, "macosx", "heap")
+ strHeapDir = os.path.normcase(strHeapDir)
+ if os.path.exists(strHeapDir) and os.path.isdir(strHeapDir):
+ return (bOk, strMsg)
+
+ os.makedirs(strHeapDir)
+
+ strRoot = os.path.normpath(vDictArgs["--srcRoot"])
+ strSrc = os.path.join(strRoot, "examples", "darwin", "heap_find", "heap", "heap_find.cpp")
+ shutil.copy(strSrc, strHeapDir)
+ strSrc = os.path.join(strRoot, "examples", "darwin", "heap_find", "heap", "Makefile")
+ shutil.copy(strSrc, strHeapDir)
- return (bOk, strMsg);
+ return (bOk, strMsg)
#++---------------------------------------------------------------------------
# Details: Create Python packages and Python __init__ files.
@@ -118,63 +116,63 @@ def macosx_copy_file_for_heap( vDictArgs
# Str - Error description on task failure.
# Throws: None.
#--
-def create_py_pkg( vDictArgs, vstrFrameworkPythonDir, vstrPkgDir, vListPkgFiles ):
- dbg = utilsDebug.CDebugFnVerbose( "Python script create_py_pkg()" );
- dbg.dump_object( "Package file(s):", vListPkgFiles );
- bDbg = "-d" in vDictArgs;
-
- bOk = True;
- strMsg = "";
-
- if vstrPkgDir.__len__() != 0 and vstrPkgDir[ 0 ] != "/":
- bOk = False;
- strMsg = strErrMsgCreatePyPkgMissingSlash;
- return (bOk, strMsg);
-
- strPkgName = vstrPkgDir;
- strPkgName = "lldb" + strPkgName.replace( "/", "." );
-
- strPkgDir = vstrFrameworkPythonDir;
- strPkgDir += vstrPkgDir;
- strPkgDir = os.path.normcase( strPkgDir );
+def create_py_pkg(vDictArgs, vstrFrameworkPythonDir, vstrPkgDir, vListPkgFiles):
+ dbg = utilsDebug.CDebugFnVerbose("Python script create_py_pkg()")
+ dbg.dump_object("Package file(s):", vListPkgFiles)
+ bDbg = "-d" in vDictArgs
+
+ bOk = True
+ strMsg = ""
+
+ if vstrPkgDir.__len__() != 0 and vstrPkgDir[0] != "/":
+ bOk = False
+ strMsg = strErrMsgCreatePyPkgMissingSlash
+ return (bOk, strMsg)
+
+ strPkgName = vstrPkgDir
+ strPkgName = "lldb" + strPkgName.replace("/", ".")
+
+ strPkgDir = vstrFrameworkPythonDir
+ strPkgDir += vstrPkgDir
+ strPkgDir = os.path.normcase(strPkgDir)
- if not(os.path.exists( strPkgDir ) and os.path.isdir( strPkgDir )):
+ if not(os.path.exists(strPkgDir) and os.path.isdir(strPkgDir)):
if bDbg:
- print((strMsgCreatePyPkgMkDir % strPkgDir));
- os.makedirs( strPkgDir );
+ print((strMsgCreatePyPkgMkDir % strPkgDir))
+ os.makedirs(strPkgDir)
for strPkgFile in vListPkgFiles:
- if os.path.exists( strPkgFile ) and os.path.isfile( strPkgFile ):
+ if os.path.exists(strPkgFile) and os.path.isfile(strPkgFile):
if bDbg:
- print((strMsgCreatePyPkgCopyPkgFile % (strPkgFile, strPkgDir)));
- shutil.copy( strPkgFile, strPkgDir );
+ print((strMsgCreatePyPkgCopyPkgFile % (strPkgFile, strPkgDir)))
+ shutil.copy(strPkgFile, strPkgDir)
# Create a packet init files if there wasn't one
- strPkgIniFile = os.path.normpath(os.path.join(strPkgDir, "__init__.py"));
- if os.path.exists( strPkgIniFile ) and os.path.isfile( strPkgIniFile ):
- return (bOk, strMsg);
+ strPkgIniFile = os.path.normpath(os.path.join(strPkgDir, "__init__.py"))
+ if os.path.exists(strPkgIniFile) and os.path.isfile(strPkgIniFile):
+ return (bOk, strMsg)
- strPyScript = "__all__ = [";
- strDelimiter = "";
+ strPyScript = "__all__ = ["
+ strDelimiter = ""
for strPkgFile in vListPkgFiles:
- if os.path.exists( strPkgFile ) and os.path.isfile( strPkgFile ):
- strBaseName = os.path.basename( strPkgFile );
- nPos = strBaseName.find( "." );
+ if os.path.exists(strPkgFile) and os.path.isfile(strPkgFile):
+ strBaseName = os.path.basename(strPkgFile)
+ nPos = strBaseName.find(".")
if nPos != -1:
- strBaseName = strBaseName[ 0 : nPos ];
- strPyScript += "%s\"%s\"" % (strDelimiter, strBaseName);
- strDelimiter = ",";
- strPyScript += "]\n";
- strPyScript += "for x in __all__:\n";
- strPyScript += "\t__import__('%s.' + x)" % strPkgName;
+ strBaseName = strBaseName[0 : nPos]
+ strPyScript += "%s\"%s\"" % (strDelimiter, strBaseName)
+ strDelimiter = ","
+ strPyScript += "]\n"
+ strPyScript += "for x in __all__:\n"
+ strPyScript += "\t__import__('%s.' + x)" % strPkgName
if bDbg:
- print((strMsgCreatePyPkgInitFile % strPkgIniFile));
- file = open( strPkgIniFile, "w" );
- file.write( strPyScript );
- file.close();
+ print((strMsgCreatePyPkgInitFile % strPkgIniFile))
+ file = open(strPkgIniFile, "w")
+ file.write(strPyScript)
+ file.close()
- return (bOk, strMsg);
+ return (bOk, strMsg)
#++---------------------------------------------------------------------------
# Details: Copy the lldb.py file into the lldb package directory and rename
@@ -186,35 +184,35 @@ def create_py_pkg( vDictArgs, vstrFramew
# Str - Error description on task failure.
# Throws: None.
#--
-def copy_lldbpy_file_to_lldb_pkg_dir( vDictArgs, vstrFrameworkPythonDir, vstrCfgBldDir ):
- dbg = utilsDebug.CDebugFnVerbose( "Python script copy_lldbpy_file_to_lldb_pkg_dir()" );
- bOk = True;
- bDbg = "-d" in vDictArgs;
- strMsg = "";
-
- strSrc = os.path.join(vstrCfgBldDir, "lldb.py");
- strSrc = os.path.normcase( strSrc );
- strDst = os.path.join(vstrFrameworkPythonDir, "__init__.py");
- strDst = os.path.normcase( strDst );
-
- if not os.path.exists( strSrc ):
- strMsg = strErrMsgLLDBPyFileNotNotFound % strSrc;
- return (bOk, strMsg);
+def copy_lldbpy_file_to_lldb_pkg_dir(vDictArgs, vstrFrameworkPythonDir, vstrCfgBldDir):
+ dbg = utilsDebug.CDebugFnVerbose("Python script copy_lldbpy_file_to_lldb_pkg_dir()")
+ bOk = True
+ bDbg = "-d" in vDictArgs
+ strMsg = ""
+
+ strSrc = os.path.join(vstrCfgBldDir, "lldb.py")
+ strSrc = os.path.normcase(strSrc)
+ strDst = os.path.join(vstrFrameworkPythonDir, "__init__.py")
+ strDst = os.path.normcase(strDst)
+
+ if not os.path.exists(strSrc):
+ strMsg = strErrMsgLLDBPyFileNotNotFound % strSrc
+ return (bOk, strMsg)
try:
if bDbg:
- print((strMsgCopyLLDBPy % (strSrc, strDst)));
- shutil.copyfile( strSrc, strDst );
+ print((strMsgCopyLLDBPy % (strSrc, strDst)))
+ shutil.copyfile(strSrc, strDst)
except IOError as e:
- bOk = False;
- strMsg = "I/O error( %d ): %s %s" % (e.errno, e.strerror, strErrMsgCpLldbpy);
+ bOk = False
+ strMsg = "I/O error(%d): %s %s" % (e.errno, e.strerror, strErrMsgCpLldbpy)
if e.errno == 2:
- strMsg += " Src:'%s' Dst:'%s'" % (strSrc, strDst);
+ strMsg += " Src:'%s' Dst:'%s'" % (strSrc, strDst)
except:
- bOk = False;
- strMsg = strErrMsgUnexpected % sys.exec_info()[ 0 ];
+ bOk = False
+ strMsg = strErrMsgUnexpected % sys.exec_info()[0]
- return (bOk, strMsg);
+ return (bOk, strMsg)
#++---------------------------------------------------------------------------
# Details: Make the symbolic link on a Windows platform.
@@ -224,11 +222,11 @@ def copy_lldbpy_file_to_lldb_pkg_dir( vD
# Str - Error description on task failure.
# Throws: None.
#--
-def make_symlink_windows( vstrSrcPath, vstrTargetPath ):
- print(("Making symlink from %s to %s" % (vstrSrcPath, vstrTargetPath)));
- dbg = utilsDebug.CDebugFnVerbose( "Python script make_symlink_windows()" );
- bOk = True;
- strErrMsg = "";
+def make_symlink_windows(vstrSrcPath, vstrTargetPath):
+ print(("Making symlink from %s to %s" % (vstrSrcPath, vstrTargetPath)))
+ dbg = utilsDebug.CDebugFnVerbose("Python script make_symlink_windows()")
+ bOk = True
+ strErrMsg = ""
try:
csl = ctypes.windll.kernel32.CreateHardLinkW
@@ -238,11 +236,11 @@ def make_symlink_windows( vstrSrcPath, v
raise ctypes.WinError()
except Exception as e:
if e.errno != 17:
- bOk = False;
- strErrMsg = "WinError( %d ): %s %s" % (e.errno, e.strerror, strErrMsgMakeSymlink);
- strErrMsg += " Src:'%s' Target:'%s'" % (vstrSrcPath, vstrTargetPath);
+ bOk = False
+ strErrMsg = "WinError(%d): %s %s" % (e.errno, e.strerror, strErrMsgMakeSymlink)
+ strErrMsg += " Src:'%s' Target:'%s'" % (vstrSrcPath, vstrTargetPath)
- return (bOk, strErrMsg);
+ return (bOk, strErrMsg)
#++---------------------------------------------------------------------------
# Details: Make the symbolic link on a UNIX style platform.
@@ -252,22 +250,22 @@ def make_symlink_windows( vstrSrcPath, v
# Str - Error description on task failure.
# Throws: None.
#--
-def make_symlink_other_platforms( vstrSrcPath, vstrTargetPath ):
- dbg = utilsDebug.CDebugFnVerbose( "Python script make_symlink_other_platforms()" );
- bOk = True;
- strErrMsg = "";
+def make_symlink_other_platforms(vstrSrcPath, vstrTargetPath):
+ dbg = utilsDebug.CDebugFnVerbose("Python script make_symlink_other_platforms()")
+ bOk = True
+ strErrMsg = ""
try:
- os.symlink( vstrSrcPath, vstrTargetPath );
+ os.symlink(vstrSrcPath, vstrTargetPath)
except OSError as e:
- bOk = False;
- strErrMsg = "OSError( %d ): %s %s" % (e.errno, e.strerror, strErrMsgMakeSymlink);
- strErrMsg += " Src:'%s' Target:'%s'" % (vstrSrcPath, vstrTargetPath);
+ bOk = False
+ strErrMsg = "OSError(%d): %s %s" % (e.errno, e.strerror, strErrMsgMakeSymlink)
+ strErrMsg += " Src:'%s' Target:'%s'" % (vstrSrcPath, vstrTargetPath)
except:
- bOk = False;
- strErrMsg = strErrMsgUnexpected % sys.exec_info()[ 0 ];
+ bOk = False
+ strErrMsg = strErrMsgUnexpected % sys.exec_info()[0]
- return (bOk, strErrMsg);
+ return (bOk, strErrMsg)
#++---------------------------------------------------------------------------
# Details: Make the symbolic link.
@@ -279,55 +277,55 @@ def make_symlink_other_platforms( vstrSr
# Str - Error description on task failure.
# Throws: None.
#--
-def make_symlink( vDictArgs, vstrFrameworkPythonDir, vstrSrcFile, vstrTargetFile ):
- dbg = utilsDebug.CDebugFnVerbose( "Python script make_symlink()" );
- bOk = True;
- strErrMsg = "";
- bDbg = "-d" in vDictArgs;
- strTarget = os.path.join(vstrFrameworkPythonDir, vstrTargetFile);
- strTarget = os.path.normcase( strTarget );
- strSrc = "";
-
- os.chdir( vstrFrameworkPythonDir );
- bMakeFileCalled = "-m" in vDictArgs;
- eOSType = utilsOsType.determine_os_type();
+def make_symlink(vDictArgs, vstrFrameworkPythonDir, vstrSrcFile, vstrTargetFile):
+ dbg = utilsDebug.CDebugFnVerbose("Python script make_symlink()")
+ bOk = True
+ strErrMsg = ""
+ bDbg = "-d" in vDictArgs
+ strTarget = os.path.join(vstrFrameworkPythonDir, vstrTargetFile)
+ strTarget = os.path.normcase(strTarget)
+ strSrc = ""
+
+ os.chdir(vstrFrameworkPythonDir)
+ bMakeFileCalled = "-m" in vDictArgs
+ eOSType = utilsOsType.determine_os_type()
if not bMakeFileCalled:
- return (bOk, strErrMsg);
+ return (bOk, strErrMsg)
else:
# Resolve vstrSrcFile path relatively the build directory
if eOSType == utilsOsType.EnumOsType.Windows:
# On a Windows platform the vstrFrameworkPythonDir looks like:
# llvm\\build\\Lib\\site-packages\\lldb
- strBuildDir = os.path.join("..", "..", "..");
+ strBuildDir = os.path.join("..", "..", "..")
else:
# On a UNIX style platform the vstrFrameworkPythonDir looks like:
# llvm/build/lib/python2.7/site-packages/lldb
- strBuildDir = os.path.join("..", "..", "..", "..");
- strSrc = os.path.normcase(os.path.join(strBuildDir, vstrSrcFile));
+ strBuildDir = os.path.join("..", "..", "..", "..")
+ strSrc = os.path.normcase(os.path.join(strBuildDir, vstrSrcFile))
if eOSType == utilsOsType.EnumOsType.Unknown:
- bOk = False;
- strErrMsg = strErrMsgOsTypeUnknown;
+ bOk = False
+ strErrMsg = strErrMsgOsTypeUnknown
elif eOSType == utilsOsType.EnumOsType.Windows:
- if os.path.isfile( strTarget ):
+ if os.path.isfile(strTarget):
if bDbg:
- print((strMsgSymlinkExists % vstrTargetFile));
- return (bOk, strErrMsg);
+ print((strMsgSymlinkExists % vstrTargetFile))
+ return (bOk, strErrMsg)
if bDbg:
- print((strMsgSymlinkMk % (vstrTargetFile, strSrc, strTarget)));
- bOk, strErrMsg = make_symlink_windows( strSrc,
- strTarget );
+ print((strMsgSymlinkMk % (vstrTargetFile, strSrc, strTarget)))
+ bOk, strErrMsg = make_symlink_windows(strSrc,
+ strTarget)
else:
- if os.path.islink( strTarget ):
+ if os.path.islink(strTarget):
if bDbg:
- print((strMsgSymlinkExists % vstrTargetFile));
- return (bOk, strErrMsg);
+ print((strMsgSymlinkExists % vstrTargetFile))
+ return (bOk, strErrMsg)
if bDbg:
- print((strMsgSymlinkMk % (vstrTargetFile, strSrc, strTarget)));
- bOk, strErrMsg = make_symlink_other_platforms( strSrc,
- strTarget );
+ print((strMsgSymlinkMk % (vstrTargetFile, strSrc, strTarget)))
+ bOk, strErrMsg = make_symlink_other_platforms(strSrc,
+ strTarget)
- return (bOk, strErrMsg);
+ return (bOk, strErrMsg)
#++---------------------------------------------------------------------------
# Details: Make the symbolic that the script bridge for Python will need in
@@ -339,41 +337,41 @@ def make_symlink( vDictArgs, vstrFramewo
# Str - Error description on task failure.
# Throws: None.
#--
-def make_symlink_liblldb( vDictArgs, vstrFrameworkPythonDir, vstrLiblldbFileName ):
- dbg = utilsDebug.CDebugFnVerbose( "Python script make_symlink_liblldb()" );
- bOk = True;
- strErrMsg = "";
- strTarget = vstrLiblldbFileName;
- strSrc = "";
+def make_symlink_liblldb(vDictArgs, vstrFrameworkPythonDir, vstrLiblldbFileName):
+ dbg = utilsDebug.CDebugFnVerbose("Python script make_symlink_liblldb()")
+ bOk = True
+ strErrMsg = ""
+ strTarget = vstrLiblldbFileName
+ strSrc = ""
- eOSType = utilsOsType.determine_os_type();
+ eOSType = utilsOsType.determine_os_type()
if eOSType == utilsOsType.EnumOsType.Windows:
# When importing an extension module using a debug version of python, you
# write, for example, "import foo", but the interpreter searches for
# "foo_d.pyd"
if is_debug_interpreter():
- strTarget += "_d";
- strTarget += ".pyd";
+ strTarget += "_d"
+ strTarget += ".pyd"
else:
- strTarget += ".so";
+ strTarget += ".so"
- bMakeFileCalled = "-m" in vDictArgs;
+ bMakeFileCalled = "-m" in vDictArgs
if not bMakeFileCalled:
- strSrc = os.path.join("lib", "LLDB");
+ strSrc = os.path.join("lib", "LLDB")
else:
- strLibFileExtn = "";
+ strLibFileExtn = ""
if eOSType == utilsOsType.EnumOsType.Windows:
- strSrc = os.path.join("bin", "liblldb.dll");
+ strSrc = os.path.join("bin", "liblldb.dll")
else:
if eOSType == utilsOsType.EnumOsType.Darwin:
- strLibFileExtn = ".dylib";
+ strLibFileExtn = ".dylib"
else:
- strLibFileExtn = ".so";
- strSrc = os.path.join("lib", "liblldb" + strLibFileExtn);
+ strLibFileExtn = ".so"
+ strSrc = os.path.join("lib", "liblldb" + strLibFileExtn)
- bOk, strErrMsg = make_symlink( vDictArgs, vstrFrameworkPythonDir, strSrc, strTarget );
+ bOk, strErrMsg = make_symlink(vDictArgs, vstrFrameworkPythonDir, strSrc, strTarget)
- return (bOk, strErrMsg);
+ return (bOk, strErrMsg)
#++---------------------------------------------------------------------------
# Details: Make the symbolic link to the darwin-debug.
@@ -384,22 +382,22 @@ def make_symlink_liblldb( vDictArgs, vst
# Str - Error description on task failure.
# Throws: None.
#--
-def make_symlink_darwin_debug( vDictArgs, vstrFrameworkPythonDir, vstrDarwinDebugFileName ):
- dbg = utilsDebug.CDebugFnVerbose( "Python script make_symlink_darwin_debug()" );
- bOk = True;
- strErrMsg = "";
- strTarget = vstrDarwinDebugFileName;
- strSrc = "";
+def make_symlink_darwin_debug(vDictArgs, vstrFrameworkPythonDir, vstrDarwinDebugFileName):
+ dbg = utilsDebug.CDebugFnVerbose("Python script make_symlink_darwin_debug()")
+ bOk = True
+ strErrMsg = ""
+ strTarget = vstrDarwinDebugFileName
+ strSrc = ""
- bMakeFileCalled = "-m" in vDictArgs;
+ bMakeFileCalled = "-m" in vDictArgs
if not bMakeFileCalled:
- return (bOk, strErrMsg);
+ return (bOk, strErrMsg)
else:
- strSrc = os.path.join("bin", "lldb-launcher");
+ strSrc = os.path.join("bin", "lldb-launcher")
- bOk, strErrMsg = make_symlink( vDictArgs, vstrFrameworkPythonDir, strSrc, strTarget );
+ bOk, strErrMsg = make_symlink(vDictArgs, vstrFrameworkPythonDir, strSrc, strTarget)
- return (bOk, strErrMsg);
+ return (bOk, strErrMsg)
#++---------------------------------------------------------------------------
# Details: Make the symbolic link to the lldb-argdumper.
@@ -410,29 +408,29 @@ def make_symlink_darwin_debug( vDictArgs
# Str - Error description on task failure.
# Throws: None.
#--
-def make_symlink_lldb_argdumper( vDictArgs, vstrFrameworkPythonDir, vstrArgdumperFileName ):
- dbg = utilsDebug.CDebugFnVerbose( "Python script make_symlink_lldb_argdumper()" );
- bOk = True;
- strErrMsg = "";
- strTarget = vstrArgdumperFileName;
- strSrc = "";
+def make_symlink_lldb_argdumper(vDictArgs, vstrFrameworkPythonDir, vstrArgdumperFileName):
+ dbg = utilsDebug.CDebugFnVerbose("Python script make_symlink_lldb_argdumper()")
+ bOk = True
+ strErrMsg = ""
+ strTarget = vstrArgdumperFileName
+ strSrc = ""
- eOSType = utilsOsType.determine_os_type();
+ eOSType = utilsOsType.determine_os_type()
if eOSType == utilsOsType.EnumOsType.Windows:
- strTarget += ".exe";
+ strTarget += ".exe"
- bMakeFileCalled = "-m" in vDictArgs;
+ bMakeFileCalled = "-m" in vDictArgs
if not bMakeFileCalled:
- return (bOk, strErrMsg);
+ return (bOk, strErrMsg)
else:
- strExeFileExtn = "";
+ strExeFileExtn = ""
if eOSType == utilsOsType.EnumOsType.Windows:
- strExeFileExtn = ".exe";
- strSrc = os.path.join("bin", "lldb-argdumper" + strExeFileExtn);
+ strExeFileExtn = ".exe"
+ strSrc = os.path.join("bin", "lldb-argdumper" + strExeFileExtn)
- bOk, strErrMsg = make_symlink( vDictArgs, vstrFrameworkPythonDir, strSrc, strTarget );
+ bOk, strErrMsg = make_symlink(vDictArgs, vstrFrameworkPythonDir, strSrc, strTarget)
- return (bOk, strErrMsg);
+ return (bOk, strErrMsg)
#++---------------------------------------------------------------------------
# Details: Make the symlink that the script bridge for Python will need in
@@ -443,37 +441,37 @@ def make_symlink_lldb_argdumper( vDictAr
# strErrMsg - Error description on task failure.
# Throws: None.
#--
-def create_symlinks( vDictArgs, vstrFrameworkPythonDir ):
- dbg = utilsDebug.CDebugFnVerbose( "Python script create_symlinks()" );
- bOk = True;
- strErrMsg = "";
- eOSType = utilsOsType.determine_os_type();
+def create_symlinks(vDictArgs, vstrFrameworkPythonDir):
+ dbg = utilsDebug.CDebugFnVerbose("Python script create_symlinks()")
+ bOk = True
+ strErrMsg = ""
+ eOSType = utilsOsType.determine_os_type()
# Make symlink for _lldb
- strLibLldbFileName = "_lldb";
+ strLibLldbFileName = "_lldb"
if bOk:
- bOk, strErrMsg = make_symlink_liblldb( vDictArgs,
- vstrFrameworkPythonDir,
- strLibLldbFileName );
+ bOk, strErrMsg = make_symlink_liblldb(vDictArgs,
+ vstrFrameworkPythonDir,
+ strLibLldbFileName)
# Make symlink for darwin-debug on Darwin
strDarwinDebugFileName = "darwin-debug"
if bOk and eOSType == utilsOsType.EnumOsType.Darwin:
- bOk, strErrMsg = make_symlink_darwin_debug( vDictArgs,
- vstrFrameworkPythonDir,
- strDarwinDebugFileName );
+ bOk, strErrMsg = make_symlink_darwin_debug(vDictArgs,
+ vstrFrameworkPythonDir,
+ strDarwinDebugFileName)
# Make symlink for lldb-argdumper
strArgdumperFileName = "lldb-argdumper"
if bOk:
- bOk, strErrMsg = make_symlink_lldb_argdumper( vDictArgs,
- vstrFrameworkPythonDir,
- strArgdumperFileName );
+ bOk, strErrMsg = make_symlink_lldb_argdumper(vDictArgs,
+ vstrFrameworkPythonDir,
+ strArgdumperFileName)
- return (bOk, strErrMsg);
+ return (bOk, strErrMsg)
#++---------------------------------------------------------------------------
-# Details: Look for the directory in which to put the Python files; if it
+# Details: Look for the directory in which to put the Python files if it
# does not already exist, attempt to make it.
# Args: vDictArgs - (R) Program input parameters.
# vstrFrameworkPythonDir - (R) Python framework directory.
@@ -481,28 +479,28 @@ def create_symlinks( vDictArgs, vstrFram
# Str - Error description on task failure.
# Throws: None.
#--
-def find_or_create_python_dir( vDictArgs, vstrFrameworkPythonDir ):
- dbg = utilsDebug.CDebugFnVerbose( "Python script find_or_create_python_dir()" );
- bOk = True;
- strMsg = "";
- bDbg = "-d" in vDictArgs;
+def find_or_create_python_dir(vDictArgs, vstrFrameworkPythonDir):
+ dbg = utilsDebug.CDebugFnVerbose("Python script find_or_create_python_dir()")
+ bOk = True
+ strMsg = ""
+ bDbg = "-d" in vDictArgs
- if os.path.isdir( vstrFrameworkPythonDir ):
+ if os.path.isdir(vstrFrameworkPythonDir):
if bDbg:
- print((strMsgFrameWkPyExists % vstrFrameworkPythonDir));
- return (bOk, strMsg);
+ print((strMsgFrameWkPyExists % vstrFrameworkPythonDir))
+ return (bOk, strMsg)
if bDbg:
- print((strMsgFrameWkPyMkDir % vstrFrameworkPythonDir));
+ print((strMsgFrameWkPyMkDir % vstrFrameworkPythonDir))
try:
- os.makedirs( vstrFrameworkPythonDir );
+ os.makedirs(vstrFrameworkPythonDir)
except OSError as exception:
- bOk = False;
+ bOk = False
strMsg = strErrMsgCreateFrmWkPyDirFailed % (vstrFrameworkPythonDir,
- os.strerror( exception.errno ));
+ os.strerror(exception.errno))
- return (bOk, strMsg);
+ return (bOk, strMsg)
#++---------------------------------------------------------------------------
# Details: Retrieve the configuration build path if present and valid (using
@@ -514,19 +512,19 @@ def find_or_create_python_dir( vDictArgs
# strErrMsg - Error description on task failure.
# Throws: None.
#--
-def get_config_build_dir( vDictArgs, vstrFrameworkPythonDir ):
- dbg = utilsDebug.CDebugFnVerbose( "Python script get_config_build_dir()" );
- bOk = True;
- strErrMsg = "";
+def get_config_build_dir(vDictArgs, vstrFrameworkPythonDir):
+ dbg = utilsDebug.CDebugFnVerbose("Python script get_config_build_dir()")
+ bOk = True
+ strErrMsg = ""
- strConfigBldDir = "";
- bHaveConfigBldDir = "--cfgBldDir" in vDictArgs;
+ strConfigBldDir = ""
+ bHaveConfigBldDir = "--cfgBldDir" in vDictArgs
if bHaveConfigBldDir:
- strConfigBldDir = vDictArgs[ "--cfgBldDir" ];
+ strConfigBldDir = vDictArgs["--cfgBldDir"]
if (bHaveConfigBldDir == False) or (strConfigBldDir.__len__() == 0):
- strConfigBldDir = vstrFrameworkPythonDir;
+ strConfigBldDir = vstrFrameworkPythonDir
- return (bOk, strConfigBldDir, strErrMsg);
+ return (bOk, strConfigBldDir, strErrMsg)
#++---------------------------------------------------------------------------
# Details: Determine where to put the files. Retrieve the directory path for
@@ -537,32 +535,32 @@ def get_config_build_dir( vDictArgs, vst
# strErrMsg - Error description on task failure.
# Throws: None.
#--
-def get_framework_python_dir_windows( vDictArgs ):
- dbg = utilsDebug.CDebugFnVerbose( "Python script get_framework_python_dir_windows()" );
- bOk = True;
- strWkDir = "";
- strErrMsg = "";
+def get_framework_python_dir_windows(vDictArgs):
+ dbg = utilsDebug.CDebugFnVerbose("Python script get_framework_python_dir_windows()")
+ bOk = True
+ strWkDir = ""
+ strErrMsg = ""
# We are being built by LLVM, so use the PYTHON_INSTALL_DIR argument,
# and append the python version directory to the end of it. Depending
# on the system other stuff may need to be put here as well.
- from distutils.sysconfig import get_python_lib;
- strPythonInstallDir = "";
- bHaveArgPrefix = "--prefix" in vDictArgs;
+ from distutils.sysconfig import get_python_lib
+ strPythonInstallDir = ""
+ bHaveArgPrefix = "--prefix" in vDictArgs
if bHaveArgPrefix:
- strPythonInstallDir = os.path.normpath(vDictArgs[ "--prefix" ]);
+ strPythonInstallDir = os.path.normpath(vDictArgs["--prefix"])
- bHaveArgCmakeBuildConfiguration = "--cmakeBuildConfiguration" in vDictArgs;
+ bHaveArgCmakeBuildConfiguration = "--cmakeBuildConfiguration" in vDictArgs
if bHaveArgCmakeBuildConfiguration:
- strPythonInstallDir = os.path.join(strPythonInstallDir, vDictArgs["--cmakeBuildConfiguration"]);
+ strPythonInstallDir = os.path.join(strPythonInstallDir, vDictArgs["--cmakeBuildConfiguration"])
if strPythonInstallDir.__len__() != 0:
- strWkDir = get_python_lib( True, False, strPythonInstallDir );
+ strWkDir = get_python_lib(True, False, strPythonInstallDir)
else:
- strWkDir = get_python_lib( True, False );
- strWkDir = os.path.normcase(os.path.join(strWkDir, "lldb"));
+ strWkDir = get_python_lib(True, False)
+ strWkDir = os.path.normcase(os.path.join(strWkDir, "lldb"))
- return (bOk, strWkDir, strErrMsg);
+ return (bOk, strWkDir, strErrMsg)
#++---------------------------------------------------------------------------
# Details: Retrieve the directory path for Python's dist_packages/
@@ -573,33 +571,33 @@ def get_framework_python_dir_windows( vD
# strErrMsg - Error description on task failure.
# Throws: None.
#--
-def get_framework_python_dir_other_platforms( vDictArgs ):
- dbg = utilsDebug.CDebugFnVerbose( "Python script get_framework_python_dir_other_platform()" );
- bOk = True;
- strWkDir = "";
- strErrMsg = "";
- bDbg = "-d" in vDictArgs;
+def get_framework_python_dir_other_platforms(vDictArgs):
+ dbg = utilsDebug.CDebugFnVerbose("Python script get_framework_python_dir_other_platform()")
+ bOk = True
+ strWkDir = ""
+ strErrMsg = ""
+ bDbg = "-d" in vDictArgs
- bMakeFileCalled = "-m" in vDictArgs;
+ bMakeFileCalled = "-m" in vDictArgs
if bMakeFileCalled:
- dbg.dump_text( "Built by LLVM" );
- return get_framework_python_dir_windows( vDictArgs );
+ dbg.dump_text("Built by LLVM")
+ return get_framework_python_dir_windows(vDictArgs)
else:
- dbg.dump_text( "Built by XCode" );
+ dbg.dump_text("Built by XCode")
# We are being built by XCode, so all the lldb Python files can go
# into the LLDB.framework/Resources/Python subdirectory.
- strWkDir = vDictArgs[ "--targetDir" ];
- strWkDir += os.path.join(strWkDir, "LLDB.framework");
- if os.path.exists( strWkDir ):
+ strWkDir = vDictArgs["--targetDir"]
+ strWkDir += os.path.join(strWkDir, "LLDB.framework")
+ if os.path.exists(strWkDir):
if bDbg:
- print((strMsgFoundLldbFrameWkDir % strWkDir));
- strWkDir = os.path.join(strWkDir, "Resources", "Python", "lldb");
- strWkDir = os.path.normcase( strWkDir );
+ print((strMsgFoundLldbFrameWkDir % strWkDir))
+ strWkDir = os.path.join(strWkDir, "Resources", "Python", "lldb")
+ strWkDir = os.path.normcase(strWkDir)
else:
- bOk = False;
- strErrMsg = strErrMsgFrameWkPyDirNotExist % strWkDir;
+ bOk = False
+ strErrMsg = strErrMsgFrameWkPyDirNotExist % strWkDir
- return (bOk, strWkDir, strErrMsg);
+ return (bOk, strWkDir, strErrMsg)
#++---------------------------------------------------------------------------
# Details: Retrieve the directory path for Python's dist_packages/
@@ -611,22 +609,22 @@ def get_framework_python_dir_other_platf
# strErrMsg - Error description on task failure.
# Throws: None.
#--
-def get_framework_python_dir( vDictArgs ):
- dbg = utilsDebug.CDebugFnVerbose( "Python script get_framework_python_dir()" );
- bOk = True;
- strWkDir = "";
- strErrMsg = "";
+def get_framework_python_dir(vDictArgs):
+ dbg = utilsDebug.CDebugFnVerbose("Python script get_framework_python_dir()")
+ bOk = True
+ strWkDir = ""
+ strErrMsg = ""
- eOSType = utilsOsType.determine_os_type();
+ eOSType = utilsOsType.determine_os_type()
if eOSType == utilsOsType.EnumOsType.Unknown:
- bOk = False;
- strErrMsg = strErrMsgOsTypeUnknown;
+ bOk = False
+ strErrMsg = strErrMsgOsTypeUnknown
elif eOSType == utilsOsType.EnumOsType.Windows:
- bOk, strWkDir, strErrMsg = get_framework_python_dir_windows( vDictArgs );
+ bOk, strWkDir, strErrMsg = get_framework_python_dir_windows(vDictArgs)
else:
- bOk, strWkDir, strErrMsg = get_framework_python_dir_other_platforms( vDictArgs );
+ bOk, strWkDir, strErrMsg = get_framework_python_dir_other_platforms(vDictArgs)
- return (bOk, strWkDir, strErrMsg);
+ return (bOk, strWkDir, strErrMsg)
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
@@ -660,92 +658,92 @@ def get_framework_python_dir( vDictArgs
--------------------------------------------------------------------------
"""
-def main( vDictArgs ):
- dbg = utilsDebug.CDebugFnVerbose( "Python script main()" );
- bOk = True;
- strMsg = "";
- strErrMsgProgFail = "";
+def main(vDictArgs):
+ dbg = utilsDebug.CDebugFnVerbose("Python script main()")
+ bOk = True
+ strMsg = ""
+ strErrMsgProgFail = ""
- bDbg = "-d" in vDictArgs;
+ bDbg = "-d" in vDictArgs
- eOSType = utilsOsType.determine_os_type();
+ eOSType = utilsOsType.determine_os_type()
if bDbg:
- pyVersion = sys.version_info;
- print((strMsgOsVersion % utilsOsType.EnumOsType.name_of( eOSType )));
- print((strMsgPyVersion % (pyVersion[ 0 ], pyVersion[ 1 ])));
+ pyVersion = sys.version_info
+ print((strMsgOsVersion % utilsOsType.EnumOsType.name_of(eOSType)))
+ print((strMsgPyVersion % (pyVersion[0], pyVersion[1])))
- bOk, strFrameworkPythonDir, strMsg = get_framework_python_dir( vDictArgs );
+ bOk, strFrameworkPythonDir, strMsg = get_framework_python_dir(vDictArgs)
if bOk:
- bOk, strCfgBldDir, strMsg = get_config_build_dir( vDictArgs, strFrameworkPythonDir );
+ bOk, strCfgBldDir, strMsg = get_config_build_dir(vDictArgs, strFrameworkPythonDir)
if bOk and bDbg:
- print((strMsgPyFileLocatedHere % strFrameworkPythonDir));
- print((strMsgConfigBuildDir % strCfgBldDir));
+ print((strMsgPyFileLocatedHere % strFrameworkPythonDir))
+ print((strMsgConfigBuildDir % strCfgBldDir))
if bOk:
- bOk, strMsg = find_or_create_python_dir( vDictArgs, strFrameworkPythonDir );
+ bOk, strMsg = find_or_create_python_dir(vDictArgs, strFrameworkPythonDir)
if bOk:
- bOk, strMsg = create_symlinks( vDictArgs, strFrameworkPythonDir );
+ bOk, strMsg = create_symlinks(vDictArgs, strFrameworkPythonDir)
if bOk:
- bOk, strMsg = copy_lldbpy_file_to_lldb_pkg_dir( vDictArgs,
- strFrameworkPythonDir,
- strCfgBldDir );
- strRoot = os.path.normpath(vDictArgs[ "--srcRoot" ]);
+ bOk, strMsg = copy_lldbpy_file_to_lldb_pkg_dir(vDictArgs,
+ strFrameworkPythonDir,
+ strCfgBldDir)
+ strRoot = os.path.normpath(vDictArgs["--srcRoot"])
if bOk:
# lldb
- listPkgFiles = [ os.path.join(strRoot, "source", "Interpreter", "embedded_interpreter.py") ];
- bOk, strMsg = create_py_pkg( vDictArgs, strFrameworkPythonDir, "", listPkgFiles );
+ listPkgFiles = [os.path.join(strRoot, "source", "Interpreter", "embedded_interpreter.py")]
+ bOk, strMsg = create_py_pkg(vDictArgs, strFrameworkPythonDir, "", listPkgFiles)
if bOk:
# lldb/formatters/cpp
- listPkgFiles = [ os.path.join(strRoot, "examples", "synthetic", "gnu_libstdcpp.py"),
- os.path.join(strRoot, "examples", "synthetic", "libcxx.py") ];
- bOk, strMsg = create_py_pkg( vDictArgs, strFrameworkPythonDir, "/formatters/cpp", listPkgFiles );
+ listPkgFiles = [os.path.join(strRoot, "examples", "synthetic", "gnu_libstdcpp.py"),
+ os.path.join(strRoot, "examples", "synthetic", "libcxx.py")]
+ bOk, strMsg = create_py_pkg(vDictArgs, strFrameworkPythonDir, "/formatters/cpp", listPkgFiles)
if bOk:
# Make an empty __init__.py in lldb/runtime as this is required for
# Python to recognize lldb.runtime as a valid package (and hence,
# lldb.runtime.objc as a valid contained package)
- listPkgFiles = [];
- bOk, strMsg = create_py_pkg( vDictArgs, strFrameworkPythonDir, "/runtime", listPkgFiles );
+ listPkgFiles = []
+ bOk, strMsg = create_py_pkg(vDictArgs, strFrameworkPythonDir, "/runtime", listPkgFiles)
if bOk:
# lldb/formatters
# Having these files copied here ensure that lldb/formatters is a
# valid package itself
- listPkgFiles = [ os.path.join(strRoot, "examples", "summaries", "cocoa", "cache.py"),
- os.path.join(strRoot, "examples", "summaries", "cocoa", "metrics.py"),
- os.path.join(strRoot, "examples", "summaries", "cocoa", "attrib_fromdict.py"),
- os.path.join(strRoot, "examples", "summaries", "cocoa", "Logger.py") ];
- bOk, strMsg = create_py_pkg( vDictArgs, strFrameworkPythonDir, "/formatters", listPkgFiles );
+ listPkgFiles = [os.path.join(strRoot, "examples", "summaries", "cocoa", "cache.py"),
+ os.path.join(strRoot, "examples", "summaries", "cocoa", "metrics.py"),
+ os.path.join(strRoot, "examples", "summaries", "cocoa", "attrib_fromdict.py"),
+ os.path.join(strRoot, "examples", "summaries", "cocoa", "Logger.py")]
+ bOk, strMsg = create_py_pkg(vDictArgs, strFrameworkPythonDir, "/formatters", listPkgFiles)
if bOk:
# lldb/utils
- listPkgFiles = [ os.path.join(strRoot, "examples", "python", "symbolication.py") ];
- bOk, strMsg = create_py_pkg( vDictArgs, strFrameworkPythonDir, "/utils", listPkgFiles );
+ listPkgFiles = [os.path.join(strRoot, "examples", "python", "symbolication.py")]
+ bOk, strMsg = create_py_pkg(vDictArgs, strFrameworkPythonDir, "/utils", listPkgFiles)
if bOk and (eOSType == utilsOsType.EnumOsType.Darwin):
# lldb/macosx
- listPkgFiles = [ os.path.join(strRoot, "examples", "python", "crashlog.py"),
- os.path.join(strRoot, "examples", "darwin", "heap_find", "heap.py") ];
- bOk, strMsg = create_py_pkg( vDictArgs, strFrameworkPythonDir, "/macosx", listPkgFiles );
+ listPkgFiles = [os.path.join(strRoot, "examples", "python", "crashlog.py"),
+ os.path.join(strRoot, "examples", "darwin", "heap_find", "heap.py")]
+ bOk, strMsg = create_py_pkg(vDictArgs, strFrameworkPythonDir, "/macosx", listPkgFiles)
if bOk and (eOSType == utilsOsType.EnumOsType.Darwin):
# lldb/diagnose
- listPkgFiles = [ os.path.join(strRoot, "examples", "python", "diagnose_unwind.py"),
- os.path.join(strRoot, "examples", "python", "diagnose_nsstring.py") ];
- bOk, strMsg = create_py_pkg( vDictArgs, strFrameworkPythonDir, "/diagnose", listPkgFiles );
+ listPkgFiles = [os.path.join(strRoot, "examples", "python", "diagnose_unwind.py"),
+ os.path.join(strRoot, "examples", "python", "diagnose_nsstring.py")]
+ bOk, strMsg = create_py_pkg(vDictArgs, strFrameworkPythonDir, "/diagnose", listPkgFiles)
if bOk:
- bOk, strMsg = macosx_copy_file_for_heap( vDictArgs, strFrameworkPythonDir );
+ bOk, strMsg = macosx_copy_file_for_heap(vDictArgs, strFrameworkPythonDir)
if bOk:
- return (0, strMsg );
+ return (0, strMsg)
else:
- strErrMsgProgFail += strMsg;
- return (-100, strErrMsgProgFail );
+ strErrMsgProgFail += strMsg
+ return (-100, strErrMsgProgFail)
#-----------------------------------------------------------------------------
@@ -755,5 +753,5 @@ def main( vDictArgs ):
# This script can be called by another Python script by calling the main()
# function directly
if __name__ == "__main__":
- print("Script cannot be called directly, called by finishSwigWrapperClasses.py");
+ print("Script cannot be called directly, called by finishSwigWrapperClasses.py")
Modified: lldb/trunk/scripts/Python/modify-python-lldb.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/Python/modify-python-lldb.py?rev=252244&r1=252243&r2=252244&view=diff
==============================================================================
--- lldb/trunk/scripts/Python/modify-python-lldb.py (original)
+++ lldb/trunk/scripts/Python/modify-python-lldb.py Thu Nov 5 17:57:33 2015
@@ -27,7 +27,7 @@ if sys.version_info.major >= 3:
else:
import StringIO
-if len (sys.argv) != 2:
+if len(sys.argv) != 2:
output_name = "./lldb.py"
else:
output_name = sys.argv[1] + "/lldb.py"
Modified: lldb/trunk/scripts/buildSwigWrapperClasses.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/buildSwigWrapperClasses.py?rev=252244&r1=252243&r2=252244&view=diff
==============================================================================
--- lldb/trunk/scripts/buildSwigWrapperClasses.py (original)
+++ lldb/trunk/scripts/buildSwigWrapperClasses.py Thu Nov 5 17:57:33 2015
@@ -36,27 +36,27 @@ import utilsOsType # Determine the
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
+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.
+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";
-strExitMsgSuccess = "Program successful";
-strExitMsgError = "Program error: ";
-strParameter = "Parameter: ";
+strMsgErrorNoMain = "Program called by another Python script not allowed"
+strExitMsgSuccess = "Program successful"
+strExitMsgError = "Program error: "
+strParameter = "Parameter: "
strMsgErrorOsTypeUnknown = "Unable to determine OS type"
-strSwigFileFound = "Found the \'lldb.swig\' file\n";
+strSwigFileFound = "Found the \'lldb.swig\' file\n"
strSwigFileFoundNotFound = "Unable to locate the file \'%s\'"
-strSwigExeFileNotFound = "Unable to locate the SWIG executable file \'swig\'";
-strSwigScriptDirNotFound = "Unable to locate the SWIG script directory \'/script\'";
-strSwigScriptNotFound = "Unable to locate the SWIG script file \'%s\' in \'%s\'. Is it a script directory?";
-strSwigScriptLangFound = "Found \'%s\' build script.";
-strSwigScriptLangsFound = "Found the following script languages:";
-strSwigExecuteMsg = "Executing \'%s\' build script...";
-strSwigExecuteError = "Executing \'%s\' build script failed: ";
+strSwigExeFileNotFound = "Unable to locate the SWIG executable file \'swig\'"
+strSwigScriptDirNotFound = "Unable to locate the SWIG script directory \'/script\'"
+strSwigScriptNotFound = "Unable to locate the SWIG script file \'%s\' in \'%s\'. Is it a script directory?"
+strSwigScriptLangFound = "Found \'%s\' build script."
+strSwigScriptLangsFound = "Found the following script languages:"
+strSwigExecuteMsg = "Executing \'%s\' build script..."
+strSwigExecuteError = "Executing \'%s\' build script failed: "
strHelpInfo = "\
Python script(s) to build the SWIG Python C++ Script \n\
Bridge wrapper code on various platforms. The Python \n\
@@ -86,7 +86,7 @@ Usage:\n\
buildSwigWrapperClasses.py --srcRoot=ADirPath --targetDir=ADirPath\n\
--cfgBldDir=ADirPath --prefix=ADirPath --swigExecutable=ADirPath -m -d\n\
\n\
-"; #TAG_PROGRAM_HELP_INFO
+" #TAG_PROGRAM_HELP_INFO
strHelpInfoExtraWindows = "\
On the Windows platform the PATH environmental variable needs to be \n\
extended to include the installed SWIG executable path so it can be \n\
@@ -94,7 +94,7 @@ be found by this Python script. The SWIG
strHelpInfoExtraNonWindows = "\
This Python script looks for the SWIG executable 'swig' in the following \n\
directories '/usr/bin', '/usr/local/bin'. If not found the script will \n\
-abort.";
+abort."
#++---------------------------------------------------------------------------
# Details: Retrieve the script -h help information based on the OS currently.
@@ -103,15 +103,15 @@ abort.";
# Throws: None.
#--
def get_help_information():
- strHelpMsg = strHelpInfo;
+ strHelpMsg = strHelpInfo
- eOSType = utilsOsType.determine_os_type();
+ eOSType = utilsOsType.determine_os_type()
if eOSType == utilsOsType.EnumOsType.Windows:
- strHelpMsg += strHelpInfoExtraWindows;
+ strHelpMsg += strHelpInfoExtraWindows
else:
- strHelpMsg += strHelpInfoExtraNonWindows;
+ strHelpMsg += strHelpInfoExtraNonWindows
- return strHelpMsg;
+ return strHelpMsg
#++---------------------------------------------------------------------------
# Details: Exit the program on success. Called on program successfully done
@@ -121,14 +121,14 @@ def get_help_information():
# Returns: None.
# Throws: None.
#--
-def program_exit_success( vnResult, vMsg ):
- strMsg = "";
+def program_exit_success(vnResult, vMsg):
+ strMsg = ""
if vMsg.__len__() != 0:
- strMsg = "%s: %s (%d)" % (strExitMsgSuccess, vMsg, vnResult);
- print(strMsg);
+ strMsg = "%s: %s (%d)" % (strExitMsgSuccess, vMsg, vnResult)
+ print(strMsg)
- sys.exit( vnResult );
+ sys.exit(vnResult)
#++---------------------------------------------------------------------------
# Details: Exit the program with error. Called on exit program failed its
@@ -138,9 +138,9 @@ def program_exit_success( vnResult, vMsg
# Returns: None.
# Throws: None.
#--
-def program_exit_on_failure( vnResult, vMsg ):
- print(("%s%s (%d)" % (strExitMsgError, vMsg, vnResult)));
- sys.exit( vnResult );
+def program_exit_on_failure(vnResult, vMsg):
+ print(("%s%s (%d)" % (strExitMsgError, vMsg, vnResult)))
+ sys.exit(vnResult)
#++---------------------------------------------------------------------------
# Details: Exit the program return a exit result number and print a message.
@@ -151,11 +151,11 @@ def program_exit_on_failure( vnResult, v
# Returns: None.
# Throws: None.
#--
-def program_exit( vnResult, vMsg ):
+def program_exit(vnResult, vMsg):
if vnResult >= 0:
- program_exit_success( vnResult, vMsg );
+ program_exit_success(vnResult, vMsg)
else:
- program_exit_on_failure( vnResult, vMsg );
+ program_exit_on_failure(vnResult, vMsg)
#++---------------------------------------------------------------------------
# Details: Dump input parameters.
@@ -163,14 +163,14 @@ def program_exit( vnResult, vMsg ):
# Returns: None.
# Throws: None.
#--
-def print_out_input_parameters( vDictArgs ):
+def print_out_input_parameters(vDictArgs):
for arg, val in vDictArgs.items():
- strEqs = "";
- strQ = "";
+ strEqs = ""
+ strQ = ""
if val.__len__() != 0:
- strEqs = " =";
- strQ = "\"";
- print(("%s%s%s %s%s%s\n" % (strParameter, arg, strEqs, strQ, val, strQ)));
+ 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
@@ -183,21 +183,21 @@ def print_out_input_parameters( vDictArg
# 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";
+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 );
+ strFullPath = os.path.normcase(vstrSrcRoot + strSwigFilePathName)
+ bOk = os.path.isfile(strFullPath)
if bOk:
if gbDbgFlag:
- print(strSwigFileFound);
+ print(strSwigFileFound)
else:
- strStatusMsg = strSwigFileFoundNotFound % strFullPath;
+ strStatusMsg = strSwigFileFoundNotFound % strFullPath
- return (bOk, strStatusMsg);
+ return (bOk, strStatusMsg)
#++---------------------------------------------------------------------------
# Details: Locate SWIG sub script language directory and the script within
@@ -209,41 +209,41 @@ def check_lldb_swig_file_exists( vstrSrc
# 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);
+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 );
+ 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);
+ strDir = os.path.normcase(strScriptFileDir)
+ strStatusMsg = strSwigScriptNotFound % (strScriptFile, strDir)
+ return (-9, strStatusMsg)
if gbDbgFlag:
- print((strSwigScriptLangFound % vStrScriptLang));
- print((strSwigExecuteMsg % vStrScriptLang));
+ print((strSwigScriptLangFound % vStrScriptLang))
+ print((strSwigExecuteMsg % vStrScriptLang))
# Change where Python looks for our modules
- strDir = os.path.normcase( strScriptFileDir );
- sys.path.append( strDir );
+ 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 );
+ 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 );
+ sys.path.remove(strDir)
- return (nResult, strStatusMsg);
+ return (nResult, strStatusMsg)
#++---------------------------------------------------------------------------
# Details: Step through each SWIG sub directory script language supported
@@ -259,26 +259,26 @@ def run_swig( vStrScriptLang, vSwigBuild
# 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";
+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 );
+ strScriptsDir = os.path.normcase(strSwigScriptDir)
+ bOk = os.path.exists(strScriptsDir)
if bOk == False:
- return (-8, strSwigScriptDirNotFound);
+ 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;
+ listDirs = []
+ nDepth = 1
+ for strPath, listDirs, listFiles in os.walk(strSwigScriptDir):
+ nDepth = nDepth - 1
if nDepth == 0:
- break;
+ break
# Skip the directory that contains the interface files.
listDirs.remove('interface')
@@ -290,24 +290,24 @@ def run_swig_for_each_script_supported(
sys.stdout.write(strSwigScriptLangsFound)
for dir in listDirs:
sys.stdout.write(dir)
- print("\n");
+ print("\n")
# Iterate script directory find any script language directories
for scriptLang in listDirs:
# __pycache__ is a magic directory in Python 3 that holds .pyc files
if scriptLang != "__pycache__":
- dbg.dump_text( "Executing language script for \'%s\'" % scriptLang );
- nResult, strStatusMsg = run_swig( scriptLang, strSwigBuildFileName,
- vDictArgs );
+ dbg.dump_text("Executing language script for \'%s\'" % scriptLang)
+ nResult, strStatusMsg = run_swig(scriptLang, strSwigBuildFileName,
+ vDictArgs)
if nResult < 0:
- break;
+ break
if nResult < 0:
- strTmp = strSwigExecuteError % scriptLang;
- strTmp += strStatusMsg;
- strStatusMsg = strTmp;
+ strTmp = strSwigExecuteError % scriptLang
+ strTmp += strStatusMsg
+ strStatusMsg = strTmp
- return (nResult, strStatusMsg);
+ return (nResult, strStatusMsg)
#++---------------------------------------------------------------------------
# Details: Dummy function - system unknown. Function should not be called.
@@ -316,10 +316,10 @@ def run_swig_for_each_script_supported(
# Str - Error message.
# Throws: None.
#--
-def check_lldb_swig_executable_file_exists_Unknown( vDictArgs ):
- dbg = utilsDebug.CDebugFnVerbose( "check_lldb_swig_executable_file_exists_Unknown()" );
+def check_lldb_swig_executable_file_exists_Unknown(vDictArgs):
+ dbg = utilsDebug.CDebugFnVerbose("check_lldb_swig_executable_file_exists_Unknown()")
# Do nothing
- return (False, strMsgErrorOsTypeUnknown);
+ return (False, strMsgErrorOsTypeUnknown)
#++---------------------------------------------------------------------------
# Details: Locate the SWIG executable file in a Windows system. Several hard
@@ -331,16 +331,16 @@ def check_lldb_swig_executable_file_exis
# Str - Error message.
# Throws: None.
#--
-def check_lldb_swig_executable_file_exists_Windows( vDictArgs ):
- dbg = utilsDebug.CDebugFnVerbose( "check_lldb_swig_executable_file_exists_Windows()" );
+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);
+ bExeFileFound = True
+ vDictArgs["--swigExePath"] = ""
+ vDictArgs["--swigExeName"] = "swig.exe"
+ return (bExeFileFound, None)
#++---------------------------------------------------------------------------
# Details: Locate the SWIG executable file in a Linux system. Several hard
@@ -352,28 +352,28 @@ def check_lldb_swig_executable_file_exis
# 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);
+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);
+ return (bExeFileFound, strSwigExeFileNotFound)
#++---------------------------------------------------------------------------
# Details: Locate the SWIG executable file in a OSX system. Several hard
@@ -385,14 +385,14 @@ def check_lldb_swig_executable_file_exis
# 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;
+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";
+ #vDictArgs.["--swigExePath"] = "/usr/bin/swig"
+ strStatusMsg = "Sorry function 'check_lldb_swig_executable_file_exists_Darwin()' is not implemented"
- return (bExeFileFound, strStatusMsg);
+ return (bExeFileFound, strStatusMsg)
#++---------------------------------------------------------------------------
# Details: Locate the SWIG executable file in a OSX system. Several hard
@@ -404,14 +404,14 @@ def check_lldb_swig_executable_file_exis
# 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;
+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";
+ #vDictArgs.["--swigExePath"] = "/usr/bin/swig"
+ strStatusMsg = "Sorry function 'check_lldb_swig_executable_file_exists_FreeBSD()' is not implemented"
- return (bExeFileFound, strStatusMsg);
+ return (bExeFileFound, strStatusMsg)
#++---------------------------------------------------------------------------
# Details: Locate the SWIG executable file. Several hard coded predetermined
@@ -423,23 +423,23 @@ def check_lldb_swig_executable_file_exis
# 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 = "";
+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);
+ 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.
@@ -448,39 +448,39 @@ def check_lldb_swig_executable_file_exis
# 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 <arg>
+def validate_arguments(vArgv):
+ dbg = utilsDebug.CDebugFnVerbose("validate_arguments()")
+ strMsg = ""
+ dictArgs = {}
+ nResult = 0
+ strListArgs = "hdmM" # Format "hiox:" = -h -i -o -x <arg>
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();
+ "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 );
+ nResult, dictArgs, strMsg = utilsArgsParse.parse(vArgv, strListArgs,
+ listLongArgs,
+ dictArgReq,
+ strHelpInfo)
if nResult < 0:
- program_exit_on_failure( nResult, strMsg );
+ program_exit_on_failure(nResult, strMsg)
# User input -h for help
if nResult == 1:
- program_exit_success( 0, strMsg );
+ program_exit_success(0, strMsg)
- return (nResult, dictArgs);
+ return (nResult, dictArgs)
#++---------------------------------------------------------------------------
# Details: Program's main() with arguments passed in from the command line.
@@ -490,45 +490,45 @@ def validate_arguments( vArgv ):
# Returns: None
# Throws: None.
#--
-def main( vArgv ):
- dbg = utilsDebug.CDebugFnVerbose( "main()" );
- bOk = False;
- dictArgs = {};
- nResult = 0;
- strMsg = "";
+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 );
+ nResult, dictArgs = validate_arguments(vArgv)
- eOSType = utilsOsType.determine_os_type();
+ eOSType = utilsOsType.determine_os_type()
if eOSType == utilsOsType.EnumOsType.Unknown:
- program_exit( -4, strMsgErrorOsTypeUnknown );
+ program_exit(-4, strMsgErrorOsTypeUnknown)
- global gbDbgFlag;
- gbDbgFlag = "-d" in dictArgs;
+ global gbDbgFlag
+ gbDbgFlag = "-d" in dictArgs
if gbDbgFlag:
- print_out_input_parameters( dictArgs );
+ 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 = "-m" in dictArgs;
- gbSwigGenDepFileFlag = "-M" in dictArgs;
+ global gbMakeFileFlag
+ global gbSwigGenDepFileFlag
+ gbMakeFileFlag = "-m" in dictArgs
+ gbSwigGenDepFileFlag = "-M" in dictArgs
- bOk, strMsg = check_lldb_swig_file_exists( dictArgs[ "--srcRoot" ], eOSType );
+ bOk, strMsg = check_lldb_swig_file_exists(dictArgs["--srcRoot"], eOSType)
if bOk == False:
- program_exit( -3, strMsg );
+ program_exit(-3, strMsg)
- bOk, strMsg = check_lldb_swig_executable_file_exists( dictArgs, eOSType );
+ bOk, strMsg = check_lldb_swig_executable_file_exists(dictArgs, eOSType)
if bOk == False:
- program_exit( -6, strMsg );
+ program_exit(-6, strMsg)
- nResult, strMsg = run_swig_for_each_script_supported( dictArgs );
+ nResult, strMsg = run_swig_for_each_script_supported(dictArgs)
- program_exit( nResult, strMsg );
+ program_exit(nResult, strMsg)
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
@@ -579,8 +579,8 @@ def main( vArgv ):
# 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)
Modified: lldb/trunk/scripts/finishSwigWrapperClasses.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/finishSwigWrapperClasses.py?rev=252244&r1=252243&r2=252244&view=diff
==============================================================================
--- lldb/trunk/scripts/finishSwigWrapperClasses.py (original)
+++ lldb/trunk/scripts/finishSwigWrapperClasses.py Thu Nov 5 17:57:33 2015
@@ -34,25 +34,25 @@ import utilsOsType # Determine the
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
+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.
+gbMakeFileFlag = False # True = yes called from makefile system, False = not.
# User facing text:
-strMsgErrorNoMain = "Program called by another Python script not allowed";
-strExitMsgSuccess = "Program successful";
-strExitMsgError = "Program error: ";
-strParameter = "Parameter: ";
+strMsgErrorNoMain = "Program called by another Python script not allowed"
+strExitMsgSuccess = "Program successful"
+strExitMsgError = "Program error: "
+strParameter = "Parameter: "
strMsgErrorOsTypeUnknown = "Unable to determine OS type"
-strScriptDirNotFound = "Unable to locate the script directory \'/script\'";
-strScriptLangsFound = "Found the following script languages:";
-strPostProcessError = "Executing \'%s\' post process script failed: ";
-strScriptNotFound = "Unable to locate the post process script file \'%s\' in \'%s\'";
-strScriptLangFound = "Found \'%s\' build script.";
-strScriptLangsFound = "Found the following script languages:";
-strExecuteMsg = "Executing \'%s\' build script...";
-strExecuteError = "Executing \'%s\' build script failed: ";
+strScriptDirNotFound = "Unable to locate the script directory \'/script\'"
+strScriptLangsFound = "Found the following script languages:"
+strPostProcessError = "Executing \'%s\' post process script failed: "
+strScriptNotFound = "Unable to locate the post process script file \'%s\' in \'%s\'"
+strScriptLangFound = "Found \'%s\' build script."
+strScriptLangsFound = "Found the following script languages:"
+strExecuteMsg = "Executing \'%s\' build script..."
+strExecuteError = "Executing \'%s\' build script failed: "
strHelpInfo = "\
Python script(s) to finish off the SWIG Python C++ Script \n\
Bridge wrapper code on the Windows/LINUX/OSX platform. The Python \n\
@@ -82,7 +82,7 @@ Usage:\n\
finishSwigWrapperClasses.py --srcRoot=ADirPath --targetDir=ADirPath\n\
--cfgBldDir=ADirPath --prefix=ADirPath -m -d\n\
\n\
-"; #TAG_PROGRAM_HELP_INFO
+" #TAG_PROGRAM_HELP_INFO
#++---------------------------------------------------------------------------
# Details: Exit the program on success. Called on program successfully done
@@ -92,14 +92,14 @@ Usage:\n\
# Returns: None.
# Throws: None.
#--
-def program_exit_success( vnResult, vMsg ):
- strMsg = "";
+def program_exit_success(vnResult, vMsg):
+ strMsg = ""
if vMsg.__len__() != 0:
- strMsg = "%s: %s (%d)" % (strExitMsgSuccess, vMsg, vnResult);
- print(strMsg);
+ strMsg = "%s: %s (%d)" % (strExitMsgSuccess, vMsg, vnResult)
+ print(strMsg)
- sys.exit( vnResult );
+ sys.exit(vnResult)
#++---------------------------------------------------------------------------
# Details: Exit the program with error. Called on exit program failed its
@@ -109,9 +109,9 @@ def program_exit_success( vnResult, vMsg
# Returns: None.
# Throws: None.
#--
-def program_exit_on_failure( vnResult, vMsg ):
- print(("%s%s (%d)" % (strExitMsgError, vMsg, vnResult)));
- sys.exit( vnResult );
+def program_exit_on_failure(vnResult, vMsg):
+ print(("%s%s (%d)" % (strExitMsgError, vMsg, vnResult)))
+ sys.exit(vnResult)
#++---------------------------------------------------------------------------
# Details: Exit the program return a exit result number and print a message.
@@ -122,11 +122,11 @@ def program_exit_on_failure( vnResult, v
# Returns: None.
# Throws: None.
#--
-def program_exit( vnResult, vMsg ):
+def program_exit(vnResult, vMsg):
if vnResult >= 0:
- program_exit_success( vnResult, vMsg );
+ program_exit_success(vnResult, vMsg)
else:
- program_exit_on_failure( vnResult, vMsg );
+ program_exit_on_failure(vnResult, vMsg)
#++---------------------------------------------------------------------------
# Details: Dump input parameters.
@@ -134,14 +134,14 @@ def program_exit( vnResult, vMsg ):
# Returns: None.
# Throws: None.
#--
-def print_out_input_parameters( vDictArgs ):
+def print_out_input_parameters(vDictArgs):
for arg, val in list(vDictArgs.items()):
- strEqs = "";
- strQ = "";
+ strEqs = ""
+ strQ = ""
if val.__len__() != 0:
- strEqs = " =";
- strQ = "\"";
- print(("%s%s%s %s%s%s\n" % (strParameter, arg, strEqs, strQ, val, strQ)));
+ strEqs = " ="
+ strQ = "\""
+ print(("%s%s%s %s%s%s\n" % (strParameter, arg, strEqs, strQ, val, strQ)))
#++---------------------------------------------------------------------------
# Details: Validate the arguments passed to the program. This function exits
@@ -151,14 +151,14 @@ def print_out_input_parameters( vDictArg
# Dict - Map of arguments names to argument values
# Throws: None.
#--
-def validate_arguments( vArgv ):
- dbg = utilsDebug.CDebugFnVerbose( "validate_arguments()" );
- strMsg = "";
- dictArgs = {};
- nResult = 0;
- strListArgs = "hdm"; # Format "hiox:" = -h -i -o -x <arg>
+def validate_arguments(vArgv):
+ dbg = utilsDebug.CDebugFnVerbose("validate_arguments()")
+ strMsg = ""
+ dictArgs = {}
+ nResult = 0
+ strListArgs = "hdm" # Format "hiox:" = -h -i -o -x <arg>
listLongArgs = ["srcRoot=", "targetDir=", "cfgBldDir=", "prefix=", "cmakeBuildConfiguration=",
- "argsFile"];
+ "argsFile"]
dictArgReq = { "-h": "o", # o = optional, m = mandatory
"-d": "o",
"-m": "o",
@@ -167,21 +167,21 @@ def validate_arguments( vArgv ):
"--cfgBldDir": "o",
"--prefix": "o",
"--cmakeBuildConfiguration": "o",
- "--argsFile": "o" };
+ "--argsFile": "o" }
# Check for mandatory parameters
- nResult, dictArgs, strMsg = utilsArgsParse.parse( vArgv, strListArgs,
- listLongArgs,
- dictArgReq,
- strHelpInfo );
+ nResult, dictArgs, strMsg = utilsArgsParse.parse(vArgv, strListArgs,
+ listLongArgs,
+ dictArgReq,
+ strHelpInfo)
if nResult < 0:
- program_exit_on_failure( nResult, strMsg );
+ program_exit_on_failure(nResult, strMsg)
# User input -h for help
if nResult == 1:
- program_exit_success( 0, strMsg );
+ program_exit_success(0, strMsg)
- return (nResult, dictArgs);
+ return (nResult, dictArgs)
#++---------------------------------------------------------------------------
# Details: Locate post process script language directory and the script within
@@ -193,40 +193,40 @@ def validate_arguments( vArgv ):
# Str - Error message.
# Throws: None.
#--
-def run_post_process( vStrScriptLang, vstrFinishFileName, vDictArgs ):
- dbg = utilsDebug.CDebugFnVerbose( "run_post_process()" );
- nResult = 0;
- strStatusMsg = "";
- strScriptFile = vstrFinishFileName % vStrScriptLang;
- strScriptFileDir = os.path.normpath(os.path.join(vDictArgs["--srcRoot"], "scripts", vStrScriptLang));
- strScriptFilePath = os.path.join(strScriptFileDir, strScriptFile);
+def run_post_process(vStrScriptLang, vstrFinishFileName, vDictArgs):
+ dbg = utilsDebug.CDebugFnVerbose("run_post_process()")
+ nResult = 0
+ strStatusMsg = ""
+ strScriptFile = vstrFinishFileName % vStrScriptLang
+ strScriptFileDir = os.path.normpath(os.path.join(vDictArgs["--srcRoot"], "scripts", vStrScriptLang))
+ strScriptFilePath = os.path.join(strScriptFileDir, strScriptFile)
# Check for the existence of the script file
- strPath = os.path.normcase( strScriptFilePath );
- bOk = os.path.exists( strPath );
+ strPath = os.path.normcase(strScriptFilePath)
+ bOk = os.path.exists(strPath)
if bOk == False:
- strDir = os.path.normcase( strScriptFileDir );
- strStatusMsg = strScriptNotFound % (strScriptFile, strDir);
- return (-9, strStatusMsg);
+ strDir = os.path.normcase(strScriptFileDir)
+ strStatusMsg = strScriptNotFound % (strScriptFile, strDir)
+ return (-9, strStatusMsg)
if gbDbgFlag:
- print((strScriptLangFound % vStrScriptLang));
- print((strExecuteMsg % vStrScriptLang));
+ print((strScriptLangFound % vStrScriptLang))
+ print((strExecuteMsg % vStrScriptLang))
# Change where Python looks for our modules
- strDir = os.path.normcase( strScriptFileDir );
- sys.path.append( strDir );
+ 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 );
+ 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 );
+ sys.path.remove(strDir)
- return (nResult, strStatusMsg);
+ return (nResult, strStatusMsg)
#++---------------------------------------------------------------------------
# Details: Step through each script language sub directory supported
@@ -239,26 +239,26 @@ def run_post_process( vStrScriptLang, vs
# Str - Error message.
# Throws: None.
#--
-def run_post_process_for_each_script_supported( vDictArgs ):
- dbg = utilsDebug.CDebugFnVerbose( "run_post_process_for_each_script_supported()" );
- nResult = 0;
- strStatusMsg = "";
- strScriptDir = os.path.normpath(os.path.join(vDictArgs["--srcRoot"], "scripts"));
- strFinishFileName = "finishSwig%sLLDB.py";
+def run_post_process_for_each_script_supported(vDictArgs):
+ dbg = utilsDebug.CDebugFnVerbose("run_post_process_for_each_script_supported()")
+ nResult = 0
+ strStatusMsg = ""
+ strScriptDir = os.path.normpath(os.path.join(vDictArgs["--srcRoot"], "scripts"))
+ strFinishFileName = "finishSwig%sLLDB.py"
# Check for the existence of the scripts folder
- strScriptsDir = os.path.normcase( strScriptDir );
- bOk = os.path.exists( strScriptsDir );
+ strScriptsDir = os.path.normcase(strScriptDir)
+ bOk = os.path.exists(strScriptsDir)
if bOk == False:
- return (-8, strScriptDirNotFound);
+ return (-8, strScriptDirNotFound)
# Look for any script language directories to build for
- listDirs = [];
- nDepth = 1;
- for strPath, listDirs, listFiles in os.walk( strScriptDir ):
- nDepth = nDepth - 1;
+ listDirs = []
+ nDepth = 1
+ for strPath, listDirs, listFiles in os.walk(strScriptDir):
+ nDepth = nDepth - 1
if nDepth == 0:
- break;
+ break
# Skip the directory that contains the interface files.
listDirs.remove('interface')
@@ -276,18 +276,18 @@ def run_post_process_for_each_script_sup
for scriptLang in listDirs:
# __pycache__ is a magic directory in Python 3 that holds .pyc files
if scriptLang != "__pycache__":
- dbg.dump_text( "Executing language script for \'%s\'" % scriptLang );
- nResult, strStatusMsg = run_post_process( scriptLang, strFinishFileName,
- vDictArgs );
+ dbg.dump_text("Executing language script for \'%s\'" % scriptLang)
+ nResult, strStatusMsg = run_post_process(scriptLang, strFinishFileName,
+ vDictArgs)
if nResult < 0:
- break;
+ break
if nResult < 0:
- strTmp = strPostProcessError % scriptLang;
- strTmp += strStatusMsg;
- strStatusMsg = strTmp;
+ strTmp = strPostProcessError % scriptLang
+ strTmp += strStatusMsg
+ strStatusMsg = strTmp
- return (nResult, strStatusMsg);
+ return (nResult, strStatusMsg)
#++---------------------------------------------------------------------------
# Details: Program's main() with arguments passed in from the command line.
@@ -297,35 +297,35 @@ def run_post_process_for_each_script_sup
# Returns: None
# Throws: None.
#--
-def main( vArgv ):
- dbg = utilsDebug.CDebugFnVerbose( "main()" );
- bOk = False;
- dictArgs = {};
- nResult = 0;
- strMsg = "";
+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 );
+ nResult, dictArgs = validate_arguments(vArgv)
- eOSType = utilsOsType.determine_os_type();
+ eOSType = utilsOsType.determine_os_type()
if eOSType == utilsOsType.EnumOsType.Unknown:
- program_exit( -4, strMsgErrorOsTypeUnknown );
+ program_exit(-4, strMsgErrorOsTypeUnknown)
- global gbDbgFlag;
- gbDbgFlag = "-d" in dictArgs;
+ global gbDbgFlag
+ gbDbgFlag = "-d" in dictArgs
if gbDbgFlag:
- print_out_input_parameters( dictArgs );
+ 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;
- gbMakeFileFlag = "-m" in dictArgs;
+ global gbMakeFileFlag
+ gbMakeFileFlag = "-m" in dictArgs
- nResult, strMsg = run_post_process_for_each_script_supported( dictArgs );
+ nResult, strMsg = run_post_process_for_each_script_supported(dictArgs)
- program_exit( nResult, strMsg );
+ program_exit(nResult, strMsg)
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
@@ -378,9 +378,8 @@ def main( vArgv ):
# 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)
Modified: lldb/trunk/scripts/utilsArgsParse.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/utilsArgsParse.py?rev=252244&r1=252243&r2=252244&view=diff
==============================================================================
--- lldb/trunk/scripts/utilsArgsParse.py (original)
+++ lldb/trunk/scripts/utilsArgsParse.py Thu Nov 5 17:57:33 2015
@@ -1,141 +1,139 @@
""" Utility module handle program args and give help
- --------------------------------------------------------------------------
- File: utilsArgsParse.py
+ --------------------------------------------------------------------------
+ File: utilsArgsParse.py
+
+ Overview: Python module to parse and validate program parameters
+ against those required by the program whether mandatory
+ or optional.
+ Also give help information on arguments required by the
+ program.
+
+ Gotchas: None.
+
+ Copyright: None.
+ --------------------------------------------------------------------------
- Overview: Python module to parse and validate program parameters
- against those required by the program whether mandatory
- or optional.
- Also give help information on arguments required by the
- program.
-
- Gotchas: None.
-
- Copyright: None.
- --------------------------------------------------------------------------
-
"""
# Python modules:
-import sys # Provide argument parsing
-import getopt # Parse command line arguments
+import getopt # Parse command line arguments
# Third party modules:
# In-house modules:
-import utilsOsType # Determine the OS type this script is running on
# Instantiations:
# User facing text:
-strMsgErrorInvalidParameters = "Invalid parameters entered, -h for help. \nYou entered:\n";
-strMsgErrorInvalidNoParams = "No parameters entered, -h for help\n";
-strMsgErrorNumberParameters = "Number of parameters entered incorrect, %d parameters required. You entered:\n";
-strMsgArgFileNotImplemented = "Sorry the --argFile is not implemented";
+strMsgErrorInvalidParameters = "Invalid parameters entered, -h for help. \nYou entered:\n"
+strMsgErrorInvalidNoParams = "No parameters entered, -h for help\n"
+strMsgErrorNumberParameters = "Number of parameters entered incorrect, %d parameters required. You entered:\n"
+strMsgArgFileNotImplemented = "Sorry the --argFile is not implemented"
#++---------------------------------------------------------------------------
-# Details: Validate the arguments passed in against the mandatory and
-# optional arguments specified. The argument format for the parameters
-# is required to work with the module getopt function getopt().
-# Parameter vDictArgReq specifies which parameters are mandatory and
-# which are optional. The format is for example:
-# dictArgReq = { "-h": "o", # o = optional, m = mandatory
-# "-m": "m",
-# "--targetDir": "m",
-# "--cfgBldDir": "o" };
-# Args: vArgv - (R) List of arguments and values.
-# vstrListArgs - (R) List of small arguments.
-# vListLongArgs - (R) List of long arguments.
-# vDictArgReq - (R) Map of arguments required.
-# vstrHelpInfo - (R) Formatted help text.
-# Returns: Int - 0 success.
-# 1 success display information, do nothing else.
-# -1 error invalid parameters.
-# -2 error incorrect number of mandatory parameters.
-# Dict - Map of arguments names to argument values
-# Str - Error message.
-# Throws: None.
+# Details: Validate the arguments passed in against the mandatory and
+# optional arguments specified. The argument format for the parameters
+# is required to work with the module getopt function getopt().
+# Parameter vDictArgReq specifies which parameters are mandatory and
+# which are optional. The format is for example:
+# dictArgReq = {"-h": "o", # o = optional, m = mandatory
+# "-m": "m",
+# "--targetDir": "m",
+# "--cfgBldDir": "o" }
+# Args: vArgv - (R) List of arguments and values.
+# vstrListArgs - (R) List of small arguments.
+# vListLongArgs - (R) List of long arguments.
+# vDictArgReq - (R) Map of arguments required.
+# vstrHelpInfo - (R) Formatted help text.
+# Returns: Int - 0 success.
+# 1 success display information, do nothing else.
+# -1 error invalid parameters.
+# -2 error incorrect number of mandatory parameters.
+# Dict - Map of arguments names to argument values
+# Str - Error message.
+# Throws: None.
#--
-def parse( vArgv, vstrListArgs, vListLongArgs, vDictArgReq, vstrHelpInfo ):
- dictArgs = {};
- dictDummy = {};
- strDummy = "";
-
- # Validate parameters above and error on not recognised
- try:
- dictOptsNeeded, dictArgsLeftOver = getopt.getopt( vArgv,
- vstrListArgs,
- vListLongArgs );
- except getopt.GetoptError:
- strMsg = strMsgErrorInvalidParameters;
- strMsg += str( vArgv );
- return (-1, dictDummy, strMsg);
-
- if len( dictOptsNeeded ) == 0:
- strMsg = strMsgErrorInvalidNoParams;
- return (-1, dictDummy, strMsg);
-
- # Look for help -h before anything else
- for opt, arg in dictOptsNeeded:
- if opt == '-h':
- return (1, dictDummy, vstrHelpInfo );
-
- # Look for the --argFile if found ignore other command line arguments
- for opt, arg in dictOptsNeeded:
- if opt == '--argsFile':
- return (1, dictDummy, strMsgArgFileNotImplemented);
-
- # Count the number of mandatory args required (if any one found)
- countMandatory = 0;
- for opt, man in list(vDictArgReq.items()):
- if man == "m":
- countMandatory = countMandatory + 1;
-
- # Extract short args
- listArgs = [];
- for arg in vstrListArgs:
- if (arg == '-h') or (arg == ':'):
- continue;
- listArgs.append( arg );
-
- # Append to arg dictionary the option and its value
- bFoundNoInputValue = False;
- countMandatoryOpts = 0;
- for opt, val in dictOptsNeeded:
- match = 0;
- for arg in listArgs:
- argg = "-" + arg;
- if opt == argg:
- if "m" == vDictArgReq[ opt ]:
- countMandatoryOpts = countMandatoryOpts + 1;
- dictArgs[ opt ] = val;
- match = 1;
- break;
- if match == 0:
- for arg in vListLongArgs:
- argg = "--" + arg[:arg.__len__() - 1];
- if opt == argg:
- if "m" == vDictArgReq[ opt ]:
- countMandatoryOpts = countMandatoryOpts + 1;
- dictArgs[ opt ] = val;
- if val.__len__() == 0:
- bFoundNoInputValue = True;
- break;
-
- # Do any of the long arguments not have a value attached
- if bFoundNoInputValue:
- strMsg = strMsgErrorInvalidParameters;
- strMsg += str( vArgv );
- return (-1, dictDummy, strMsg);
-
- # Debug only
- #print countMandatoryOpts
- #print countMandatory
-
- # Do we have the exact number of mandatory arguments
- if (countMandatoryOpts > 0) and (countMandatory != countMandatoryOpts):
- strMsg = strMsgErrorNumberParameters % countMandatory;
- strMsg += str( vArgv );
- return (-2, dictDummy, strMsg);
+def parse(vArgv, vstrListArgs, vListLongArgs, vDictArgReq, vstrHelpInfo):
+ dictArgs = {}
+ dictDummy = {}
+ strDummy = ""
+
+ # Validate parameters above and error on not recognised
+ try:
+ dictOptsNeeded, dictArgsLeftOver = getopt.getopt(vArgv,
+ vstrListArgs,
+ vListLongArgs)
+ except getopt.GetoptError:
+ strMsg = strMsgErrorInvalidParameters
+ strMsg += str(vArgv)
+ return (-1, dictDummy, strMsg)
+
+ if len(dictOptsNeeded) == 0:
+ strMsg = strMsgErrorInvalidNoParams
+ return (-1, dictDummy, strMsg)
+
+ # Look for help -h before anything else
+ for opt, arg in dictOptsNeeded:
+ if opt == '-h':
+ return (1, dictDummy, vstrHelpInfo)
+
+ # Look for the --argFile if found ignore other command line arguments
+ for opt, arg in dictOptsNeeded:
+ if opt == '--argsFile':
+ return (1, dictDummy, strMsgArgFileNotImplemented)
+
+ # Count the number of mandatory args required (if any one found)
+ countMandatory = 0
+ for opt, man in list(vDictArgReq.items()):
+ if man == "m":
+ countMandatory = countMandatory + 1
+
+ # Extract short args
+ listArgs = []
+ for arg in vstrListArgs:
+ if (arg == '-h') or (arg == ':'):
+ continue
+ listArgs.append(arg)
+
+ # Append to arg dictionary the option and its value
+ bFoundNoInputValue = False
+ countMandatoryOpts = 0
+ for opt, val in dictOptsNeeded:
+ match = 0
+ for arg in listArgs:
+ argg = "-" + arg
+ if opt == argg:
+ if "m" == vDictArgReq[opt]:
+ countMandatoryOpts = countMandatoryOpts + 1
+ dictArgs[opt] = val
+ match = 1
+ break
+ if match == 0:
+ for arg in vListLongArgs:
+ argg = "--" + arg[:arg.__len__() - 1]
+ if opt == argg:
+ if "m" == vDictArgReq[opt]:
+ countMandatoryOpts = countMandatoryOpts + 1
+ dictArgs[opt] = val
+ if val.__len__() == 0:
+ bFoundNoInputValue = True
+ break
+
+ # Do any of the long arguments not have a value attached
+ if bFoundNoInputValue:
+ strMsg = strMsgErrorInvalidParameters
+ strMsg += str(vArgv)
+ return (-1, dictDummy, strMsg)
+
+ # Debug only
+ #print countMandatoryOpts
+ #print countMandatory
+
+ # Do we have the exact number of mandatory arguments
+ if (countMandatoryOpts > 0) and (countMandatory != countMandatoryOpts):
+ strMsg = strMsgErrorNumberParameters % countMandatory
+ strMsg += str(vArgv)
+ return (-2, dictDummy, strMsg)
- return (0, dictArgs, strDummy);
+ return (0, dictArgs, strDummy)
Modified: lldb/trunk/scripts/utilsDebug.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/utilsDebug.py?rev=252244&r1=252243&r2=252244&view=diff
==============================================================================
--- lldb/trunk/scripts/utilsDebug.py (original)
+++ lldb/trunk/scripts/utilsDebug.py Thu Nov 5 17:57:33 2015
@@ -1,19 +1,17 @@
""" Utility module to help debug Python scripts
- --------------------------------------------------------------------------
- File: utilsDebug.py
+ --------------------------------------------------------------------------
+ File: utilsDebug.py
- Overview: Python module to supply functions to help debug Python
- scripts.
-
- Gotchas: None.
-
- Copyright: None.
- --------------------------------------------------------------------------
-
+ Overview: Python module to supply functions to help debug Python
+ scripts.
+ Gotchas: None.
+ Copyright: None.
+ --------------------------------------------------------------------------
"""
# Python modules:
+import sys
# Third party modules:
@@ -22,104 +20,101 @@
# Instantiations:
#-----------------------------------------------------------------------------
-# Details: Class to implement simple stack function trace. Instantiation the
-# class as the first function you want to trace. Example:
-# obj = utilsDebug.CDebugFnVerbose( "validate_arguments()" );
-# Gotchas: This class will not work in properly in a multi-threaded
-# environment.
-# Authors: Illya Rudkin 28/11/2013.
-# Changes: None.
+# Details: Class to implement simple stack function trace. Instantiation the
+# class as the first function you want to trace. Example:
+# obj = utilsDebug.CDebugFnVerbose("validate_arguments()")
+# Gotchas: This class will not work in properly in a multi-threaded
+# environment.
+# Authors: Illya Rudkin 28/11/2013.
+# Changes: None.
#--
-class CDebugFnVerbose:
- # Public static properties:
- bVerboseOn = False; # True = turn on function tracing, False = turn off.
-
- # Public:
- #++------------------------------------------------------------------------
- # Details: CDebugFnVerbose constructor.
- # Type: Method.
- # Args: vstrFnName - (R) Text description i.e. a function name.
- # Return: None.
- # Throws: None.
- #--
- # CDebugFnVerbose( vstrFnName )
-
- #++------------------------------------------------------------------------
- # Details: Print out information on the object specified.
- # Type: Method.
- # Args: vstrText - (R) Some helper text description.
- # vObject - (R) Some Python type object.
- # Return: None.
- # Throws: None.
- #--
- def dump_object( self, vstrText, vObject ):
- if CDebugFnVerbose.bVerboseOn == False:
- return;
- sys.stdout.write("%d%s> Dp: %s" % (CDebugFnVerbose.__nLevel, self.__get_dots(),
- vstrText));
- print(vObject);
-
- #++------------------------------------------------------------------------
- # Details: Print out some progress text given by the client.
- # Type: Method.
- # Args: vstrText - (R) Some helper text description.
- # Return: None.
- # Throws: None.
- #--
- def dump_text( self, vstrText ):
- if CDebugFnVerbose.bVerboseOn == False:
- return;
- print(("%d%s> Dp: %s" % (CDebugFnVerbose.__nLevel, self.__get_dots(),
- vstrText)));
-
- # Private methods:
- def __init__( self, vstrFnName ):
- self.__indent_out( vstrFnName );
-
- #++------------------------------------------------------------------------
- # Details: Build an indentation string of dots based on the __nLevel.
- # Type: Method.
- # Args: None.
- # Return: Str - variable length string.
- # Throws: None.
- #--
- def __get_dots( self ):
- return "".join( "." for i in range( 0, CDebugFnVerbose.__nLevel ) );
-
- #++------------------------------------------------------------------------
- # Details: Build and print out debug verbosity text indicating the function
- # just exited from.
- # Type: Method.
- # Args: None.
- # Return: None.
- # Throws: None.
- #--
- def __indent_back( self ):
- if CDebugFnVerbose.bVerboseOn:
- print(("%d%s< fn: %s" % (CDebugFnVerbose.__nLevel, self.__get_dots(),
- self.__strFnName)));
- CDebugFnVerbose.__nLevel -= 1;
-
- #++------------------------------------------------------------------------
- # Details: Build and print out debug verbosity text indicating the function
- # just entered.
- # Type: Method.
- # Args: vstrFnName - (R) Name of the function entered.
- # Return: None.
- # Throws: None.
- #--
- def __indent_out( self, vstrFnName ):
- CDebugFnVerbose.__nLevel += 1;
- self.__strFnName = vstrFnName;
- if CDebugFnVerbose.bVerboseOn:
- print(("%d%s> fn: %s" % ( CDebugFnVerbose.__nLevel, self.__get_dots(),
- self.__strFnName)));
-
- # Private statics attributes:
- __nLevel = 0; # Indentation level counter
-
- # Private attributes:
- __strFnName = "";
-
-
-
+class CDebugFnVerbose(object):
+ # Public static properties:
+ bVerboseOn = False # True = turn on function tracing, False = turn off.
+
+ # Public:
+ #++------------------------------------------------------------------------
+ # Details: CDebugFnVerbose constructor.
+ # Type: Method.
+ # Args: vstrFnName - (R) Text description i.e. a function name.
+ # Return: None.
+ # Throws: None.
+ #--
+ # CDebugFnVerbose(vstrFnName)
+
+ #++------------------------------------------------------------------------
+ # Details: Print out information on the object specified.
+ # Type: Method.
+ # Args: vstrText - (R) Some helper text description.
+ # vObject - (R) Some Python type object.
+ # Return: None.
+ # Throws: None.
+ #--
+ def dump_object(self, vstrText, vObject):
+ if CDebugFnVerbose.bVerboseOn == False:
+ return
+ sys.stdout.write("%d%s> Dp: %s" % (CDebugFnVerbose.__nLevel, self.__get_dots(),
+ vstrText))
+ print(vObject)
+
+ #++------------------------------------------------------------------------
+ # Details: Print out some progress text given by the client.
+ # Type: Method.
+ # Args: vstrText - (R) Some helper text description.
+ # Return: None.
+ # Throws: None.
+ #--
+ def dump_text(self, vstrText):
+ if CDebugFnVerbose.bVerboseOn == False:
+ return
+ print(("%d%s> Dp: %s" % (CDebugFnVerbose.__nLevel, self.__get_dots(),
+ vstrText)))
+
+ # Private methods:
+ def __init__(self, vstrFnName):
+ self.__indent_out(vstrFnName)
+
+ #++------------------------------------------------------------------------
+ # Details: Build an indentation string of dots based on the __nLevel.
+ # Type: Method.
+ # Args: None.
+ # Return: Str - variable length string.
+ # Throws: None.
+ #--
+ def __get_dots(self):
+ return "".join("." for i in range(0, CDebugFnVerbose.__nLevel))
+
+ #++------------------------------------------------------------------------
+ # Details: Build and print out debug verbosity text indicating the function
+ # just exited from.
+ # Type: Method.
+ # Args: None.
+ # Return: None.
+ # Throws: None.
+ #--
+ def __indent_back(self):
+ if CDebugFnVerbose.bVerboseOn:
+ print(("%d%s< fn: %s" % (CDebugFnVerbose.__nLevel, self.__get_dots(),
+ self.__strFnName)))
+ CDebugFnVerbose.__nLevel -= 1
+
+ #++------------------------------------------------------------------------
+ # Details: Build and print out debug verbosity text indicating the function
+ # just entered.
+ # Type: Method.
+ # Args: vstrFnName - (R) Name of the function entered.
+ # Return: None.
+ # Throws: None.
+ #--
+ def __indent_out(self, vstrFnName):
+ CDebugFnVerbose.__nLevel += 1
+ self.__strFnName = vstrFnName
+ if CDebugFnVerbose.bVerboseOn:
+ print(("%d%s> fn: %s" % (CDebugFnVerbose.__nLevel, self.__get_dots(),
+ self.__strFnName)))
+
+ # Private statics attributes:
+ __nLevel = 0 # Indentation level counter
+
+ # Private attributes:
+ __strFnName = ""
Modified: lldb/trunk/scripts/utilsOsType.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/utilsOsType.py?rev=252244&r1=252243&r2=252244&view=diff
==============================================================================
--- lldb/trunk/scripts/utilsOsType.py (original)
+++ lldb/trunk/scripts/utilsOsType.py Thu Nov 5 17:57:33 2015
@@ -3,7 +3,7 @@
--------------------------------------------------------------------------
File: utilsOsType.py
- Overview: Python module to supply functions and an enumeration to
+ Overview: Python module to supply functions and an enumeration to
help determine the platform type, bit size and OS currently
being used.
--------------------------------------------------------------------------
@@ -36,22 +36,22 @@ if sys.version_info.major >= 3:
NetBSD = 4
Windows = 5
else:
- class EnumOsType( object ):
- values = [ "Unknown",
- "Darwin",
- "FreeBSD",
- "Linux",
- "NetBSD",
- "Windows" ]
- class __metaclass__( type ):
+ class EnumOsType(object):
+ values = ["Unknown",
+ "Darwin",
+ "FreeBSD",
+ "Linux",
+ "NetBSD",
+ "Windows"]
+ class __metaclass__(type):
#++---------------------------------------------------------------------------
# Details: Fn acts as an enumeration.
# Args: vName - (R) Enumeration to match.
# Returns: Int - Matching enumeration/index.
# Throws: None.
#--
- def __getattr__( self, vName ):
- return self.values.index( vName );
+ def __getattr__(cls, vName):
+ return cls.values.index(vName)
#++---------------------------------------------------------------------------
# Details: Reverse fast lookup of the values list.
@@ -59,8 +59,8 @@ else:
# Returns: Str - text description matching enumeration.
# Throws: None.
#--
- def name_of( self, vI ):
- return EnumOsType.values[ vI ];
+ def name_of(cls, vI):
+ return EnumOsType.values[vI]
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
@@ -73,18 +73,18 @@ else:
# Throws: None.
#--
def determine_os_type():
- eOSType = EnumOsType.Unknown;
+ eOSType = EnumOsType.Unknown
strOS = sys.platform
if strOS == "darwin":
eOSType = EnumOsType.Darwin
- elif (strOS.startswith("freebsd")):
+ elif strOS.startswith("freebsd"):
eOSType = EnumOsType.FreeBSD
- elif (strOS.startswith("linux")):
+ elif strOS.startswith("linux"):
eOSType = EnumOsType.Linux
- elif (strOS.startswith("netbsd")):
+ elif strOS.startswith("netbsd"):
eOSType = EnumOsType.NetBSD
elif strOS == "win32":
eOSType = EnumOsType.Windows
- return eOSType;
+ return eOSType
More information about the lldb-commits
mailing list