anaconda
This commit is contained in:
@@ -5,8 +5,9 @@ set (PYTHON_SOURCES python.c pl2py.c pybips.c py2pl.c pl2pl.c pypreds.c)
|
||||
|
||||
set (CMAKE_POSITION_INDEPENDENT_CODE TRUE)
|
||||
|
||||
message( ${GMP_INCLUDE_DIRS} )
|
||||
include_directories( ${CMAKE_BINARY_DIR}
|
||||
${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/os )
|
||||
${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/os ${GMP_INCLUDE_DIRS} )
|
||||
|
||||
#talk to python.pl
|
||||
add_lib(YAPPython pyload.c ${PYTHON_HEADERS} )
|
||||
@@ -18,8 +19,13 @@ add_library (Py4YAP OBJECT ${PYTHON_SOURCES} ${PYTHON_HEADERS})
|
||||
|
||||
|
||||
else()
|
||||
add_lib(Py4YAP ${PYTHON_SOURCES} ${PYTHON_HEADERS})
|
||||
add_corelib(Py4YAP ${PYTHON_SOURCES} ${PYTHON_HEADERS})
|
||||
|
||||
MY_set_target_properties(
|
||||
Py4YAP
|
||||
PROPERTIES VERSION ${YAP_FULL_VERSION}
|
||||
SOVERSION ${YAP_MAJOR_VERSION}.${YAP_MINOR_VERSION}
|
||||
)
|
||||
|
||||
target_link_libraries(Py4YAP libYap ${PYTHON_LIBRARIES})
|
||||
|
||||
@@ -40,7 +46,7 @@ set (PYTHON_PL python.pl)
|
||||
|
||||
install(FILES python.pl DESTINATION ${libpl} )
|
||||
|
||||
add_to_group( pl_library PYTHON_PL )
|
||||
add_to_group( PYTHON_PL pl_library )
|
||||
|
||||
set_target_properties (YAPPython PROPERTIES PREFIX "")
|
||||
|
||||
@@ -48,4 +54,3 @@ set_target_properties (YAPPython PROPERTIES PREFIX "")
|
||||
LIBRARY DESTINATION ${dlls}
|
||||
RUNTIME DESTINATION ${dlls}
|
||||
ARCHIVE DESTINATION ${dlls} )
|
||||
|
||||
|
@@ -8,19 +8,23 @@ include(FindPythonModule)
|
||||
list (APPEND pl_library ${CMAKE_CURRENT_SOURCE_DIR}/prolog/jupyter.yap ${CMAKE_CURRENT_SOURCE_DIR}/prolog/yapi.yap )
|
||||
set (PYTHON_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/yap4py/yapi.py ${CMAKE_CURRENT_SOURCE_DIR}/yap4py/__init__.py ${CMAKE_CURRENT_SOURCE_DIR}/yap4py/__main__.py)
|
||||
|
||||
SET_SOURCE_FILES_PROPERTIES(../../swig/yap.i PROPERTIES CPLUSPLUS ON)
|
||||
SET_SOURCE_FILES_PROPERTIES(../../swig/yap.i PROPERTIES SWIG_FLAGS "-O;-py3")
|
||||
SET_SOURCE_FILES_PROPERTIES(../../swiyap.i PROPERTIES SWIG_MODULE_NAME yap)
|
||||
#SET_SOURCE_FILES_PROPERTIES(../../swi/yap.i PROPERTIES OUTPUT_NAME yap)
|
||||
|
||||
|
||||
|
||||
configure_file("setup.py.in" ${CMAKE_CURRENT_BINARY_DIR}/setup.py)
|
||||
configure_file("MANIFEST.in" ${CMAKE_CURRENT_BINARY_DIR}/MANIFEST.in)
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/YAP4PY.md" ${CMAKE_CURRENT_BINARY_DIR}/README)
|
||||
|
||||
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})
|
||||
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH} ${CMAKE_CURRENT_BINARY_DIR}/yap4py/include
|
||||
|
||||
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/yap4py/include")
|
||||
DEPENDS ${SWIG_SOURCES} YAP++
|
||||
)
|
||||
|
||||
SET_SOURCE_FILES_PROPERTIES(../../swig/yap.i PROPERTIES CPLUSPLUS ON)
|
||||
SET_SOURCE_FILES_PROPERTIES(../../swig/yap.i PROPERTIES SWIG_FLAGS "-O;-py3")
|
||||
SET_SOURCE_FILES_PROPERTIES(../../swiyap.i PROPERTIES SWIG_MODULE_NAME yap)
|
||||
#SET_SOURCE_FILES_PROPERTIES(../../swi/yap.i PROPERTIES OUTPUT_NAME yap)
|
||||
|
||||
|
||||
SWIG_ADD_LIBRARY(Py2YAP LANGUAGE python SHARED SOURCES ../../swig/yap.i )
|
||||
if (WIN32)
|
||||
@@ -31,14 +35,21 @@ else()
|
||||
set_target_properties ( ${SWIG_MODULE_Py2YAP_REAL_NAME}
|
||||
PROPERTIES
|
||||
NO_SONAME ON
|
||||
OUTPUT_NAME yapc
|
||||
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
||||
DEPENDS YAPPython YAPPython YAP++
|
||||
OUTPUT_NAME yap
|
||||
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
DEPENDS YAPPython
|
||||
|
||||
)
|
||||
# inform we are compiling YAP
|
||||
|
||||
|
||||
SET(SWIG_SOURCES
|
||||
${CMAKE_SOURCE_DIR}/packages/swig/yap.i
|
||||
)
|
||||
|
||||
# inform we are compiling YAP
|
||||
# s used in MSYS
|
||||
#
|
||||
#
|
||||
|
||||
|
||||
# INSTALL ( TARGETS ${SWIG_MODULE_Py2YAP_REAL_NAME}
|
||||
# RUNTIME DESTINATION ${PYTHON_MODULE_PATH}
|
||||
# ARCHIVE DESTINATION ${PYTHON_MODULE_PATH}
|
||||
@@ -46,25 +57,63 @@ else()
|
||||
# )
|
||||
|
||||
|
||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/yap4y)
|
||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/yap4py)
|
||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/yap4py/include)
|
||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/yap4py/prolog)
|
||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/yap4py/prolog/os)
|
||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/yap4py/prolog/pl)
|
||||
|
||||
file(COPY ../../swig/yap.i DESTINATION .)
|
||||
file(COPY ${CMAKE_SOURCE_DIR}/CXX/yapi.cpp DESTINATION .)
|
||||
file(COPY ${pl_library} DESTINATION yap4py/prolog)
|
||||
file(COPY ${pl_os_library} DESTINATION yap4py/prolog/os)
|
||||
file(COPY ${c_headers} DESTINATION yap4py/include)
|
||||
file(COPY ${cxx_headers} DESTINATION yap4py/include)
|
||||
add_custom_command( OUTPUT yap.i
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/packages/swig/yap.i .
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
DEPENDS ${CMAKE_SOURCE_DIR}/packages/swig/yap.i )
|
||||
|
||||
add_custom_command( OUTPUT yapi.cpp
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/CXX/yapi.cpp .
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
DEPENDS ${CMAKE_SOURCE_DIR}/CXX/yapi.cpp )
|
||||
|
||||
add_custom_command( OUTPUT yap4py/prolog/lists.yap
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${pl_library} yap4py/prolog
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
DEPENDS ${pl_library} )
|
||||
|
||||
add_custom_command( OUTPUT yap4py/prolog/os/yio.yap
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${pl_os_library} yap4py/prolog/os
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
DEPENDS ${pl_os_library} )
|
||||
|
||||
add_custom_command( OUTPUT yap4py/prolog/pl/boot.yap
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${pl_boot_library} yap4py/prolog/pl
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
DEPENDS ${pl_boot_library} )
|
||||
|
||||
add_custom_command( OUTPUT yap4py/include/YapInterface.h
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${c_headers} yap4py/include
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
DEPENDS ${c_headers} )
|
||||
|
||||
add_custom_command( OUTPUT yap4py/include/yapi.hh
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${cxx_headers} yap4py/include
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
DEPENDS ${cxx_headers} )
|
||||
|
||||
if (CONDA)
|
||||
set(bdist bdist_conda)
|
||||
else()
|
||||
set(bdist bdist_wheel)
|
||||
endif()
|
||||
|
||||
|
||||
add_custom_target( YAP4PY ALL
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/startup.yss ${CMAKE_CURRENT_BINARY_DIR}/yap4py
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CONFIGURATION_HEADERS} ${CMAKE_CURRENT_BINARY_DIR}/yap4py/include
|
||||
COMMAND ${PYTHON_EXECUTABLE} setup.py sdist bdist_wheel
|
||||
COMMAND ${SWIG_EXECUTABLE} -c++ -python -O -py3 -module "yap" -outcurrentdir -addextern -Iyap4py/include -outdir ${CMAKE_CURRENT_BINARY_DIR} -I${GMP_INCLUDE_DIRS} -DX_API="" -o yapPyTHON_wrap.cxx ${SWIG_SOURCES}
|
||||
COMMAND ${PYTHON_EXECUTABLE} setup.py sdist ${bdist}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
DEPENDS STARTUP ${PYTHON_SOURCES} ${PROLOG_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/setup.py ${SWIG_MODULE_Py2YAP_REAL_NAME} )
|
||||
DEPENDS ${YAP_DLLS} STARTUP yap4py/prolog/pl/boot.yap yapi.cpp yap4py/include/yapi.hh yap4py/include/YapInterface.h yap4py/prolog/os/yio.yap yap4py/prolog/lists.yap yap.i
|
||||
)
|
||||
|
||||
|
||||
function(f_copy filename output )
|
||||
get_filename_component(base ${filename} NAME_WE)
|
||||
|
@@ -4,6 +4,9 @@ include README.md
|
||||
recursive-include yap4py/prolog *.*
|
||||
recursive-include html *.*
|
||||
recursive-include docs *.*
|
||||
recursive-include so *.*
|
||||
recursive-include dll *.*
|
||||
recursive-include dylib *.*
|
||||
|
||||
# Documentation
|
||||
graft docs
|
||||
|
@@ -17,10 +17,9 @@ if platform.system() == 'Windows':
|
||||
load('libYap*')
|
||||
else:
|
||||
def load( dll ):
|
||||
dll = glob.glob(os.path.join(yap_lib_path,dll))[0]
|
||||
dll = os.path.join(yap_lib_path,dll)
|
||||
dll = os.path.abspath(dll)
|
||||
ctypes.CDLL(dll, mode=ctypes.RTLD_GLOBAL)
|
||||
if platform.system() == 'Apple'::
|
||||
load('libYap*')
|
||||
load('libYAP+*')
|
||||
load('libPy4YAP*')
|
||||
if platform.system() == 'Apple':
|
||||
load('libYap.dylib')
|
||||
load('libPy4YAP.dylib' )
|
||||
|
@@ -57,7 +57,9 @@ if platform.system() == 'Darwin':
|
||||
so = 'dylib'
|
||||
#or dll in glob('yap/dlls/*'):
|
||||
# move( dll ,'lib' )
|
||||
|
||||
libs = glob('../../../*.{dylib;dll;so}'+'../../../*/*.{dylib;dll;so}'+'../../../*/*/*.{dylib;dll;so}')
|
||||
for l in libs:
|
||||
copy2(l, 'yap4py', follow_symlinks=False)
|
||||
|
||||
cplus=['${RELATIVE_SOURCE}CXX/yapi.cpp']
|
||||
|
||||
|
@@ -50,37 +50,29 @@ import shutil
|
||||
from distutils.core import setup
|
||||
|
||||
here = abspath(dirname(__file__))
|
||||
libpydir = abspath(dirname(os.path.dirname('stdlib')))
|
||||
libpyauxdir = abspath(os.path.dirname('stdlib'))
|
||||
libpydir = abspath(sysconfig.get_path('platlib'))
|
||||
libpyauxdir = abspath(os.path.dirname('std lib'))
|
||||
#pkg_root = join(here, name)
|
||||
|
||||
here = path.abspath(path.dirname(__file__))
|
||||
|
||||
sys.path.insert(0, "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
|
||||
if 'conda' in sys.version or 'Continuum' in sys.version:\
|
||||
my_extra_link_args = []
|
||||
|
||||
if platform.system() == 'Windows':
|
||||
local_libs = []
|
||||
win_libs = ['wsock32','ws2_32']
|
||||
my_extra_link_args = ['-Wl,-export-all-symbols']
|
||||
else:
|
||||
# if platform.system() == 'Darwin':
|
||||
my_extra_link_args = []
|
||||
#if platform.system() == 'Darwin':
|
||||
my_extra_link_args = ['-Wl,-rpath','-Wl,@loader_path/../../..']
|
||||
win_libs = []
|
||||
local_libs = ['Py4YAP']
|
||||
# or dll in glob('yap/dlls/*'):
|
||||
# move( dll ,'lib' )
|
||||
|
||||
native_sources = ["yap.i",'yapi.cpp']
|
||||
native_sources = ["yapPYTHON_wrap.cxx",'yapi.cpp']
|
||||
|
||||
for i in '${PYTHON_SOURCES}'.split(";"):
|
||||
copy2(i, 'yap4py')
|
||||
my_libs0 = '${YAP_DLLS}'.split(";")
|
||||
my_libs = []
|
||||
for i in my_libs0:
|
||||
my_libs = glob(i) + my_libs
|
||||
for i in my_libs:
|
||||
copy2(i, 'yap4py')
|
||||
here = path.abspath(path.dirname(__file__))
|
||||
#gmp_dir = path.abspath(path.dirname("${GMP_LIBRARIES}"))
|
||||
#python_libdir = path.abspath(path.dirname("${PYTHON_LIBRARIES}")
|
||||
# Get the long description from the README file
|
||||
@@ -93,10 +85,11 @@ extensions = [Extension('_yap', native_sources,
|
||||
('_YAP_NOT_INSTALLED_', '1'),
|
||||
('YAP_PYTHON', '1'),
|
||||
('_GNU_SOURCE', '1')],
|
||||
runtime_library_dirs=['yap4py'],
|
||||
runtime_library_dirs=[abspath(sysconfig.get_path('platlib')),
|
||||
abspath(sysconfig.get_path('platlib'))],
|
||||
swig_opts=['-modern', '-c++', '-py3',
|
||||
'-DX_API', '-Iyap4py/include' ],
|
||||
library_dirs=["yap4py"],
|
||||
library_dirs=[".",'../../..'],
|
||||
extra_link_args=my_extra_link_args,
|
||||
libraries=['Yap','Py4YAP','gmp']+win_libs+local_libs,
|
||||
include_dirs=['yap4py/include']
|
||||
@@ -111,6 +104,8 @@ package_data = {
|
||||
'': '*.*'
|
||||
}
|
||||
|
||||
data_files=[('../..', glob('lib*.*'))]
|
||||
|
||||
version_ns = {'__version__': '6.3.5', 'minor-version': '6', 'minor-version': '3', 'patch': '5'}
|
||||
|
||||
setup_args = dict(
|
||||
@@ -118,9 +113,11 @@ setup_args = dict(
|
||||
version=version_ns['__version__'],
|
||||
scripts=glob(join('scripts', '*')),
|
||||
packages=packages,
|
||||
py_modules=['yap','yap4py'],
|
||||
ext_modules=extensions,
|
||||
py_modules=['yap','yap4py.yapi'],
|
||||
package_data=package_data,
|
||||
include_package_data=True,
|
||||
data_files = data_files,
|
||||
# requirements=[
|
||||
# 'm2w64-gmp',
|
||||
# 'm2-msys2-keyring',
|
||||
@@ -132,7 +129,6 @@ setup_args = dict(
|
||||
author_email='vsc@dcc.fc.up.pt',
|
||||
url='http://www.dcc.fc.up/~vsc/yap',
|
||||
license='BSD',
|
||||
ext_modules=extensions,
|
||||
platforms="Linux, Mac OS X, Windows",
|
||||
keywords=['Interactive', 'Interpreter', 'Shell', 'Web'],
|
||||
classifiers=[
|
||||
|
@@ -20,5 +20,5 @@ else:
|
||||
dll = glob.glob(os.path.join(yap_lib_path,dll))[0]
|
||||
dll = os.path.abspath(dll)
|
||||
ctypes.CDLL(dll, mode=ctypes.RTLD_GLOBAL)
|
||||
load('libYap*')
|
||||
load('libPy4YAP*')
|
||||
# load('libYap*')
|
||||
# load('libPy4YAP*')
|
||||
|
@@ -1,4 +1,4 @@
|
||||
"""The main routine of the yap python project."""
|
||||
"""The main routine of the yap python project."""
|
||||
|
||||
import sys
|
||||
import yap4py.yapi
|
||||
|
Reference in New Issue
Block a user