Skip to content

Commit

Permalink
Revert "Allow customized relative PYTHONHOME"
Browse files Browse the repository at this point in the history
This reverts commit 0bb9062 since it is causing failures on the Windows LLDB buildbot:

http://lab.llvm.org:8011/builders/lldb-x64-windows-ninja/builds/14048
  • Loading branch information
sstamenova committed Feb 21, 2020
1 parent a32d539 commit 215a311
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 41 deletions.
15 changes: 3 additions & 12 deletions lldb/cmake/modules/LLDBConfig.cmake
Expand Up @@ -59,6 +59,7 @@ add_optional_dependency(LLDB_ENABLE_LUA "Enable Lua scripting support in LLDB" L
add_optional_dependency(LLDB_ENABLE_PYTHON "Enable Python scripting support in LLDB" PythonInterpAndLibs PYTHONINTERPANDLIBS_FOUND)
add_optional_dependency(LLDB_ENABLE_LIBXML2 "Enable Libxml 2 support in LLDB" LibXml2 LIBXML2_FOUND VERSION 2.8)

option(LLDB_RELOCATABLE_PYTHON "Use the PYTHONHOME environment variable to locate Python." OFF)
option(LLDB_USE_SYSTEM_SIX "Use six.py shipped with system and do not install a copy of it" OFF)
option(LLDB_USE_ENTITLEMENTS "When codesigning, use entitlements if available" ON)
option(LLDB_BUILD_FRAMEWORK "Build LLDB.framework (Darwin only)" OFF)
Expand Down Expand Up @@ -139,20 +140,10 @@ if (LLDB_ENABLE_LIBEDIT)
endif()

if (LLDB_ENABLE_PYTHON)
if(CMAKE_SYSTEM_NAME MATCHES "Windows")
set(default_embed_python_home ON)
else()
set(default_embed_python_home OFF)
endif()
option(LLDB_EMBED_PYTHON_HOME
"Embed PYTHONHOME in the binary. If set to OFF, PYTHONHOME environment variable will be used to to locate Python."
${default_embed_python_home})

include_directories(${PYTHON_INCLUDE_DIRS})
if (LLDB_EMBED_PYTHON_HOME)
if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows" AND NOT LLDB_RELOCATABLE_PYTHON)
get_filename_component(PYTHON_HOME "${PYTHON_EXECUTABLE}" DIRECTORY)
set(LLDB_PYTHON_HOME "${PYTHON_HOME}" CACHE STRING
"Path to use as PYTHONHOME in lldb. If a relative path is specified, it will be resolved at runtime relative to liblldb directory.")
file(TO_CMAKE_PATH "${PYTHON_HOME}" LLDB_PYTHON_HOME)
endif()
endif()

Expand Down
2 changes: 0 additions & 2 deletions lldb/include/lldb/Host/Config.h.cmake
Expand Up @@ -46,8 +46,6 @@

#cmakedefine01 LLDB_ENABLE_PYTHON

#cmakedefine01 LLDB_EMBED_PYTHON_HOME

#cmakedefine LLDB_PYTHON_HOME "${LLDB_PYTHON_HOME}"

#define LLDB_LIBDIR_SUFFIX "${LLVM_LIBDIR_SUFFIX}"
Expand Down
Expand Up @@ -277,36 +277,14 @@ struct InitializePythonRAII {

private:
void InitializePythonHome() {
#if LLDB_EMBED_PYTHON_HOME
#if defined(LLDB_PYTHON_HOME)
#if PY_MAJOR_VERSION >= 3
typedef const wchar_t* str_type;
size_t size = 0;
static wchar_t *g_python_home = Py_DecodeLocale(LLDB_PYTHON_HOME, &size);
#else
typedef char* str_type;
static char g_python_home[] = LLDB_PYTHON_HOME;
#endif
static str_type g_python_home = []() -> str_type {
const char *lldb_python_home = LLDB_PYTHON_HOME;
const char *absolute_python_home = nullptr;
llvm::SmallString<64> path;
if (llvm::sys::path::is_absolute(lldb_python_home)) {
absolute_python_home = lldb_python_home;
} else {
FileSpec spec = HostInfo::GetShlibDir();
if (!spec)
return nullptr;
spec.GetPath(path);
llvm::sys::path::append(path, lldb_python_home);
absolute_python_home = path.c_str();
}
#if PY_MAJOR_VERSION >= 3
size_t size = 0;
return Py_DecodeLocale(absolute_python_home, &size);
#else
return strdup(absolute_python_home);
#endif
}();
if (g_python_home != nullptr) {
Py_SetPythonHome(g_python_home);
}
Py_SetPythonHome(g_python_home);
#else
#if defined(__APPLE__) && PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION == 7
// For Darwin, the only Python version supported is the one shipped in the
Expand Down

0 comments on commit 215a311

Please sign in to comment.