diff --git a/cmake/python.cmake b/cmake/python.cmake index 018fd332a..a5bef070e 100644 --- a/cmake/python.cmake +++ b/cmake/python.cmake @@ -16,6 +16,8 @@ foreach (i 3.6 3.5 3.4 3.3 3.2 3.1 3.0) break() endif() endforeach() +else() +set (Python_ADDITIONAL_VERSIONS 3.6 3.5 3.4 3.3 3.2 3.1 3.0 2.8 2.6 2.5) endif() find_package(PythonInterp) diff --git a/packages/python/CMakeLists.txt b/packages/python/CMakeLists.txt index c098363a2..a87d919be 100644 --- a/packages/python/CMakeLists.txt +++ b/packages/python/CMakeLists.txt @@ -8,14 +8,12 @@ include(FindPythonModule) set (PYTHON_SOURCES python.c pl2py.c pybips.c py2pl.c pl2pl.c pypreds.c ) -add_library (libpython SHARED ${PYTHON_SOURCES}) +add_library (YAPPython SHARED ${PYTHON_SOURCES}) set (PYTHON_HEADERS python.h) -configure_file ("setup.py.cmake" "setup.py" ) - - target_link_libraries(libpython libYap ${PYTHON_LIBRARIES}) + target_link_libraries(YAPPython libYap ${PYTHON_LIBRARIES}) set(SETUP_PY "${CMAKE_CURRENT_BINARY_DIR}/setup.py") @@ -23,11 +21,11 @@ add_custom_target ( YAPex ALL COMMAND ${PYTHON_EXECUTABLE} setup.py build -f DEPENDS yapex.py ) - set_target_properties (libpython PROPERTIES PREFIX "") +# set_target_properties (YAPPython PROPERTIES PREFIX "") include_directories (${PYTHON_INCLUDE_DIRS}) - install(TARGETS libpython + install(TARGETS YAPPython LIBRARY DESTINATION ${dlls} ARCHIVE DESTINATION ${dlls} ) @@ -36,6 +34,8 @@ add_custom_target ( YAPex ALL DESTINATION ${libpl} ) +configure_file ("setup.py.cmake" "setup.py" ) + install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} ${SETUP_PY} install -f WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})") diff --git a/packages/python/python.pl b/packages/python/python.pl index ef032a7dc..2c5fadef4 100644 --- a/packages/python/python.pl +++ b/packages/python/python.pl @@ -429,4 +429,4 @@ python_assign_field(C1.E, Obj) :- python_eval_term(C1, O1), python_assign_field(O1, E, Obj ). -:- initialization( use_foreign_library(foreign(libpython), init_python), now ). +:- initialization( use_foreign_library(foreign(libpYAPPython), init_python), now ). diff --git a/packages/swig/python/CMakeLists.txt b/packages/swig/python/CMakeLists.txt index 202d1abc2..51ca9dbdf 100644 --- a/packages/swig/python/CMakeLists.txt +++ b/packages/swig/python/CMakeLists.txt @@ -16,6 +16,7 @@ if (PYTHONLIBS_FOUND) SET_SOURCE_FILES_PROPERTIES(../yap.i PROPERTIES CPLUSPLUS ON) SET_SOURCE_FILES_PROPERTIES(../yap.i PROPERTIES SWIG_FLAGS "-includeall") + SET_SOURCE_FILES_PROPERTIES(../yap.i PROPERTY SWIG_MODULE_NAME libPy2YAP ) configure_file ("setup.py.cmake" "setup.py" ) @@ -23,9 +24,11 @@ if (PYTHONLIBS_FOUND) #SET( CMAKE_SWIG_OUTDIR "yap" ) - SWIG_ADD_MODULE(yap python ../yap.i) - SWIG_LINK_LIBRARIES(yap ${PYTHON_LIBRARIES} Yap++ libYap libpython) - set_target_properties ( ${SWIG_MODULE_yap_REAL_NAME} PROPERTIES NO_SONAME ON ) + SWIG_ADD_MODULE(Py2YAP python ../yap.i ) + SWIG_LINK_LIBRARIES(Py2YAP ${PYTHON_LIBRARIES} Yap++ libYap YAPPython) + set_target_properties ( ${SWIG_MODULE_Py2YAP_REAL_NAME} PROPERTIES + NO_SONAME ON ) + # execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "from distutils import sysconfig; print( sysconfig.get_python_lib( plat_specific=True, prefix='${CMAKE_INSTALL_PREFIX}' ) )" # OUTPUT_VARIABLE _ABS_PYTHON_MODULE_PATH @@ -41,7 +44,7 @@ if (PYTHONLIBS_FOUND) add_custom_target ( py2yap ALL COMMAND ${PYTHON_EXECUTABLE} setup.py bdist - DEPENDS yap.py ) + DEPENDS yap.py ${SWIG_MODULE_Py2YAP_REAL_NAME} ) install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} ${SETUP_PY} install @@ -77,6 +80,11 @@ if (PYTHONLIBS_FOUND) endif () + install(TARGETS ${SWIG_MODULE_Py2YAP_REAL_NAME} + LIBRARY DESTINATION ${dlls} + ARCHIVE DESTINATION ${dlls} + ) + # add_subdirectory ( examples ) else () message(STATUS "Not building python bindings") diff --git a/packages/swig/python/setup.py.cmake b/packages/swig/python/setup.py.cmake index ae9785268..4c3f9480b 100644 --- a/packages/swig/python/setup.py.cmake +++ b/packages/swig/python/setup.py.cmake @@ -3,27 +3,23 @@ from distutils.core import setup, Extension setup( name = "yap", version = "0.1", - ext_modules=[Extension('_yap', [ 'yapPYTHON_wrap.cxx', - '${CMAKE_SOURCE_DIR}/packages/python/pl2py.c', - '${CMAKE_SOURCE_DIR}/packages/python/python.c', - '${CMAKE_SOURCE_DIR}/packages/python/py2pl.c', - '${CMAKE_SOURCE_DIR}/packages/python/pl2pl.c', - '${CMAKE_SOURCE_DIR}/packages/python/pypreds.c', - '${CMAKE_SOURCE_DIR}/packages/python/pybips.c'], + ext_modules=[Extension('_yap', ['${CMAKE_SOURCE_DIR}/packages/swig/python/_yap.c'], define_macros = [('MAJOR_VERSION', '1'), ('MINOR_VERSION', '0'), ('_YAP_NOT_INSTALLED_', '1')], - swig_opts=['-py3', '-c++','-I${CMAKE_SOURCE_DIR}/CXX'], - runtime_library_dirs=['/usr/local/lib'], - library_dirs=['../../..','../../../CXX'], - libraries=['Yap++','Yap'], + runtime_library_dirs=['${dlls}'], + library_dirs=['../../..','../../../CXX', + '../../python', + '.'], + libraries=['Yap++','Yap','YAPPython'], include_dirs=['../../..', '${CMAKE_SOURCE_DIR}/H', '${CMAKE_SOURCE_DIR}/H/generated', '${CMAKE_SOURCE_DIR}/OPTYap', '${CMAKE_SOURCE_DIR}/os', '${CMAKE_SOURCE_DIR}/include', - '${CMAKE_SOURCE_DIR}/CXX', '.'] + '${CMAKE_SOURCE_DIR}/CXX', '.'], + extra_objects = ['${CMAKE_CURRENT_BINARY_DIR}/_Py2YAP${CMAKE_SHARED_MODULE_SUFFIX}' ] )], py_modules = ['yap'] )