mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-27 07:31:28 +00:00
[lldb/CMake] Only auto-enable Python when SWIG is found
As correctly pointed out by Martin on the mailing list, Python should only be auto-enabled if SWIG is found as well. This moves the logic of finding SWIG into FindPythonInterpAndLibs to make that possible. To make diagnosing easier I've included a status message to convey why Python support is disabled.
This commit is contained in:
parent
adee6454b7
commit
fc6f15d4d2
@ -4,40 +4,47 @@
|
||||
#
|
||||
# Find the python interpreter and libraries as a whole.
|
||||
|
||||
if(PYTHON_LIBRARIES AND PYTHON_INCLUDE_DIRS AND PYTHON_EXECUTABLE)
|
||||
if(PYTHON_LIBRARIES AND PYTHON_INCLUDE_DIRS AND PYTHON_EXECUTABLE AND SWIG_EXECUTABLE)
|
||||
set(PYTHONINTERPANDLIBS_FOUND TRUE)
|
||||
else()
|
||||
if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
|
||||
find_package(Python3 COMPONENTS Interpreter Development QUIET)
|
||||
if (Python3_FOUND AND Python3_Interpreter_FOUND)
|
||||
set(PYTHON_LIBRARIES ${Python3_LIBRARIES})
|
||||
set(PYTHON_INCLUDE_DIRS ${Python3_INCLUDE_DIRS})
|
||||
set(PYTHON_EXECUTABLE ${Python3_EXECUTABLE})
|
||||
mark_as_advanced(
|
||||
PYTHON_LIBRARIES
|
||||
PYTHON_INCLUDE_DIRS
|
||||
PYTHON_EXECUTABLE)
|
||||
endif()
|
||||
else()
|
||||
find_package(PythonInterp QUIET)
|
||||
find_package(PythonLibs QUIET)
|
||||
if(PYTHONINTERP_FOUND AND PYTHONLIBS_FOUND)
|
||||
if (NOT CMAKE_CROSSCOMPILING)
|
||||
string(REPLACE "." ";" pythonlibs_version_list ${PYTHONLIBS_VERSION_STRING})
|
||||
list(GET pythonlibs_version_list 0 pythonlibs_major)
|
||||
list(GET pythonlibs_version_list 1 pythonlibs_minor)
|
||||
find_package(SWIG 2.0 QUIET)
|
||||
if (SWIG_FOUND)
|
||||
if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
|
||||
find_package(Python3 COMPONENTS Interpreter Development QUIET)
|
||||
if (Python3_FOUND AND Python3_Interpreter_FOUND)
|
||||
set(PYTHON_LIBRARIES ${Python3_LIBRARIES})
|
||||
set(PYTHON_INCLUDE_DIRS ${Python3_INCLUDE_DIRS})
|
||||
set(PYTHON_EXECUTABLE ${Python3_EXECUTABLE})
|
||||
mark_as_advanced(
|
||||
PYTHON_LIBRARIES
|
||||
PYTHON_INCLUDE_DIRS
|
||||
PYTHON_EXECUTABLE
|
||||
SWIG_EXECUTABLE)
|
||||
endif()
|
||||
else()
|
||||
find_package(PythonInterp QUIET)
|
||||
find_package(PythonLibs QUIET)
|
||||
if(PYTHONINTERP_FOUND AND PYTHONLIBS_FOUND AND SWIG_FOUND)
|
||||
if (NOT CMAKE_CROSSCOMPILING)
|
||||
string(REPLACE "." ";" pythonlibs_version_list ${PYTHONLIBS_VERSION_STRING})
|
||||
list(GET pythonlibs_version_list 0 pythonlibs_major)
|
||||
list(GET pythonlibs_version_list 1 pythonlibs_minor)
|
||||
|
||||
# Ignore the patch version. Some versions of macOS report a different
|
||||
# patch version for the system provided interpreter and libraries.
|
||||
if (CMAKE_CROSSCOMPILING OR (PYTHON_VERSION_MAJOR VERSION_EQUAL pythonlibs_major AND
|
||||
PYTHON_VERSION_MINOR VERSION_EQUAL pythonlibs_minor))
|
||||
mark_as_advanced(
|
||||
PYTHON_LIBRARIES
|
||||
PYTHON_INCLUDE_DIRS
|
||||
PYTHON_EXECUTABLE)
|
||||
# Ignore the patch version. Some versions of macOS report a different
|
||||
# patch version for the system provided interpreter and libraries.
|
||||
if (CMAKE_CROSSCOMPILING OR (PYTHON_VERSION_MAJOR VERSION_EQUAL pythonlibs_major AND
|
||||
PYTHON_VERSION_MINOR VERSION_EQUAL pythonlibs_minor))
|
||||
mark_as_advanced(
|
||||
PYTHON_LIBRARIES
|
||||
PYTHON_INCLUDE_DIRS
|
||||
PYTHON_EXECUTABLE
|
||||
SWIG_EXECUTABLE)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
message(STATUS "SWIG 2 or later is required for Python support in LLDB but could not be found")
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
@ -47,5 +54,6 @@ else()
|
||||
REQUIRED_VARS
|
||||
PYTHON_LIBRARIES
|
||||
PYTHON_INCLUDE_DIRS
|
||||
PYTHON_EXECUTABLE)
|
||||
PYTHON_EXECUTABLE
|
||||
SWIG_EXECUTABLE)
|
||||
endif()
|
||||
|
@ -15,12 +15,6 @@ if(LLDB_BUILD_FRAMEWORK)
|
||||
set(framework_arg --framework --target-platform Darwin)
|
||||
endif()
|
||||
|
||||
find_package(SWIG REQUIRED)
|
||||
set(SWIG_MIN_VERSION "2.0.0")
|
||||
if (${SWIG_VERSION} VERSION_LESS ${SWIG_MIN_VERSION})
|
||||
message(FATAL_ERROR "LLDB requires swig ${SWIG_MIN_VERSION}, your version is ${SWIG_VERSION}.")
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
set(DARWIN_EXTRAS "-D__APPLE__")
|
||||
else()
|
||||
@ -38,7 +32,6 @@ set(SWIG_COMMON_FLAGS
|
||||
-outdir ${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
|
||||
|
||||
if (LLDB_ENABLE_PYTHON)
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/LLDBWrapPython.cpp
|
||||
|
Loading…
Reference in New Issue
Block a user