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
|
SET (PythonInterp_FIND_VERSION 2)
SET (PythonInterp_FIND_VERSION_MAJOR 2)
MESSAGE ("-- Looking for Python2 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 PYTHON2_INSTALL_DIR)
IF (${PYTHON_VERSION_MAJOR} EQUAL 2)
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 (PYTHON2_EXECUTABLE ${PYTHON_EXECUTABLE})
SET (PYTHON2_INCLUDE_PATH ${PYTHON_INCLUDE_PATH})
MESSAGE (STATUS "Python2 executable: ${PYTHON2_EXECUTABLE}")
MESSAGE (STATUS "Python2 installation dir: ${PYTHON2_INSTALL_DIR}")
ADD_CUSTOM_COMMAND (
OUTPUT solv_python.c
COMMAND ${SWIG_EXECUTABLE} ${SWIG_FLAGS} -python -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 (${PYTHON_INCLUDE_PATH})
ADD_LIBRARY (bindings_python2 SHARED solv_python.c)
SET_TARGET_PROPERTIES (bindings_python2 PROPERTIES PREFIX "" OUTPUT_NAME "_solv")
TARGET_LINK_LIBRARIES (bindings_python2 libsolvext libsolv ${SYSTEM_LIBRARIES})
INSTALL (TARGETS bindings_python2 LIBRARY DESTINATION ${PYTHON2_INSTALL_DIR})
INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/solv.py DESTINATION ${PYTHON2_INSTALL_DIR})
ELSE (${PYTHON_VERSION_MAJOR} EQUAL 2)
MESSAGE ("-- Skipping Python2 bindings, no Python2 interpreter found.")
ENDIF (${PYTHON_VERSION_MAJOR} EQUAL 2)
|