Closed by commit rL212785 (authored by @zturner).

REPOSITORY
  rL LLVM

http://reviews.llvm.org/D4441

Files:
  lldb/trunk/CMakeLists.txt
  lldb/trunk/include/lldb/lldb-python.h
  lldb/trunk/scripts/Python/finishSwigPythonLLDB.py
  lldb/trunk/source/CMakeLists.txt
  lldb/trunk/source/Interpreter/ScriptInterpreterPython.cpp
Index: lldb/trunk/source/Interpreter/ScriptInterpreterPython.cpp
===================================================================
--- lldb/trunk/source/Interpreter/ScriptInterpreterPython.cpp
+++ lldb/trunk/source/Interpreter/ScriptInterpreterPython.cpp
@@ -2621,7 +2621,7 @@
         }
     }
 
-    PyRun_SimpleString ("sys.dont_write_bytecode = 1; import lldb.embedded_interpreter; from lldb.embedded_interpreter import run_python_interpreter; from lldb.embedded_interpreter import run_one_line; from termios import *");
+    PyRun_SimpleString ("sys.dont_write_bytecode = 1; import lldb.embedded_interpreter; from lldb.embedded_interpreter import run_python_interpreter; from lldb.embedded_interpreter import run_one_line");
 
     if (threads_already_initialized) {
         if (log)
Index: lldb/trunk/source/CMakeLists.txt
===================================================================
--- lldb/trunk/source/CMakeLists.txt
+++ lldb/trunk/source/CMakeLists.txt
@@ -327,6 +327,18 @@
 # FIXME: implement svn/git revision and repository parsing solution on Windows. There is an SVN-only
 #        revision parsing solution in tools/clang/lib/Basic/CMakelists.txt.
 
+if ( LLDB_ENABLE_PYTHON_SCRIPTS_SWIG_API_GENERATION )
+	# Add a Post-Build Event to copy over Python files and create the symlink to liblldb.so for the Python API(hardlink on Windows)
+	if ( NOT LLDB_DISABLE_PYTHON )
+        message("Adding post build step to run finishSwigWrapperClasses.py")
+	    add_custom_command( TARGET liblldb
+	        POST_BUILD
+            DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/finishSwigWrapperClasses.py
+	        COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/finishSwigWrapperClasses.py "--srcRoot=${LLDB_SOURCE_DIR}" "--targetDir=${CMAKE_CURRENT_BINARY_DIR}/../scripts" "--cfgBldDir=${CMAKE_CURRENT_BINARY_DIR}/../scripts" "--prefix=${CMAKE_BINARY_DIR}" "--cmakeBuildConfiguration=${CMAKE_CFG_INTDIR}" -m
+	        COMMENT "Python script sym-linking LLDB Python API")
+	endif ()
+endif ()
+
 install(TARGETS liblldb
   RUNTIME DESTINATION bin
   LIBRARY DESTINATION lib
Index: lldb/trunk/CMakeLists.txt
===================================================================
--- lldb/trunk/CMakeLists.txt
+++ lldb/trunk/CMakeLists.txt
@@ -108,10 +108,6 @@
 endmacro(add_lldb_definitions)
 
 if (NOT LLDB_DISABLE_PYTHON)
-    if (MSVC)
-        # this definition will stop python from auto linking python27_d.lib when Python.h is included
-        add_definitions( -DSWIG_PYTHON_INTERPRETER_NO_DEBUG )
-    endif()
     find_package(PythonLibs REQUIRED)
     include_directories(${PYTHON_INCLUDE_DIRS})
 endif()
Index: lldb/trunk/include/lldb/lldb-python.h
===================================================================
--- lldb/trunk/include/lldb/lldb-python.h
+++ lldb/trunk/include/lldb/lldb-python.h
@@ -15,44 +15,17 @@
 #ifdef LLDB_DISABLE_PYTHON
 // Python is disabled in this build
 #else
-	// If this is a visual studio build
-	#if defined( _MSC_VER )
-		// Special case for debug build since python unfortunately
-		// adds library to the linker path through a #pragma directive
-		#if defined( _DEBUG )
-			// Python forces a header link to python27_d.lib when building debug.
-			// To get around this (because most python packages for Windows
-			// don't come with debug python libraries), we undefine _DEBUG, include
-			// python.h and then restore _DEBUG.
-
-			// The problem with this is that any system level headers included from
-			// python.h were also effectively included in 'release' mode when we undefined
-			// _DEBUG. To work around this we include headers that python includes 
-			// before undefining _DEBUG.
-			#           include <stdlib.h>
-			// Undefine to force python to link against the release distro
-			#           undef _DEBUG
-			#           include <Python.h>
-			#           define _DEBUG
-			
-		#else
-			#include <Python.h>
-		#endif
-
-	#else
-		#if defined(__linux__)
-			// features.h will define _POSIX_C_SOURCE if _GNU_SOURCE is defined.  This value
-			// may be different from the value that Python defines it to be which results
-			// in a warning.  Undefine _POSIX_C_SOURCE before including Python.h  The same
-			// holds for _XOPEN_SOURCE.
-			#undef _POSIX_C_SOURCE
-			#undef _XOPEN_SOURCE
-		#endif
-
-		// Include python for non windows machines
-		#include <Python.h>
-
+	#if defined(__linux__)
+		// features.h will define _POSIX_C_SOURCE if _GNU_SOURCE is defined.  This value
+		// may be different from the value that Python defines it to be which results
+		// in a warning.  Undefine _POSIX_C_SOURCE before including Python.h  The same
+		// holds for _XOPEN_SOURCE.
+		#undef _POSIX_C_SOURCE
+		#undef _XOPEN_SOURCE
 	#endif
+
+	// Include python for non windows machines
+	#include <Python.h>
 #endif // LLDB_DISABLE_PYTHON
 
 #endif  // LLDB_lldb_python_h_
Index: lldb/trunk/scripts/Python/finishSwigPythonLLDB.py
===================================================================
--- lldb/trunk/scripts/Python/finishSwigPythonLLDB.py
+++ lldb/trunk/scripts/Python/finishSwigPythonLLDB.py
@@ -71,7 +71,7 @@
 strMsgFrameWkPyMkDir = "Python output folder '%s' will be created";
 strErrMsgCreateFrmWkPyDirFailed = "Unable to create directory '%s' error: %s";
 strMsglldbsoExists = "Symlink '%s' already exists";
-strMsglldbsoMk = "Creating symlink for _lldb.so";
+strMsglldbsoMk = "Creating symlink for _lldb.so  (%s -> %s)";
 strErrMsgCpLldbpy = "copying lldb to lldb package directory";
 strErrMsgCreatePyPkgMissingSlash = "Parameter 3 fn create_py_pkg() missing slash"; 
 strErrMsgMkLinkExecute = "Command mklink failed: %s";
@@ -135,7 +135,6 @@
 
 	strPkgName = vstrPkgDir;
 	strPkgName = "lldb" + strPkgName.replace( "/", "." );
-	strPkgName = os.path.normcase( strPkgName );
 	
 	strPkgDir = vstrFrameworkPythonDir;
 	strPkgDir += vstrPkgDir;
@@ -148,10 +147,9 @@
 		
 	for strPkgFile in vListPkgFiles:
 		if os.path.exists( strPkgFile ) and os.path.isfile( strPkgFile ):
-			strPyFile = os.path.normcase( strPkgFile );
 			if bDbg:
 				print(strMsgCreatePyPkgCopyPkgFile % (strPkgFile, strPkgDir));
-			shutil.copy( strPyFile, strPkgDir );
+			shutil.copy( strPkgFile, strPkgDir );
 	
 	# Create a packet init files if there wasn't one
 	strPkgIniFile = strPkgDir + "/__init__.py";
@@ -162,8 +160,7 @@
 	strPyScript = "__all__ = [";
 	strDelimiter = "";
 	for strPkgFile in vListPkgFiles:
-		strPyFile = os.path.normcase( strPkgFile );
-		if os.path.exists( strPyFile ) and os.path.isfile( strPyFile ):
+		if os.path.exists( strPkgFile ) and os.path.isfile( strPkgFile ):
 			strBaseName = os.path.basename( strPkgFile );
 			nPos = strBaseName.find( "." );
 			if nPos != -1:
@@ -257,7 +254,7 @@
 		return (bOk, strMsg);
 
 	if bDbg:
-		print strMsglldbsoMk;
+		print strMsglldbsoMk % (os.path.abspath(strSrc), os.path.abspath(strTarget));
 		
 	try:
 		csl = ctypes.windll.kernel32.CreateHardLinkW
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits

Reply via email to