Czy CMake obsługuje Python3?
Nie jestem w stanie zbudować modułu opakowującego Pythona dla mojej biblioteki C za pomocą CMake i Swig dla Pythona3. Wszystko działa dobrze dla Python2.x, ale wygląda na to, że CMake nie może znaleźć Pythona3. Rozejrzałem się już i spróbowałem kilku rzeczy.
Na przykład mójpython
pliki wykonywalne do Pythona3, gdy czytam CMake, znajdziesz tę wersję w pierwszej kolejności.
Zobacz tutaj część SWIGCMakeLists.txt
:
FIND_PACKAGE(SWIG REQUIRED)
INCLUDE(${SWIG_USE_FILE})
FIND_PACKAGE(PythonInterp 3)
FIND_PACKAGE(PythonLibs 3)
FIND_PATH(PYTHON_INCLUDE_PATH Python.h
/usr/include
/usr/local/include)
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
SET(CMAKE_SWIG_FLAGS "")
SET_SOURCE_FILES_PROPERTIES(kissCT3.i PROPERTIES CPLUSPLUS ON)
#SET_SOURCE_FILES_PROPERTIES(kissCT3.i PROPERTIES SWIG_FLAGS "-includeall -py3")
SWIG_ADD_MODULE(kissCT3 python kissCT3.i)
SWIG_LINK_LIBRARIES(kissCT3 libct2d matio kissfft ${PYTHON_LIBRARIES})
Niestety wynik po wywołaniu cmake pokazuje, że znaleziono tylko python2.7:
-- Found SWIG: /usr/bin/swig2.0 (found version "2.0.4")
-- Found PythonInterp: /usr/bin/python2.7 (Required is at least version "3")
-- Found PythonLibs: /usr/lib/libpython2.7.so (Required is at least version "3")
-- Configuring done
-- Generating done