Non riesco a creare un modulo wrapper Python per la mia libreria C tramite CMake e Swig per Python3. Tutto funziona bene per Python2.x ma sembra che CMake non riesca a trovare Python3. Mi sono già guardato intorno e ho provato un paio di cose.CMake supporta Python3?
Ad esempio, i miei collegamenti eseguibili python
a Python3, come ho letto CMake troveranno prima questa versione.
prega di consultare qui la parte sorso di CMakeLists.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})
Purtroppo, l'uscita dopo aver chiamato CMake mostra che solo python2.7 si trova:
-- 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
Stavo per suggerire che si fanno la propria versione del modulo finder per Python che supporta python3 e mettere che nello stesso cartella come CMakelists.txt tuttavia sembra che cmake-2.8.11.X abbia il supporto diretto per python3. Hai qualche vecchia versione di cmake? – drescherjm
Sto usando cmake versione 2.8.5. Quindi, questo potrebbe essere il problema, lo esaminerò, grazie! – mijc