1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
SET (PythonInterp_FIND_VERSION 3)
SET (PythonInterp_FIND_VERSION_MAJOR 3)
MESSAGE ("-- Looking for Python3 build dependencies...")
UNSET (PYTHON_EXECUTABLE CACHE)
FIND_PACKAGE (PythonInterp REQUIRED)
EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib(True))" OUTPUT_VARIABLE PYTHON3_INSTALL_DIR)
IF (${PYTHON_VERSION_MAJOR} EQUAL 3)
UNSET (PYTHON_LIBRARY CACHE)
UNSET (PYTHON_DEBUG_LIBRARY CACHE)
UNSET (PYTHON_LIBRARIES CACHE)
UNSET (PYTHON_DEBUG_LIBRARIES CACHE)
UNSET (PYTHON_INCLUDE_DIR CACHE)
UNSET (PYTHON_INCLUDE_DIRS CACHE)
UNSET (PYTHON_INCLUDE_PATH CACHE)
SET (PythonLibs_FIND_VERSION ${PYTHON_VERSION_STRING})
SET (PythonLibs_FIND_VERSION_COUNT 3)
SET (PythonLibs_FIND_VERSION_MAJOR ${PYTHON_VERSION_MAJOR})
SET (PythonLibs_FIND_VERSION_MINOR ${PYTHON_VERSION_MINOR})
SET (PythonLibs_FIND_VERSION_EXACT TRUE)
FIND_PACKAGE (PythonLibs REQUIRED)
SET (PYTHON3_EXECUTABLE ${PYTHON_EXECUTABLE})
SET (PYTHON3_INCLUDE_PATH ${PYTHON_INCLUDE_PATH})
SET (SWIG_PY_FLAGS -DPYTHON3=1)
MESSAGE (STATUS "Python3 executable: ${PYTHON3_EXECUTABLE}")
MESSAGE (STATUS "Python3 installation dir: ${PYTHON3_INSTALL_DIR}")
ADD_CUSTOM_COMMAND (
OUTPUT solv_python.c
COMMAND ${SWIG_EXECUTABLE} ${SWIG_FLAGS} -python ${SWIG_PY_FLAGS} -I${CMAKE_SOURCE_DIR}/src -o solv_python.c ${CMAKE_SOURCE_DIR}/bindings/solv.i
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
DEPENDS ${CMAKE_SOURCE_DIR}/bindings/solv.i
)
ADD_DEFINITIONS(-Wno-unused)
INCLUDE_DIRECTORIES (${PYTHON3_INCLUDE_PATH})
ADD_LIBRARY (bindings_python3 SHARED solv_python.c)
SET_TARGET_PROPERTIES (bindings_python3 PROPERTIES PREFIX "" OUTPUT_NAME "_solv")
TARGET_LINK_LIBRARIES (bindings_python3 libsolvext libsolv ${SYSTEM_LIBRARIES})
INSTALL (TARGETS bindings_python3 LIBRARY DESTINATION ${PYTHON3_INSTALL_DIR})
INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/solv.py DESTINATION ${PYTHON3_INSTALL_DIR})
ELSE (${PYTHON_VERSION_MAJOR} EQUAL 3)
MESSAGE ("-- Skipping Python3 bindings, no Python3 interpreter found.")
ENDIF (${PYTHON_VERSION_MAJOR} EQUAL 3)
|