[Lldb-commits] [PATCH] D64881: [Cmake] Use the modern way to find Python when possible
Jonas Devlieghere via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Wed Jul 17 13:40:25 PDT 2019
JDevlieghere created this revision.
JDevlieghere added reviewers: sgraenitz, labath, xiaobai, amccarth, stella.stamenova, compnerd.
JDevlieghere added a project: LLDB.
Herald added subscribers: abidh, mgorny.
CMake has a much improved way to find the Python interpreter and libraries which guarantees that the interpreter and libraries are the same. However, this functionality is only available in CMake 3.12 and later. This patch changes the CMake logic to use that without bumping the minimum CMake version.
Question for people familiar with CMake on Windows: do you think that FindPython could replace the current logic in find_python_libs_windows? So we could do something like:
if(NOT CMAKE_VERSION VERSION_LESS "3.12")
# Use FindPython
else()
if (Windows)
# use find_python_libs_windows
else()
# use PythonInterp / PythonLibs
endif()
endif()
Repository:
rLLDB LLDB
https://reviews.llvm.org/D64881
Files:
lldb/cmake/modules/LLDBConfig.cmake
Index: lldb/cmake/modules/LLDBConfig.cmake
===================================================================
--- lldb/cmake/modules/LLDBConfig.cmake
+++ lldb/cmake/modules/LLDBConfig.cmake
@@ -185,6 +185,28 @@
message(STATUS "LLDB Found PythonIncludeDirs: ${PYTHON_INCLUDE_DIR}")
endfunction(find_python_libs_windows)
+function(find_python_libs)
+ if(NOT CMAKE_VERSION VERSION_LESS "3.12")
+ find_package(Python COMPONENTS Interpreter Development)
+ if(Python_FOUND)
+ set(PYTHON_EXECUTABLE ${Python_EXECUTABLE})
+ set(PYTHON_LIBRARY ${Python_LIBRARIES})
+ set(PYTHON_INCLUDE_DIR ${Python_INCLUDE_DIRS})
+ set(PYTHON_VERSION_STRING ${Python_VERSION})
+ set(PYTHONLIBS_VERSION_STRING ${Python_VERSION})
+
+ set(PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE} PARENT_SCOPE)
+ set(PYTHON_LIBRARY ${PYTHON_LIBRARY} PARENT_SCOPE)
+ set(PYTHON_INCLUDE_DIR ${PYTHON_INCLUDE_DIR} PARENT_SCOPE)
+ set(PYTHON_VERSION_STRING ${PYTHON_VERSION_STRING} PARENT_SCOPE)
+ set(PYTHONLIBS_VERSION_STRING ${PYTHONLIBS_VERSION_STRING} PARENT_SCOPE)
+ endif()
+ else()
+ find_package(PythonInterp REQUIRED)
+ find_package(PythonLibs REQUIRED)
+ endif()
+endfunction(find_python_libs)
+
if (NOT LLDB_DISABLE_PYTHON)
if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
find_python_libs_windows()
@@ -194,8 +216,7 @@
add_definitions( -DLLDB_PYTHON_HOME="${LLDB_PYTHON_HOME}" )
endif()
else()
- find_package(PythonInterp REQUIRED)
- find_package(PythonLibs REQUIRED)
+ find_python_libs()
endif()
if (NOT PYTHON_VERSION_STRING VERSION_EQUAL PYTHONLIBS_VERSION_STRING AND
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D64881.210402.patch
Type: text/x-patch
Size: 1717 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20190717/35ccad1c/attachment.bin>
More information about the lldb-commits
mailing list