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)