summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBruce Mitchener <bruce.mitchener@gmail.com>2015-10-01 07:55:44 +0000
committerBruce Mitchener <bruce.mitchener@gmail.com>2015-10-01 07:55:44 +0000
commitf0248ca54531125599af8f22e686e1c77de0416a (patch)
treee2b396e2ce4c1920d81f8ad785e59010ecbc8280
parent852cb7fb0d9467ca6349602196d75fdf1ccade37 (diff)
downloadbcm5719-llvm-f0248ca54531125599af8f22e686e1c77de0416a.tar.gz
bcm5719-llvm-f0248ca54531125599af8f22e686e1c77de0416a.zip
Add a Post-Build Event on Windows to copy the correct custom Python DLL to the LLDB binaries dir
Summary: After a developer builds LLDB from source on Windows (assuming they've built it with Python support enabled), they may be somewhat flustered when it fails to launch with a cryptic error. {F890625} This happens because Windows can't find python27.dll (or python27_d.dll in case LLDB was built in debug mode). Many developers may have previously installed a release build of Python 2.7 and will not notice anything is amiss when they run a release build of LLDB because Windows will load the python27.dll from one of the system directories or `PATH` (rather than the one that the LLDB build instructions tell them to build). The issue tends to be more pronounced with debug builds of LLDB, since fewer developers probably have python27_d.dll sitting in one of the Windows system directories. To ensure Windows loads the correct custom built Python DLL when launching LLDB I've added a post-build event that copies the relevant DLL (based on the LLDB build configuration) from `PYTHON_HOME` to the directory in which the LLDB executable is generated. Patch by Vadim Macagon. Thanks! Reviewers: brucem, zturner Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D13237 llvm-svn: 248992
-rw-r--r--lldb/CMakeLists.txt13
1 files changed, 13 insertions, 0 deletions
diff --git a/lldb/CMakeLists.txt b/lldb/CMakeLists.txt
index 2acb01d86e5..55fdf770001 100644
--- a/lldb/CMakeLists.txt
+++ b/lldb/CMakeLists.txt
@@ -26,4 +26,17 @@ if (NOT LLDB_DISABLE_PYTHON)
# Ensure we do the python post-build step when building lldb.
add_dependencies(lldb finish_swig)
+
+ # Add a Post-Build Event to copy the custom Python DLL to the lldb binaries dir so that Windows can find it when launching
+ # lldb.exe or any other executables that were linked with liblldb.
+ if (WIN32 AND NOT "${PYTHON_DLL}" STREQUAL "")
+ # When using the Visual Studio CMake generator the lldb binaries end up in Release/bin, Debug/bin etc.
+ file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin" LLDB_BIN_DIR)
+ file(TO_NATIVE_PATH "${PYTHON_DLL}" PYTHON_DLL_NATIVE_PATH)
+ add_custom_command(
+ TARGET finish_swig
+ POST_BUILD
+ COMMAND "${CMAKE_COMMAND}" -E copy ${PYTHON_DLL_NATIVE_PATH} ${LLDB_BIN_DIR}
+ COMMENT "Copying Python DLL to LLDB binaries directory.")
+ endif ()
endif ()
OpenPOWER on IntegriCloud