|
4 | 4 | #
|
5 | 5 | # Find the python interpreter and libraries as a whole.
|
6 | 6 |
|
7 |
| -if(PYTHON_LIBRARIES AND PYTHON_INCLUDE_DIRS AND PYTHON_EXECUTABLE) |
| 7 | +if(PYTHON_LIBRARIES AND PYTHON_INCLUDE_DIRS AND PYTHON_EXECUTABLE AND SWIG_EXECUTABLE) |
8 | 8 | set(PYTHONINTERPANDLIBS_FOUND TRUE)
|
9 | 9 | else()
|
10 |
| - if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows") |
11 |
| - find_package(Python3 COMPONENTS Interpreter Development QUIET) |
12 |
| - if (Python3_FOUND AND Python3_Interpreter_FOUND) |
13 |
| - set(PYTHON_LIBRARIES ${Python3_LIBRARIES}) |
14 |
| - set(PYTHON_INCLUDE_DIRS ${Python3_INCLUDE_DIRS}) |
15 |
| - set(PYTHON_EXECUTABLE ${Python3_EXECUTABLE}) |
16 |
| - mark_as_advanced( |
17 |
| - PYTHON_LIBRARIES |
18 |
| - PYTHON_INCLUDE_DIRS |
19 |
| - PYTHON_EXECUTABLE) |
20 |
| - endif() |
21 |
| - else() |
22 |
| - find_package(PythonInterp QUIET) |
23 |
| - find_package(PythonLibs QUIET) |
24 |
| - if(PYTHONINTERP_FOUND AND PYTHONLIBS_FOUND) |
25 |
| - if (NOT CMAKE_CROSSCOMPILING) |
26 |
| - string(REPLACE "." ";" pythonlibs_version_list ${PYTHONLIBS_VERSION_STRING}) |
27 |
| - list(GET pythonlibs_version_list 0 pythonlibs_major) |
28 |
| - list(GET pythonlibs_version_list 1 pythonlibs_minor) |
| 10 | + find_package(SWIG 2.0 QUIET) |
| 11 | + if (SWIG_FOUND) |
| 12 | + if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows") |
| 13 | + find_package(Python3 COMPONENTS Interpreter Development QUIET) |
| 14 | + if (Python3_FOUND AND Python3_Interpreter_FOUND) |
| 15 | + set(PYTHON_LIBRARIES ${Python3_LIBRARIES}) |
| 16 | + set(PYTHON_INCLUDE_DIRS ${Python3_INCLUDE_DIRS}) |
| 17 | + set(PYTHON_EXECUTABLE ${Python3_EXECUTABLE}) |
| 18 | + mark_as_advanced( |
| 19 | + PYTHON_LIBRARIES |
| 20 | + PYTHON_INCLUDE_DIRS |
| 21 | + PYTHON_EXECUTABLE |
| 22 | + SWIG_EXECUTABLE) |
| 23 | + endif() |
| 24 | + else() |
| 25 | + find_package(PythonInterp QUIET) |
| 26 | + find_package(PythonLibs QUIET) |
| 27 | + if(PYTHONINTERP_FOUND AND PYTHONLIBS_FOUND AND SWIG_FOUND) |
| 28 | + if (NOT CMAKE_CROSSCOMPILING) |
| 29 | + string(REPLACE "." ";" pythonlibs_version_list ${PYTHONLIBS_VERSION_STRING}) |
| 30 | + list(GET pythonlibs_version_list 0 pythonlibs_major) |
| 31 | + list(GET pythonlibs_version_list 1 pythonlibs_minor) |
29 | 32 |
|
30 |
| - # Ignore the patch version. Some versions of macOS report a different |
31 |
| - # patch version for the system provided interpreter and libraries. |
32 |
| - if (CMAKE_CROSSCOMPILING OR (PYTHON_VERSION_MAJOR VERSION_EQUAL pythonlibs_major AND |
33 |
| - PYTHON_VERSION_MINOR VERSION_EQUAL pythonlibs_minor)) |
34 |
| - mark_as_advanced( |
35 |
| - PYTHON_LIBRARIES |
36 |
| - PYTHON_INCLUDE_DIRS |
37 |
| - PYTHON_EXECUTABLE) |
| 33 | + # Ignore the patch version. Some versions of macOS report a different |
| 34 | + # patch version for the system provided interpreter and libraries. |
| 35 | + if (CMAKE_CROSSCOMPILING OR (PYTHON_VERSION_MAJOR VERSION_EQUAL pythonlibs_major AND |
| 36 | + PYTHON_VERSION_MINOR VERSION_EQUAL pythonlibs_minor)) |
| 37 | + mark_as_advanced( |
| 38 | + PYTHON_LIBRARIES |
| 39 | + PYTHON_INCLUDE_DIRS |
| 40 | + PYTHON_EXECUTABLE |
| 41 | + SWIG_EXECUTABLE) |
| 42 | + endif() |
38 | 43 | endif()
|
39 | 44 | endif()
|
40 | 45 | endif()
|
| 46 | + else() |
| 47 | + message(STATUS "SWIG 2 or later is required for Python support in LLDB but could not be found") |
41 | 48 | endif()
|
42 | 49 |
|
43 | 50 | include(FindPackageHandleStandardArgs)
|
|
47 | 54 | REQUIRED_VARS
|
48 | 55 | PYTHON_LIBRARIES
|
49 | 56 | PYTHON_INCLUDE_DIRS
|
50 |
| - PYTHON_EXECUTABLE) |
| 57 | + PYTHON_EXECUTABLE |
| 58 | + SWIG_EXECUTABLE) |
51 | 59 | endif()
|
0 commit comments