python
This commit is contained in:
@@ -10,10 +10,12 @@ for the relative license.
|
||||
#include <stdio.h>
|
||||
#include "config.h"
|
||||
#include "cudd_config.h"
|
||||
#if HAVE_CUDD_CUDDINT_H
|
||||
#include "cudd/cuddInt.h"
|
||||
#elif HAVE_CUDDINT_H
|
||||
#include "cuddInt.h"
|
||||
#if HAVE_CUDD_CUDD_H
|
||||
#include "cudd/cudd.h"
|
||||
#include "cudd/mtr.h"
|
||||
#elif HAVE_CUDD_H
|
||||
#include "cudd.h"
|
||||
#include "mtr.h"
|
||||
#endif
|
||||
#include "YapInterface.h"
|
||||
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
if (PYTHONLIBS_FOUND)
|
||||
|
||||
include(FindPythonModule)
|
||||
include(FindPythonModule)
|
||||
|
||||
|
||||
include("${CMAKE_SOURCE_DIR}/packages/python/Sources.cmake")
|
||||
|
@@ -641,9 +641,9 @@ static PyObject *structseq_repr(PyObject *iobj) {
|
||||
#endif
|
||||
|
||||
PyObject *term_to_nametuple(const char *s, int arity, term_t t) {
|
||||
PyObject *o;
|
||||
#if PY_MAJOR_VERSION >= 3
|
||||
PyTypeObject *typp;
|
||||
PyObject *o;
|
||||
PyObject *key = PyUnicode_FromString(s);
|
||||
if (py_F2P && PyDict_Contains(py_F2P, key)) {
|
||||
typp = (PyTypeObject *)PyDict_GetItem(py_F2P, key);
|
||||
@@ -667,7 +667,10 @@ PyObject *term_to_nametuple(const char *s, int arity, term_t t) {
|
||||
if (py_F2P)
|
||||
PyDict_SetItem(py_F2P, key, (PyObject *)typp);
|
||||
}
|
||||
o = PyStructSequence_New(typp);
|
||||
o = PyTuple_New(typp);
|
||||
#else
|
||||
o = PyTuple_New(arity);
|
||||
#endif
|
||||
term_t tleft = PL_new_term_ref();
|
||||
int i;
|
||||
|
||||
@@ -678,15 +681,17 @@ PyObject *term_to_nametuple(const char *s, int arity, term_t t) {
|
||||
pArg = term_to_python(tleft, false);
|
||||
if (pArg == NULL)
|
||||
return NULL;
|
||||
#if PY_MAJOR_VERSION >= 3
|
||||
/* pArg reference stolen here: */
|
||||
PyStructSequence_SET_ITEM(o, i, pArg);
|
||||
}
|
||||
((PyStructSequence *)o)->ob_base.ob_size = arity;
|
||||
|
||||
return o;
|
||||
#else
|
||||
if (PyObject_HasAttrString(py_Yapex, "T"))
|
||||
c = PyObject_GetAttrString(py_Yapex, "T");
|
||||
/* pArg reference stolen here: */
|
||||
PyTuple_SET_ITEM(o, i, pArg);
|
||||
}
|
||||
PyObject *o1;
|
||||
o1 = PyTuple_New(2);
|
||||
PyTuple_SET_ITEM(o1, 0, PyUnicode_FromString(s));
|
||||
PyTuple_SET_ITEM(o1, 1, o);
|
||||
@@ -959,7 +964,6 @@ PyObject *compound_to_pytree(term_t t, functor_t fun) {
|
||||
return NULL;
|
||||
term_t tleft;
|
||||
int i;
|
||||
PyObject *o1;
|
||||
o = PyTuple_New(arity);
|
||||
tleft = PL_new_term_ref();
|
||||
for (i = 0; i < arity; i++) {
|
||||
|
@@ -13,7 +13,7 @@ GET_PROPERTY(OBJECTS TARGET libOPTYap PROPERTY SOURCES)
|
||||
# list( APPEND OBJECTS GET_PROPERTY(sourcefiles TARGET utf8proc PROPERTY SOURCES))
|
||||
# list( APPEND OBJECTS GET_PROPERTY(sourcefiles TARGET Yap++ PROPERTY SOURCES))
|
||||
|
||||
if (PYTHONLIBS_FOUND)
|
||||
ipf (PYTHONLIBS_FOUND)
|
||||
|
||||
include(FindPythonModule)
|
||||
|
||||
@@ -36,10 +36,11 @@ if (PYTHONLIBS_FOUND)
|
||||
SET( CMAKE_SWIG_OUTDIR "${CMAKE_CURRENT_BINARY_DIR}/yap" )
|
||||
|
||||
|
||||
SWIG_ADD_MODULE(Py2YAP python ../yap.i )
|
||||
SWIG_LINK_LIBRARIES(Py2YAP ${PYTHON_LIBRARIES} Yap++ YAPPython libYap)
|
||||
SWIG_ADD_MODULE(Py2YAP python ../yap.i ${YAP_SOURCES} ${PYTHo_SOURCES})
|
||||
SWIG_LINK_LIBRARIES(Py2YAP ${PYTHON_LIBRARIES} )
|
||||
set_target_properties ( ${SWIG_MODULE_Py2YAP_REAL_NAME} PROPERTIES
|
||||
NO_SONAME ON OUTPUT_NAME _yap LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/yap" )
|
||||
NO_SONAME ON OUTPUT_NAME _yap LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/yap" ENABLE_EXPORTS ON
|
||||
)
|
||||
|
||||
|
||||
execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "import sysconfig; print( sysconfig.get_path( 'platlib' ) )"
|
||||
@@ -64,7 +65,7 @@ NO_SONAME ON OUTPUT_NAME _yap LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_D
|
||||
|
||||
INSTALL ( FILES ${CMAKE_CURRENT_BINARY_DIR}/yap/_yap.so DESTINATION ${PYTHON_MODULE_PATH} )
|
||||
INSTALL ( FILES ${CMAKE_CURRENT_BINARY_DIR}/yap/yap.py DESTINATION ${PYTHON_MODULE_PATH} )
|
||||
|
||||
|
||||
|
||||
if ( DOCUMENTATION AND DOXYGEN_FOUND )
|
||||
|
||||
|
Reference in New Issue
Block a user