summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2015-04-22 22:53:18 +0000
committerZachary Turner <zturner@google.com>2015-04-22 22:53:18 +0000
commit0405d68bb472f208ef660ad69682fe1b54a58804 (patch)
tree2876555eb36278da7172ceae9bdd11815a15b0b7
parent7d0e99c6019ca1c4c6708309ef5dade0db03b425 (diff)
downloadbcm5719-llvm-0405d68bb472f208ef660ad69682fe1b54a58804.tar.gz
bcm5719-llvm-0405d68bb472f208ef660ad69682fe1b54a58804.zip
Use the debugginess of the python interpreter when symlinking _lldb.pyd.
Previously we would pass an argument to finishSwigWrapperClasses.py which specified whether this was a debug or a release build. But sometimes CMAKE_BUILD_TYPE would not be set to anything, causing this argument to be empty when passed in. The only purpose of this argument was to determine whether or not to append _d to the extension module when creating the symlink. This is only necessary when doing a debug build of LLDB on Windows, which implies a debug interpreter, so we replace this with a check to see if the running interpreter is a debug one, and append _d if so. llvm-svn: 235559
-rw-r--r--lldb/CMakeLists.txt2
-rw-r--r--lldb/scripts/Python/finishSwigPythonLLDB.py6
-rw-r--r--lldb/scripts/finishSwigWrapperClasses.py3
3 files changed, 6 insertions, 5 deletions
diff --git a/lldb/CMakeLists.txt b/lldb/CMakeLists.txt
index 91162e04fad..02b7d6ab1ab 100644
--- a/lldb/CMakeLists.txt
+++ b/lldb/CMakeLists.txt
@@ -17,7 +17,7 @@ add_subdirectory(lit)
if ( LLDB_ENABLE_PYTHON_SCRIPTS_SWIG_API_GENERATION AND NOT LLDB_DISABLE_PYTHON )
# Add a Post-Build Event to copy over Python files and create the symlink to liblldb.so for the Python API(hardlink on Windows)
add_custom_target( finish_swig ALL
- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/scripts/finishSwigWrapperClasses.py --buildConfig=${CMAKE_BUILD_TYPE} "--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
+ COMMAND ${PYTHON_EXECUTABLE} ${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
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/scripts/finishSwigWrapperClasses.py
COMMENT "Python script sym-linking LLDB Python API")
add_dependencies(finish_swig liblldb argdumper)
diff --git a/lldb/scripts/Python/finishSwigPythonLLDB.py b/lldb/scripts/Python/finishSwigPythonLLDB.py
index c9b5e81892b..30759b55883 100644
--- a/lldb/scripts/Python/finishSwigPythonLLDB.py
+++ b/lldb/scripts/Python/finishSwigPythonLLDB.py
@@ -73,6 +73,9 @@ strErrMsgMkLinkExecute = "Command mklink failed: %s";
strErrMsgMakeSymlink = "creating symbolic link";
strErrMsgUnexpected = "Unexpected error: %s";
+def is_debug_interpreter():
+ return hasattr(sys, 'gettotalrefcount')
+
#++---------------------------------------------------------------------------
# Details: Copy files needed by lldb/macosx/heap.py to build libheap.dylib.
# Args: vDictArgs - (R) Program input parameters.
@@ -348,7 +351,7 @@ def make_symlink_liblldb( vDictArgs, vstrFrameworkPythonDir, vstrLiblldbFileName
# 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 vDictArgs["--buildConfig"].lower() == "debug":
+ if is_debug_interpreter():
strTarget += "_d";
strTarget += ".pyd";
else:
@@ -640,7 +643,6 @@ def get_framework_python_dir( vDictArgs ):
-m (optional) Specify called from Makefile system. If given locate
the LLDBWrapPython.cpp in --srcRoot/source folder
else in the --targetDir folder.
- --buildConfig The LLDB build configuration (e.g. debug/release).
--srcRoot The root of the lldb source tree.
--targetDir Where the lldb framework/shared library gets put.
--cfgBlddir Where the buildSwigPythonLLDB.py program will
diff --git a/lldb/scripts/finishSwigWrapperClasses.py b/lldb/scripts/finishSwigWrapperClasses.py
index ca2cbc3f5f9..6cfc255d9e1 100644
--- a/lldb/scripts/finishSwigWrapperClasses.py
+++ b/lldb/scripts/finishSwigWrapperClasses.py
@@ -158,14 +158,13 @@ def validate_arguments( vArgv ):
nResult = 0;
strListArgs = "hdm"; # Format "hiox:" = -h -i -o -x <arg>
listLongArgs = ["srcRoot=", "targetDir=", "cfgBldDir=", "prefix=", "cmakeBuildConfiguration=",
- "argsFile", "buildConfig="];
+ "argsFile"];
dictArgReq = { "-h": "o", # o = optional, m = mandatory
"-d": "o",
"-m": "o",
"--srcRoot": "m",
"--targetDir": "m",
"--cfgBldDir": "o",
- "--buildConfig": "m",
"--prefix": "o",
"--cmakeBuildConfiguration": "o",
"--argsFile": "o" };
OpenPOWER on IntegriCloud