[Lldb-commits] [lldb] r252764 - Symlink the `six` module during swig generation.

Zachary Turner via lldb-commits lldb-commits at lists.llvm.org
Wed Nov 11 09:59:35 PST 2015


Author: zturner
Date: Wed Nov 11 11:59:34 2015
New Revision: 252764

URL: http://llvm.org/viewvc/llvm-project?rev=252764&view=rev
Log:
Symlink the `six` module during swig generation.

Modified:
    lldb/trunk/scripts/CMakeLists.txt
    lldb/trunk/scripts/Python/finishSwigPythonLLDB.py

Modified: lldb/trunk/scripts/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/CMakeLists.txt?rev=252764&r1=252763&r2=252764&view=diff
==============================================================================
--- lldb/trunk/scripts/CMakeLists.txt (original)
+++ lldb/trunk/scripts/CMakeLists.txt Wed Nov 11 11:59:34 2015
@@ -12,6 +12,7 @@ set(SWIG_HEADERS
 find_package(SWIG REQUIRED)
 add_custom_command(
   OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/LLDBWrapPython.cpp
+  OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lldb.py
   DEPENDS ${SWIG_SOURCES}
   DEPENDS ${SWIG_INTERFACES}
   DEPENDS ${SWIG_HEADERS}

Modified: lldb/trunk/scripts/Python/finishSwigPythonLLDB.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/Python/finishSwigPythonLLDB.py?rev=252764&r1=252763&r2=252764&view=diff
==============================================================================
--- lldb/trunk/scripts/Python/finishSwigPythonLLDB.py (original)
+++ lldb/trunk/scripts/Python/finishSwigPythonLLDB.py Wed Nov 11 11:59:34 2015
@@ -267,6 +267,37 @@ def make_symlink_other_platforms(vstrSrc
 
     return (bOk, strErrMsg)
 
+def make_symlink_native(vDictArgs, strSrc, strTarget):
+    eOSType = utilsOsType.determine_os_type()
+    bDbg = "-d" in vDictArgs
+    bOk = True
+    strErrMsg = ""
+
+    target_filename = os.path.basename(strTarget)
+    if eOSType == utilsOsType.EnumOsType.Unknown:
+        bOk = False
+        strErrMsg = strErrMsgOsTypeUnknown
+    elif eOSType == utilsOsType.EnumOsType.Windows:
+        if os.path.isfile(strTarget):
+            if bDbg:
+                print((strMsgSymlinkExists % target_filename))
+            return (bOk, strErrMsg)
+        if bDbg:
+            print((strMsgSymlinkMk % (target_filename, strSrc, strTarget)))
+        bOk, strErrMsg = make_symlink_windows(strSrc,
+                                              strTarget)
+    else:
+        if os.path.islink(strTarget):
+            if bDbg:
+                print((strMsgSymlinkExists % target_filename))
+            return (bOk, strErrMsg)
+        if bDbg:
+            print((strMsgSymlinkMk % (target_filename, strSrc, strTarget)))
+        bOk, strErrMsg = make_symlink_other_platforms(strSrc,
+                                                      strTarget)
+
+    return (bOk, strErrMsg)
+
 #++---------------------------------------------------------------------------
 # Details:  Make the symbolic link.
 # Args:     vDictArgs               - (R) Program input parameters.
@@ -303,29 +334,16 @@ def make_symlink(vDictArgs, vstrFramewor
             strBuildDir = os.path.join("..", "..", "..", "..")
         strSrc = os.path.normcase(os.path.join(strBuildDir, vstrSrcFile))
 
-    if eOSType == utilsOsType.EnumOsType.Unknown:
-        bOk = False
-        strErrMsg = strErrMsgOsTypeUnknown
-    elif eOSType == utilsOsType.EnumOsType.Windows:
-        if os.path.isfile(strTarget):
-            if bDbg:
-                print((strMsgSymlinkExists % vstrTargetFile))
-            return (bOk, strErrMsg)
-        if bDbg:
-            print((strMsgSymlinkMk % (vstrTargetFile, strSrc, strTarget)))
-        bOk, strErrMsg = make_symlink_windows(strSrc,
-                                              strTarget)
-    else:
-        if os.path.islink(strTarget):
-            if bDbg:
-                print((strMsgSymlinkExists % vstrTargetFile))
-            return (bOk, strErrMsg)
-        if bDbg:
-            print((strMsgSymlinkMk % (vstrTargetFile, strSrc, strTarget)))
-        bOk, strErrMsg = make_symlink_other_platforms(strSrc,
-                                                      strTarget)
+    return make_symlink_native(vDictArgs, strSrc, strTarget)
 
-    return (bOk, strErrMsg)
+def make_symlink_six(vDictArgs, vstrFrameworkPythonDir):
+    dbg = utilsDebug.CDebugFnVerbose("Python script make_symlink_six()")
+    site_packages_dir = os.path.dirname(vstrFrameworkPythonDir)
+    six_module_filename = "six.py"
+    src_file = os.path.join(vDictArgs['--srcRoot'], "third_party", "Python", "module", "six", six_module_filename)
+    src_file = os.path.normpath(src_file)
+    target = os.path.join(site_packages_dir, six_module_filename)
+    return make_symlink_native(vDictArgs, src_file, target)
 
 #++---------------------------------------------------------------------------
 # Details:  Make the symbolic that the script bridge for Python will need in
@@ -454,6 +472,9 @@ def create_symlinks(vDictArgs, vstrFrame
                                               vstrFrameworkPythonDir,
                                               strLibLldbFileName)
 
+    if bOk:
+        bOk, strErrMsg = make_symlink_six(vDictArgs, vstrFrameworkPythonDir)
+
     # Make symlink for darwin-debug on Darwin
     strDarwinDebugFileName = "darwin-debug"
     if bOk and eOSType == utilsOsType.EnumOsType.Darwin:




More information about the lldb-commits mailing list