|
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