forked from OSchip/llvm-project
[Cmake] Unify python variables
FindPythonInterp and FindPythonLibs do two things, they set some variables (PYTHON_LIBRARIES, PYTHON_INCLUDE_DIRS) and update the cached variables (PYTHON_LIBRARY, PYTHON_INCLUDE_DIR) which are also used to specify a custom python installation. I believe the canonical way to do this is to use the PYTHON_LIBRARIES and PYTHON_INCLUDE_DIRS variables instead of the cached ones. However, since the cached variables are accessible from the cache and GUI, this is a lot less confusing when you're trying to debug why a variable did or didn't get the value you expected. Furthermore, as far as I can tell, the implementation uses the cached variables to set their LIBRARIES/DIRS counterparts. This is also the reason this works today even though we mix-and-match. Differential revision: https://reviews.llvm.org/D59968 llvm-svn: 357282
This commit is contained in:
parent
b4b98a528b
commit
ae1cc995e3
|
@ -135,10 +135,10 @@ function(find_python_libs_windows)
|
||||||
return()
|
return()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
file(TO_CMAKE_PATH "${PYTHON_HOME}/Include" PYTHON_INCLUDE_DIRS)
|
file(TO_CMAKE_PATH "${PYTHON_HOME}/Include" PYTHON_INCLUDE_DIR)
|
||||||
|
|
||||||
if(EXISTS "${PYTHON_INCLUDE_DIRS}/patchlevel.h")
|
if(EXISTS "${PYTHON_INCLUDE_DIR}/patchlevel.h")
|
||||||
file(STRINGS "${PYTHON_INCLUDE_DIRS}/patchlevel.h" python_version_str
|
file(STRINGS "${PYTHON_INCLUDE_DIR}/patchlevel.h" python_version_str
|
||||||
REGEX "^#define[ \t]+PY_VERSION[ \t]+\"[^\"]+\"")
|
REGEX "^#define[ \t]+PY_VERSION[ \t]+\"[^\"]+\"")
|
||||||
string(REGEX REPLACE "^#define[ \t]+PY_VERSION[ \t]+\"([^\"+]+)[+]?\".*" "\\1"
|
string(REGEX REPLACE "^#define[ \t]+PY_VERSION[ \t]+\"([^\"+]+)[+]?\".*" "\\1"
|
||||||
PYTHONLIBS_VERSION_STRING "${python_version_str}")
|
PYTHONLIBS_VERSION_STRING "${python_version_str}")
|
||||||
|
@ -146,7 +146,7 @@ function(find_python_libs_windows)
|
||||||
string(REGEX REPLACE "([0-9]+)[.]([0-9]+)[.][0-9]+" "python\\1\\2" PYTHONLIBS_BASE_NAME "${PYTHONLIBS_VERSION_STRING}")
|
string(REGEX REPLACE "([0-9]+)[.]([0-9]+)[.][0-9]+" "python\\1\\2" PYTHONLIBS_BASE_NAME "${PYTHONLIBS_VERSION_STRING}")
|
||||||
unset(python_version_str)
|
unset(python_version_str)
|
||||||
else()
|
else()
|
||||||
message("Unable to find ${PYTHON_INCLUDE_DIRS}/patchlevel.h, Python installation is corrupt.")
|
message("Unable to find ${PYTHON_INCLUDE_DIR}/patchlevel.h, Python installation is corrupt.")
|
||||||
message("Python support will be disabled for this build.")
|
message("Python support will be disabled for this build.")
|
||||||
set(LLDB_DISABLE_PYTHON 1 PARENT_SCOPE)
|
set(LLDB_DISABLE_PYTHON 1 PARENT_SCOPE)
|
||||||
return()
|
return()
|
||||||
|
@ -225,12 +225,12 @@ function(find_python_libs_windows)
|
||||||
set (PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE} PARENT_SCOPE)
|
set (PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE} PARENT_SCOPE)
|
||||||
set (PYTHON_LIBRARY ${PYTHON_LIBRARY} PARENT_SCOPE)
|
set (PYTHON_LIBRARY ${PYTHON_LIBRARY} PARENT_SCOPE)
|
||||||
set (PYTHON_DLL ${PYTHON_DLL} PARENT_SCOPE)
|
set (PYTHON_DLL ${PYTHON_DLL} PARENT_SCOPE)
|
||||||
set (PYTHON_INCLUDE_DIRS ${PYTHON_INCLUDE_DIRS} PARENT_SCOPE)
|
set (PYTHON_INCLUDE_DIR ${PYTHON_INCLUDE_DIR} PARENT_SCOPE)
|
||||||
|
|
||||||
message("-- LLDB Found PythonExecutable: ${PYTHON_RELEASE_EXE} and ${PYTHON_DEBUG_EXE}")
|
message("-- LLDB Found PythonExecutable: ${PYTHON_RELEASE_EXE} and ${PYTHON_DEBUG_EXE}")
|
||||||
message("-- LLDB Found PythonLibs: ${PYTHON_RELEASE_LIB} and ${PYTHON_DEBUG_LIB}")
|
message("-- LLDB Found PythonLibs: ${PYTHON_RELEASE_LIB} and ${PYTHON_DEBUG_LIB}")
|
||||||
message("-- LLDB Found PythonDLL: ${PYTHON_RELEASE_DLL} and ${PYTHON_DEBUG_DLL}")
|
message("-- LLDB Found PythonDLL: ${PYTHON_RELEASE_DLL} and ${PYTHON_DEBUG_DLL}")
|
||||||
message("-- LLDB Found PythonIncludeDirs: ${PYTHON_INCLUDE_DIRS}")
|
message("-- LLDB Found PythonIncludeDirs: ${PYTHON_INCLUDE_DIR}")
|
||||||
endfunction(find_python_libs_windows)
|
endfunction(find_python_libs_windows)
|
||||||
|
|
||||||
if (NOT LLDB_DISABLE_PYTHON)
|
if (NOT LLDB_DISABLE_PYTHON)
|
||||||
|
@ -243,17 +243,19 @@ if (NOT LLDB_DISABLE_PYTHON)
|
||||||
add_definitions( -DLLDB_PYTHON_HOME="${LLDB_PYTHON_HOME}" )
|
add_definitions( -DLLDB_PYTHON_HOME="${LLDB_PYTHON_HOME}" )
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
find_package(PythonLibs REQUIRED)
|
find_package(PythonInterp)
|
||||||
|
find_package(PythonLibs)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (PYTHON_INCLUDE_DIRS)
|
if (PYTHON_INCLUDE_DIR)
|
||||||
include_directories(${PYTHON_INCLUDE_DIRS})
|
include_directories(${PYTHON_INCLUDE_DIR})
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (LLDB_DISABLE_PYTHON)
|
if (LLDB_DISABLE_PYTHON)
|
||||||
unset(PYTHON_INCLUDE_DIRS)
|
unset(PYTHON_INCLUDE_DIR)
|
||||||
unset(PYTHON_LIBRARY)
|
unset(PYTHON_LIBRARY)
|
||||||
|
unset(PYTHON_EXECUTABLE)
|
||||||
add_definitions( -DLLDB_DISABLE_PYTHON )
|
add_definitions( -DLLDB_DISABLE_PYTHON )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
|
@ -9,8 +9,6 @@ set(SWIG_HEADERS
|
||||||
${LLDB_SOURCE_DIR}/include/lldb/lldb-versioning.h
|
${LLDB_SOURCE_DIR}/include/lldb/lldb-versioning.h
|
||||||
)
|
)
|
||||||
|
|
||||||
include(FindPythonInterp)
|
|
||||||
|
|
||||||
if(LLDB_BUILD_FRAMEWORK)
|
if(LLDB_BUILD_FRAMEWORK)
|
||||||
set(framework_arg --framework --target-platform Darwin)
|
set(framework_arg --framework --target-platform Darwin)
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -27,7 +27,7 @@ if(Backtrace_FOUND)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT LLDB_DISABLE_PYTHON AND NOT LLVM_BUILD_STATIC)
|
if (NOT LLDB_DISABLE_PYTHON AND NOT LLVM_BUILD_STATIC)
|
||||||
list(APPEND LLDB_SYSTEM_LIBS ${PYTHON_LIBRARIES})
|
list(APPEND LLDB_SYSTEM_LIBS ${PYTHON_LIBRARY})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
list(APPEND LLDB_SYSTEM_LIBS ${system_libs})
|
list(APPEND LLDB_SYSTEM_LIBS ${system_libs})
|
||||||
|
|
Loading…
Reference in New Issue