Merge branch 'master' of https://github.com/vscosta/yap-6.3
This commit is contained in:
commit
227c75a213
@ -123,13 +123,7 @@ void *Yap_LoadForeignFile(char *file, int flags) {
|
|||||||
else
|
else
|
||||||
dlflag |= RTLD_LOCAL;
|
dlflag |= RTLD_LOCAL;
|
||||||
#endif
|
#endif
|
||||||
if (!Yap_findFile(file, NULL, NULL, LOCAL_FileNameBuf, true, YAP_OBJ, true, true)) {
|
out = (void *)dlopen(file, dlflag);
|
||||||
/* use LD_LIBRARY_PATH */
|
|
||||||
strncpy(LOCAL_FileNameBuf, file, YAP_FILENAME_MAX - 1);
|
|
||||||
strncat(LOCAL_FileNameBuf, ".", YAP_FILENAME_MAX - 1);
|
|
||||||
strncat(LOCAL_FileNameBuf, "SO_EXT", YAP_FILENAME_MAX - 1);
|
|
||||||
}
|
|
||||||
out = (void *)dlopen(LOCAL_FileNameBuf, flags);
|
|
||||||
if (out == NULL) {
|
if (out == NULL) {
|
||||||
const char *m_os = dlerror();
|
const char *m_os = dlerror();
|
||||||
if (m_os) {
|
if (m_os) {
|
||||||
|
5
C/text.c
5
C/text.c
@ -338,6 +338,11 @@ unsigned char *Yap_readText(seq_tv_t *inp, size_t *lengp) {
|
|||||||
return latin2utf8(inp, lengp);
|
return latin2utf8(inp, lengp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (IsStringTerm(inp->val.t) && inp->type & YAP_STRING_STRING) {
|
||||||
|
// this is a term, extract to a buffer, and representation is wide
|
||||||
|
//Yap_DebugPlWriteln(inp->val.t);
|
||||||
|
return UStringOfTerm(inp->val.t);
|
||||||
|
}
|
||||||
if (((inp->type & (YAP_STRING_CODES | YAP_STRING_ATOMS)) ==
|
if (((inp->type & (YAP_STRING_CODES | YAP_STRING_ATOMS)) ==
|
||||||
(YAP_STRING_CODES | YAP_STRING_ATOMS)) && IsPairTerm(inp->val.t)) {
|
(YAP_STRING_CODES | YAP_STRING_ATOMS)) && IsPairTerm(inp->val.t)) {
|
||||||
//Yap_DebugPlWriteln(inp->val.t);
|
//Yap_DebugPlWriteln(inp->val.t);
|
||||||
|
@ -10,19 +10,10 @@
|
|||||||
# Redistribution and use is allowed according to the terms of the BSD license.
|
# Redistribution and use is allowed according to the terms of the BSD license.
|
||||||
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
||||||
|
|
||||||
if (NOT DEFINED CUDD_ROOT)
|
SET( CUDD_FOUND "NO" )
|
||||||
set(CUDD_ROOT $ENV{CUDD_ROOT})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Check if we have cached results in case the last round was successful.
|
set (CUDD_INCLUDE_SEARCH_PATH
|
||||||
|
${CMAKE_INSTALL_PREFIX}/include
|
||||||
find_package(PkgConfig)
|
|
||||||
|
|
||||||
|
|
||||||
find_path(CUDD_INCLUDE_DIR
|
|
||||||
NAMES cudd.h cudd/cudd.h
|
|
||||||
$ENV{CUDD_ROOT}/include
|
|
||||||
$ENV{CUDD_ROOT}
|
|
||||||
/usr/local/yap/include
|
/usr/local/yap/include
|
||||||
/usr/local/Yap/include
|
/usr/local/Yap/include
|
||||||
/usr/local/cudd/include
|
/usr/local/cudd/include
|
||||||
@ -36,41 +27,50 @@ endif()
|
|||||||
/opt/csw/include # Blastwave
|
/opt/csw/include # Blastwave
|
||||||
/opt/include
|
/opt/include
|
||||||
/usr/freeware/include
|
/usr/freeware/include
|
||||||
NO_DEFAULT_PATHS
|
|
||||||
|
|
||||||
)
|
|
||||||
|
|
||||||
mark_as_advanced(CUDD_INCLUDE_DIR)
|
|
||||||
|
|
||||||
if (${CUDD_ROOT})
|
|
||||||
set (CUDD_LIB_SEARCH_PATH
|
|
||||||
$ENV{CUDD_ROOT}/lib
|
|
||||||
$ENV{CUDD_ROOT}/lib64
|
|
||||||
$ENV{CUDD_ROOT}/lib-dbg
|
|
||||||
$ENV{CUDD_ROOT}
|
|
||||||
${CUDD_ROOT}/cudd
|
|
||||||
/usr/lib
|
|
||||||
${CUDD_ROOT}/lib
|
|
||||||
${CUDD_ROOT}/lib64
|
|
||||||
${CUDD_ROOT}/lib-dbg
|
|
||||||
${CUDD_ROOT}
|
|
||||||
${CUDD_ROOT}/cudd
|
|
||||||
)
|
)
|
||||||
endif()
|
|
||||||
|
|
||||||
mark_as_advanced(CUDD_LIB_SEARCH_PATH on)
|
|
||||||
|
|
||||||
|
|
||||||
set (CUDD_LIB_SEARCH_PATH
|
set (CUDD_LIB_SEARCH_PATH
|
||||||
${CUDD_LIB_SEARCH_PATH}
|
${CMAKE_INSTALL_PREFIX}/lib
|
||||||
/usr/lib64
|
|
||||||
/usr/lib
|
/usr/lib
|
||||||
/usr/local/lib/cudd
|
/usr/local/lib/cudd
|
||||||
/usr/local/cudd/lib
|
/usr/local/cudd/lib
|
||||||
/usr/lib/cudd
|
/usr/lib/cudd
|
||||||
/usr/lib/cudd/lib
|
/usr/lib/cudd/lib
|
||||||
/usr/lib64/cudds
|
/usr/freeware/lib )
|
||||||
/usr/freeware/lib64 )
|
|
||||||
|
if ($ENV{CUDD_ROOT})
|
||||||
|
list (APPEND CUDD_LIB_SEARCH_PATH
|
||||||
|
$ENV{CUDD_ROOT}/lib
|
||||||
|
$ENV{CUDD_ROOT}/lib-dbg
|
||||||
|
$ENV{CUDD_ROOT} )
|
||||||
|
|
||||||
|
list (APPEND CUDD_INCLUDE_SEARCH_PATH
|
||||||
|
$ENV{CUDD_ROOT}/include )
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (${CUDD_ROOT})
|
||||||
|
list (APPEND CUDD_LIB_SEARCH_PATH
|
||||||
|
${CUDD_ROOT}/lib
|
||||||
|
${CUDD_ROOT}/lib-dbg
|
||||||
|
${CUDD_ROOT} )
|
||||||
|
list (APPEND CUDD_INCLUDE_SEARCH_PATH
|
||||||
|
${CUDD_ROOT}/include )
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Check if we have cached results in case the last round was successful.
|
||||||
|
|
||||||
|
find_package(PkgConfig)
|
||||||
|
|
||||||
|
find_path(CUDD_INCLUDE_DIR
|
||||||
|
NAMES cudd.h cudd/cudd.h
|
||||||
|
${CUDD_INCLUDE_SEARCH_PATH}
|
||||||
|
)
|
||||||
|
|
||||||
|
mark_as_advanced(CUDD_INCLUDE_DIR)
|
||||||
|
|
||||||
|
if (CUDD_INCLUDE_DIR)
|
||||||
|
|
||||||
find_library(CUDD_LIBRARIES
|
find_library(CUDD_LIBRARIES
|
||||||
NAMES cudd
|
NAMES cudd
|
||||||
@ -78,7 +78,9 @@ set (CUDD_LIB_SEARCH_PATH
|
|||||||
${CUDD_LIB_SEARCH_PATH}
|
${CUDD_LIB_SEARCH_PATH}
|
||||||
)
|
)
|
||||||
|
|
||||||
IF (NOT EXISTS ${CUDD_INCLUDE_DIR}/epdInt.h )
|
if (CUDD_LIBRARIES)
|
||||||
|
|
||||||
|
SET( CUDD_FOUND "YES" )
|
||||||
|
|
||||||
find_library(CUDD_DDDMP_LIBRARY
|
find_library(CUDD_DDDMP_LIBRARY
|
||||||
NAMES dddmp
|
NAMES dddmp
|
||||||
@ -86,50 +88,63 @@ find_library(CUDD_DDDMP_LIBRARY
|
|||||||
${CUDD_LIB_SEARCH_PATH}
|
${CUDD_LIB_SEARCH_PATH}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if (CUDD_DDMP_LIBRARY)
|
||||||
|
list( APPEND CUDD_LIBRARIES ${CUDD_DDMP_LIBRARY} )
|
||||||
|
endif()
|
||||||
|
|
||||||
find_library(CUDD_EPD_LIBRARY
|
find_library(CUDD_EPD_LIBRARY
|
||||||
NAMES epd
|
NAMES epd
|
||||||
PATHS
|
PATHS
|
||||||
${CUDD_LIB_SEARCH_PATH}
|
${CUDD_LIB_SEARCH_PATH}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if (CUDD_EPD_LIBRARY)
|
||||||
|
list( APPEND CUDD_LIBRARIES ${CUDD_EPD_LIBRARY} )
|
||||||
|
endif()
|
||||||
|
|
||||||
find_library(CUDD_ST_LIBRARY
|
find_library(CUDD_ST_LIBRARY
|
||||||
NAMES cuddst st
|
NAMES cuddst
|
||||||
PATHS
|
PATHS
|
||||||
${CUDD_LIB_SEARCH_PATH}
|
${CUDD_LIB_SEARCH_PATH}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if (CUDD_ST_LIBRARY)
|
||||||
|
list( APPEND CUDD_LIBRARIES ${CUDD_ST_LIBRARY} )
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
find_library(CUDD_UTIL_LIBRARY
|
find_library(CUDD_UTIL_LIBRARY
|
||||||
NAMES cuddutil util
|
NAMES cuddutil
|
||||||
|
|
||||||
PATHS
|
PATHS
|
||||||
${CUDD_LIB_SEARCH_PATH}
|
${CUDD_LIB_SEARCH_PATH}
|
||||||
NO_DEFAULT_PATHS
|
|
||||||
NO_SYSTEM_ENVIRONMENT_PATH
|
|
||||||
NO_CMAKE_SYSTEM_PATH
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if (CUDD_UTIL_LIBRARY)
|
||||||
|
list( APPEND CUDD_LIBRARIES ${CUDD_ST_LIBRARY} )
|
||||||
|
endif()
|
||||||
|
|
||||||
find_library(CUDD_MTR_LIBRARY
|
find_library(CUDD_MTR_LIBRARY
|
||||||
NAMES mtr
|
NAMES mtr
|
||||||
PATHS
|
PATHS
|
||||||
${CUDD_LIB_SEARCH_PATH}
|
${CUDD_LIB_SEARCH_PATH}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if (CUDD_MTR_LIBRARY)
|
||||||
|
list( APPEND CUDD_LIBRARIES ${CUDD_MTR_LIBRARY} )
|
||||||
|
endif()
|
||||||
|
|
||||||
set(CUDD_LIBRARIES
|
endif()
|
||||||
${CUDD_LIBRARIES} ${CUDD_ST_LIBRARY} ${CUDD_UTIL_LIBRARY}
|
|
||||||
${CUDD_MTR_LIBRARY} ${CUDD_EPD_LIBRARY} ${CUDD_DDDMP_LIBRARY} )
|
|
||||||
|
|
||||||
endif () # Check for cudd 2.
|
endif()
|
||||||
|
|
||||||
|
mark_as_advanced(CUDD_LIBRARIES)
|
||||||
|
|
||||||
|
|
||||||
SET( CUDD_FOUND "NO" )
|
|
||||||
IF(CUDD_INCLUDE_DIR AND CUDD_LIBRARIES)
|
|
||||||
SET( CUDD_FOUND "YES" )
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
mark_as_advanced (CUDD_FOUND)
|
mark_as_advanced (CUDD_FOUND)
|
||||||
|
|
||||||
|
|
||||||
find_package_handle_standard_args(R DEFAULT_MSG CUDD_LIBRARIES CUDD_INCLUDE_DIR )
|
find_package_handle_standard_args(CUDD DEFAULT_MSG CUDD_LIBRARIES CUDD_INCLUDE_DIR )
|
||||||
|
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
#Works under the assumption than when gecode is installed at least the kernel component exists
|
#Works under the assumption than when gecode is installed at least the kernel component exists
|
||||||
# Look for the header file
|
# Look for the header file
|
||||||
find_path(GECODE_INCLUDE_DIR NAMES gecode/kernel.hh )
|
find_path(GECODE_INCLUDE_DIR NAMES gecode/kernel.hh PATHS ${CMAKE_INSTALL_PREFIX}/include)
|
||||||
find_file(GECODE_CONFIG gecode/support/config.hpp)
|
find_file(GECODE_CONFIG gecode/support/config.hpp PATHS ${CMAKE_INSTALL_PREFIX}/include)
|
||||||
# Look for the library
|
# Look for the library
|
||||||
find_library(GECODE_LIBRARY NAMES gecodekernel)
|
find_library(GECODE_LIBRARY NAMES gecodekernel PATHS ${CMAKE_INSTALL_PREFIX}/lib)
|
||||||
find_library(GECODE_SUPPORT_LIBRARY NAMES gecodesupport)
|
find_library(GECODE_SUPPORT_LIBRARY NAMES gecodesupportl PATHS ${CMAKE_INSTALL_PREFIX}/lib)
|
||||||
|
|
||||||
if(GECODE_CONFIG)
|
if(GECODE_CONFIG)
|
||||||
file(STRINGS ${GECODE_CONFIG} GECODE_LINE_VERSION REGEX "^#define GECODE_VERSION .*")
|
file(STRINGS ${GECODE_CONFIG} GECODE_LINE_VERSION REGEX "^#define GECODE_VERSION .*")
|
||||||
@ -20,39 +20,39 @@ endif()
|
|||||||
if(GECODE_FOUND)
|
if(GECODE_FOUND)
|
||||||
set(GECODE_LIBRARIES ${GECODE_LIBRARY} ${GECODE_SUPPORT_LIBRARY})
|
set(GECODE_LIBRARIES ${GECODE_LIBRARY} ${GECODE_SUPPORT_LIBRARY})
|
||||||
set(GECODE_INCLUDE_DIRS ${GECODE_INCLUDE_DIR})
|
set(GECODE_INCLUDE_DIRS ${GECODE_INCLUDE_DIR})
|
||||||
find_library(GECODE_DRIVER_LIBRARY gecodedriver)
|
find_library(GECODE_DRIVER_LIBRARY gecodedriverl PATHS ${CMAKE_INSTALL_PREFIX}/lib)
|
||||||
if(GECODE_FZ_LIBRARY)
|
if(GECODE_FZ_LIBRARY)
|
||||||
list(APPEND GECODE_LIBRARIES ${GECODE_FZ_LIBRARY})
|
list(APPEND GECODE_LIBRARIES ${GECODE_FZ_LIBRARY})
|
||||||
endif()
|
endif()
|
||||||
find_library(GECODE_GIST_LIBRARY gecodegist)
|
find_library(GECODE_GIST_LIBRARY gecodegistl PATHS ${CMAKE_INSTALL_PREFIX}/lib)
|
||||||
if(GECODE_GIST_LIBRARY)
|
if(GECODE_GIST_LIBRARY)
|
||||||
list(APPEND GECODE_LIBRARIES ${GECODE_GIST_LIBRARY})
|
list(APPEND GECODE_LIBRARIES ${GECODE_GIST_LIBRARY})
|
||||||
endif()
|
endif()
|
||||||
find_library(GECODE_GRAPH_LIBRARY gecodegraph)
|
find_library(GECODE_GRAPH_LIBRARY gecodegraphl PATHS ${CMAKE_INSTALL_PREFIX}/lib)
|
||||||
if(GECODE_GRAPH_LIBRARY)
|
if(GECODE_GRAPH_LIBRARY)
|
||||||
list(APPEND GECODE_LIBRARIES ${GECODE_GRAPH_LIBRARY})
|
list(APPEND GECODE_LIBRARIES ${GECODE_GRAPH_LIBRARY})
|
||||||
endif()
|
endif()
|
||||||
find_library(GECODE_INT_LIBRARY gecodeint)
|
find_library(GECODE_INT_LIBRARY gecodeintl PATHS ${CMAKE_INSTALL_PREFIX}/lib)
|
||||||
if(GECODE_INT_LIBRARY)
|
if(GECODE_INT_LIBRARY)
|
||||||
list(APPEND GECODE_LIBRARIES ${GECODE_INT_LIBRARY})
|
list(APPEND GECODE_LIBRARIES ${GECODE_INT_LIBRARY})
|
||||||
endif()
|
endif()
|
||||||
find_library(GECODE_FLOAT_LIBRARY gecodefloat)
|
find_library(GECODE_FLOAT_LIBRARY gecodefloatl PATHS ${CMAKE_INSTALL_PREFIX}/lib)
|
||||||
if(GECODE_FLOAT_LIBRARY)
|
if(GECODE_FLOAT_LIBRARY)
|
||||||
list(APPEND GECODE_LIBRARIES ${GECODE_FLOAT_LIBRARY})
|
list(APPEND GECODE_LIBRARIES ${GECODE_FLOAT_LIBRARY})
|
||||||
endif()
|
endif()
|
||||||
find_library(GECODE_MM_LIBRARY gecodeminimodel)
|
find_library(GECODE_MM_LIBRARY gecodeminimodell PATHS ${CMAKE_INSTALL_PREFIX}/lib)
|
||||||
if(GECODE_MM_LIBRARY)
|
if(GECODE_MM_LIBRARY)
|
||||||
list(APPEND GECODE_LIBRARIES ${GECODE_MM_LIBRARY})
|
list(APPEND GECODE_LIBRARIES ${GECODE_MM_LIBRARY})
|
||||||
endif()
|
endif()
|
||||||
find_library(GECODE_SCHEDULING_LIBRARY gecodescheduling)
|
find_library(GECODE_SCHEDULING_LIBRARY gecodeschedulingl PATHS ${CMAKE_INSTALL_PREFIX}/lib)
|
||||||
if(GECODE_SCHEDULING_LIBRARY)
|
if(GECODE_SCHEDULING_LIBRARY)
|
||||||
list(APPEND GECODE_LIBRARIES ${GECODE_SCHEDULING_LIBRARY})
|
list(APPEND GECODE_LIBRARIES ${GECODE_SCHEDULING_LIBRARY})
|
||||||
endif()
|
endif()
|
||||||
find_library(GECODE_SEARCH_LIBRARY gecodesearch)
|
find_library(GECODE_SEARCH_LIBRARY gecodesearchl PATHS ${CMAKE_INSTALL_PREFIX}/lib)
|
||||||
if(GECODE_SEARCH_LIBRARY)
|
if(GECODE_SEARCH_LIBRARY)
|
||||||
list(APPEND GECODE_LIBRARIES ${GECODE_SEARCH_LIBRARY})
|
list(APPEND GECODE_LIBRARIES ${GECODE_SEARCH_LIBRARY})
|
||||||
endif()
|
endif()
|
||||||
find_library(GECODE_SET_LIBRARY gecodeset)
|
find_library(GECODE_SET_LIBRARY gecodesetl PATHS ${CMAKE_INSTALL_PREFIX}/lib)
|
||||||
if(GECODE_SET_LIBRARY)
|
if(GECODE_SET_LIBRARY)
|
||||||
list(APPEND GECODE_LIBRARIES ${GECODE_SET_LIBRARY})
|
list(APPEND GECODE_LIBRARIES ${GECODE_SET_LIBRARY})
|
||||||
endif()
|
endif()
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
|
|
||||||
|
|
||||||
option (WITH_CUDD "BDD CUDD package" ON)
|
option (WITH_CUDD "BDD CUDD package" ON)
|
||||||
|
|
||||||
if (WITH_CUDD)
|
if (WITH_CUDD)
|
||||||
#detect cudd setup, as it is shared between different installations.
|
#detect cudd setup, as it is shared between different installations.
|
||||||
|
|
||||||
@ -9,13 +10,18 @@ find_package(CUDD)
|
|||||||
# CUDD_LIBRARIES - Link these to use CUDD
|
# CUDD_LIBRARIES - Link these to use CUDD
|
||||||
# CUDD_INCLUDE_DIR - Include directory for using CUDD
|
# CUDD_INCLUDE_DIR - Include directory for using CUDD
|
||||||
#
|
#
|
||||||
|
macro_log_feature (CUDD_FOUND "CUDD"
|
||||||
|
"Use CUDD BDD library"
|
||||||
|
"http://vlsi.colorado.edu/~fabio/CUDD/" FALSE)
|
||||||
|
|
||||||
if (CUDD_FOUND)
|
if (CUDD_FOUND)
|
||||||
|
|
||||||
set( CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${CUDD_INCLUDE_DIR} )
|
set( CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${CUDD_INCLUDE_DIR} )
|
||||||
|
|
||||||
check_include_files( cudd.h HAVE_CUDD_H )
|
check_include_files( "stdio.h;cudd.h" HAVE_CUDD_H )
|
||||||
check_include_files( "stdio.h;cudd/cudd.h" HAVE_CUDD_CUDD_H )
|
check_include_files( "stdio.h;cudd/cudd.h" HAVE_CUDD_CUDD_H )
|
||||||
check_include_files( cuddInt.h HAVE_CUDDINT_H )
|
check_include_files( "cuddInt.h" HAVE_CUDDINT_H )
|
||||||
check_include_files( "stdio.h;cudd/cudd.h;cudd/cuddInt.h" HAVE_CUDD_CUDDINT_H )
|
check_include_files( "cudd/cuddInt.h" HAVE_CUDD_CUDDINT_H )
|
||||||
endif (CUDD_FOUND)
|
endif (CUDD_FOUND)
|
||||||
|
|
||||||
endif(WITH_CUDD)
|
endif(WITH_CUDD)
|
||||||
|
@ -16,6 +16,8 @@ foreach (i 3.6 3.5 3.4 3.3 3.2 3.1 3.0)
|
|||||||
break()
|
break()
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
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()
|
endif()
|
||||||
|
|
||||||
find_package(PythonInterp)
|
find_package(PythonInterp)
|
||||||
|
@ -1 +0,0 @@
|
|||||||
Debug/compile_commands.json
|
|
@ -209,8 +209,6 @@ X_API int PL_get_nchars(term_t l, size_t *lengthp, char **s, unsigned flags) {
|
|||||||
} else {
|
} else {
|
||||||
out.enc = ENC_ISO_LATIN1;
|
out.enc = ENC_ISO_LATIN1;
|
||||||
}
|
}
|
||||||
if (flags & BUF_MALLOC)
|
|
||||||
out.type |= YAP_STRING_MALLOC;
|
|
||||||
if (lengthp) {
|
if (lengthp) {
|
||||||
out.type |= YAP_STRING_NCHARS;
|
out.type |= YAP_STRING_NCHARS;
|
||||||
out.max = *lengthp;
|
out.max = *lengthp;
|
||||||
@ -232,8 +230,12 @@ int PL_get_wchars(term_t l, size_t *lengthp, wchar_t **s, unsigned flags) {
|
|||||||
inp.val.t = Yap_GetFromSlot(l);
|
inp.val.t = Yap_GetFromSlot(l);
|
||||||
inp.type = cvtFlags(flags);
|
inp.type = cvtFlags(flags);
|
||||||
out.type = YAP_STRING_WCHARS;
|
out.type = YAP_STRING_WCHARS;
|
||||||
if (flags & BUF_MALLOC)
|
if (flags & BUF_MALLOC) {
|
||||||
out.type |= YAP_STRING_MALLOC;
|
out.type |= YAP_STRING_MALLOC;
|
||||||
|
out.val.w = *s;
|
||||||
|
} else {
|
||||||
|
out.val.w = NULL;
|
||||||
|
}
|
||||||
if (lengthp) {
|
if (lengthp) {
|
||||||
out.type |= YAP_STRING_NCHARS;
|
out.type |= YAP_STRING_NCHARS;
|
||||||
out.max = *lengthp;
|
out.max = *lengthp;
|
||||||
|
@ -45,6 +45,7 @@
|
|||||||
mktemp/2,
|
mktemp/2,
|
||||||
make_directory/1,
|
make_directory/1,
|
||||||
popen/3,
|
popen/3,
|
||||||
|
read_link/3,
|
||||||
rename_file/2,
|
rename_file/2,
|
||||||
shell/0,
|
shell/0,
|
||||||
shell/1,
|
shell/1,
|
||||||
@ -318,6 +319,14 @@ Create file _OldFile_ to _NewFile_. This predicate uses the
|
|||||||
`C` built-in function `rename`.
|
`C` built-in function `rename`.
|
||||||
|
|
||||||
|
|
||||||
|
*/
|
||||||
|
/** @pred read_link(+ SymbolicLink, -Link, -NewPath)
|
||||||
|
|
||||||
|
|
||||||
|
Follow a _SymbolicLink_, and obtain the actual _Link_ and the target _newPath_). This predicate uses the
|
||||||
|
`C` built-in function `readlink` and is not yet operational in WIN32.
|
||||||
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
/** @pred shell
|
/** @pred shell
|
||||||
|
|
||||||
@ -797,3 +806,8 @@ tmpdir(TmpDir):-
|
|||||||
path_separator('\\'):-
|
path_separator('\\'):-
|
||||||
win, !.
|
win, !.
|
||||||
path_separator('/').
|
path_separator('/').
|
||||||
|
|
||||||
|
read_link(P,D,F) :-
|
||||||
|
read_link(P, D),
|
||||||
|
absolute_file_name(D, [], F).
|
||||||
|
|
||||||
|
@ -312,6 +312,27 @@ static YAP_Bool rename_file(void) {
|
|||||||
return (TRUE);
|
return (TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static YAP_Bool read_link(void) {
|
||||||
|
char *s1 = (char *)YAP_AtomName(YAP_AtomOfTerm(YAP_ARG1));
|
||||||
|
#if HAVE_READLINK
|
||||||
|
char buf[PATH_MAX + 1];
|
||||||
|
|
||||||
|
if (readlink(s1, buf, PATH_MAX) < 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
|
||||||
|
/* return an error number */
|
||||||
|
if (!YAP_Unify(YAP_ARG2, YAP_MkAtomTerm(YAP_LookupAtom(buf)))) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
# if _WIN32
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
static YAP_Bool dir_separator(void) {
|
static YAP_Bool dir_separator(void) {
|
||||||
return (YAP_Unify(YAP_ARG1, YAP_MkAtomTerm(YAP_LookupAtom("/"))));
|
return (YAP_Unify(YAP_ARG1, YAP_MkAtomTerm(YAP_LookupAtom("/"))));
|
||||||
}
|
}
|
||||||
@ -1038,6 +1059,7 @@ void init_sys(void) {
|
|||||||
YAP_UserCPredicate("tmpdir", p_tmpdir, 2);
|
YAP_UserCPredicate("tmpdir", p_tmpdir, 2);
|
||||||
YAP_UserCPredicate("rename_file", rename_file, 3);
|
YAP_UserCPredicate("rename_file", rename_file, 3);
|
||||||
YAP_UserCPredicate("sleep", p_sleep, 2);
|
YAP_UserCPredicate("sleep", p_sleep, 2);
|
||||||
|
YAP_UserCPredicate("read_link", read_link, 2);
|
||||||
YAP_UserCPredicate("error_message", error_message, 2);
|
YAP_UserCPredicate("error_message", error_message, 2);
|
||||||
YAP_UserCPredicate("win", win, 0);
|
YAP_UserCPredicate("win", win, 0);
|
||||||
YAP_UserCPredicate("md5", md5, 3);
|
YAP_UserCPredicate("md5", md5, 3);
|
||||||
|
@ -1,5 +1,15 @@
|
|||||||
// cmake template file
|
// cmake template file
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <cuddInt.h> header file. */
|
||||||
|
#ifndef HAVE_CUDD_H
|
||||||
|
#cmakedefine HAVE_CUDD_H ${HAVE_CUDD_H}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <cudd/cuddInt.h> header file. */
|
||||||
|
#ifndef HAVE_CUDD_CUDD_H
|
||||||
|
#cmakedefine HAVE_CUDD_CUDD_H ${HAVE_CUDD_CUDD_H}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Define to 1 if you have the <cuddInt.h> header file. */
|
/* Define to 1 if you have the <cuddInt.h> header file. */
|
||||||
#ifndef HAVE_CUDDINT_H
|
#ifndef HAVE_CUDDINT_H
|
||||||
#cmakedefine HAVE_CUDDINT_H ${HAVE_CUDDINT_H}
|
#cmakedefine HAVE_CUDDINT_H ${HAVE_CUDDINT_H}
|
||||||
|
@ -12,7 +12,7 @@ for the relative license.
|
|||||||
#include "cudd_config.h"
|
#include "cudd_config.h"
|
||||||
#if HAVE_CUDD_CUDDINT_H
|
#if HAVE_CUDD_CUDDINT_H
|
||||||
#include "cudd/cuddInt.h"
|
#include "cudd/cuddInt.h"
|
||||||
#else
|
#elif HAVE_CUDDINT_H
|
||||||
#include "cuddInt.h"
|
#include "cuddInt.h"
|
||||||
#endif
|
#endif
|
||||||
#include "YapInterface.h"
|
#include "YapInterface.h"
|
||||||
|
@ -15,10 +15,10 @@ for the relative license.
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#if HAVE_CUDD_CUDDINT_H
|
#if HAVE_CUDD_CUDD_H
|
||||||
#include <cudd/cuddInt.h>
|
#include <cudd/cudd.h>
|
||||||
#elif HAVE_CUDDINT_H
|
#elif HAVE_CUDD_H
|
||||||
#include "cuddInt.h"
|
#include "cudd.h"
|
||||||
#endif
|
#endif
|
||||||
#include "YapInterface.h"
|
#include "YapInterface.h"
|
||||||
#define LOGZERO log(0.000001)
|
#define LOGZERO log(0.000001)
|
||||||
|
@ -8,14 +8,12 @@ include(FindPythonModule)
|
|||||||
set (PYTHON_SOURCES
|
set (PYTHON_SOURCES
|
||||||
python.c pl2py.c pybips.c py2pl.c pl2pl.c pypreds.c )
|
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
|
set (PYTHON_HEADERS
|
||||||
python.h)
|
python.h)
|
||||||
|
|
||||||
configure_file ("setup.py.cmake" "setup.py" )
|
target_link_libraries(YAPPython libYap ${PYTHON_LIBRARIES})
|
||||||
|
|
||||||
target_link_libraries(libpython libYap ${PYTHON_LIBRARIES})
|
|
||||||
|
|
||||||
set(SETUP_PY "${CMAKE_CURRENT_BINARY_DIR}/setup.py")
|
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
|
COMMAND ${PYTHON_EXECUTABLE} setup.py build -f
|
||||||
DEPENDS yapex.py )
|
DEPENDS yapex.py )
|
||||||
|
|
||||||
set_target_properties (libpython PROPERTIES PREFIX "")
|
# set_target_properties (YAPPython PROPERTIES PREFIX "")
|
||||||
|
|
||||||
include_directories (${PYTHON_INCLUDE_DIRS})
|
include_directories (${PYTHON_INCLUDE_DIRS})
|
||||||
|
|
||||||
install(TARGETS libpython
|
install(TARGETS YAPPython
|
||||||
LIBRARY DESTINATION ${dlls}
|
LIBRARY DESTINATION ${dlls}
|
||||||
ARCHIVE DESTINATION ${dlls}
|
ARCHIVE DESTINATION ${dlls}
|
||||||
)
|
)
|
||||||
@ -36,6 +34,8 @@ add_custom_target ( YAPex ALL
|
|||||||
DESTINATION ${libpl}
|
DESTINATION ${libpl}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
configure_file ("setup.py.cmake" "setup.py" )
|
||||||
|
|
||||||
install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} ${SETUP_PY} install -f
|
install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} ${SETUP_PY} install -f
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})")
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})")
|
||||||
|
|
||||||
|
12
packages/python/examples/plot.yap
Normal file
12
packages/python/examples/plot.yap
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
:- [library(python)].
|
||||||
|
|
||||||
|
main :-
|
||||||
|
Plt = matplotlib.pyplot,
|
||||||
|
:= import( Plt ),
|
||||||
|
:= (
|
||||||
|
Plt.plot([1,2,3,4]),
|
||||||
|
Plt.ylabel(`some numbers`),
|
||||||
|
Plt.show()
|
||||||
|
).
|
||||||
|
|
@ -73,7 +73,7 @@ PyObject *term_to_python(term_t t, bool eval) {
|
|||||||
return o;
|
return o;
|
||||||
} break;
|
} break;
|
||||||
case PL_STRING: {
|
case PL_STRING: {
|
||||||
char *s;
|
char *s = NULL;
|
||||||
if (!PL_get_chars(t, &s,
|
if (!PL_get_chars(t, &s,
|
||||||
REP_UTF8 | CVT_ATOM | CVT_STRING | BUF_DISCARDABLE)) {
|
REP_UTF8 | CVT_ATOM | CVT_STRING | BUF_DISCARDABLE)) {
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -633,8 +633,9 @@ static int python_import(term_t mname, term_t mod) {
|
|||||||
return false;
|
return false;
|
||||||
s = stpcpy(s, sa);
|
s = stpcpy(s, sa);
|
||||||
*s++ = '.';
|
*s++ = '.';
|
||||||
|
s[0] = '\0';
|
||||||
} else if (!PL_get_nchars(mname, &len, &s,
|
} else if (!PL_get_nchars(mname, &len, &s,
|
||||||
CVT_ALL | CVT_EXCEPTION | ENC_ISO_UTF8)) {
|
CVT_ALL | CVT_EXCEPTION | REP_UTF8)) {
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
|
@ -110,7 +110,10 @@ Data types are
|
|||||||
:- use_module(library(charsio)).
|
:- use_module(library(charsio)).
|
||||||
:- dynamic python_mref_cache/2, python_obj_cache/2.
|
:- dynamic python_mref_cache/2, python_obj_cache/2.
|
||||||
|
|
||||||
:= import( F ) :- python_import(F).
|
:= (P1,P2) :- !,
|
||||||
|
:= P1,
|
||||||
|
:= P2.
|
||||||
|
:= import( F ) :- !, python_import(F).
|
||||||
:= F :- python(F,_).
|
:= F :- python(F,_).
|
||||||
|
|
||||||
V := F :- var(V), !, python(F,V0),
|
V := F :- var(V), !, python(F,V0),
|
||||||
@ -426,4 +429,6 @@ python_assign_field(C1.E, Obj) :-
|
|||||||
python_eval_term(C1, O1),
|
python_eval_term(C1, O1),
|
||||||
python_assign_field(O1, E, Obj ).
|
python_assign_field(O1, E, Obj ).
|
||||||
|
|
||||||
:- initialization( use_foreign_library(foreign(libpython), init_python), now ).
|
%:- initialization( load_foreign_files([libYAPPython], [], init_python), now ).
|
||||||
|
|
||||||
|
:- initialization( load_foreign_library(foreign(libYAPPython), init_python), now ).
|
||||||
|
@ -1,58 +0,0 @@
|
|||||||
from distutils.command.install import install
|
|
||||||
from distutils.core import setup
|
|
||||||
from distutils import log
|
|
||||||
import json
|
|
||||||
import sys
|
|
||||||
import os
|
|
||||||
|
|
||||||
PY3 = sys.version_info[0] >= 3
|
|
||||||
|
|
||||||
kernel_json = {
|
|
||||||
"argv": [sys.executable,
|
|
||||||
"-m", "yap_kernel",
|
|
||||||
"-f", "{connection_file}"],
|
|
||||||
"display_name": " YAP-6.3" ,
|
|
||||||
"language": "prolog",
|
|
||||||
"name": "yap_kernel",
|
|
||||||
}
|
|
||||||
|
|
||||||
class install_with_kernelspec(install):
|
|
||||||
def run(self):
|
|
||||||
install.run(self)
|
|
||||||
from jupyter_client.kernelspec import install_kernel_spec
|
|
||||||
from IPython.utils.tempdir import TemporaryDirectory
|
|
||||||
with TemporaryDirectory() as td:
|
|
||||||
os.chmod(td, 0o755) # Starts off as 700, not user readable
|
|
||||||
with open(os.path.join(td, 'kernel.json'), 'w') as f:
|
|
||||||
json.dump(kernel_json, f, sort_keys=True)
|
|
||||||
log.info('Installing kernel spec')
|
|
||||||
try:
|
|
||||||
install_kernel_spec(td, 'yap_kernel', user=self.user,
|
|
||||||
replace=True)
|
|
||||||
except:
|
|
||||||
install_kernel_spec(td, 'yap_kernel', user=not self.user,
|
|
||||||
replace=True)
|
|
||||||
|
|
||||||
svem_flag = '--single-version-externally-managed'
|
|
||||||
if svem_flag in sys.argv:
|
|
||||||
# Die, setuptools, die.
|
|
||||||
sys.argv.remove(svem_flag)
|
|
||||||
|
|
||||||
setup(name='yap_kernel',
|
|
||||||
version='0.0.1',
|
|
||||||
description='A simple YAP kernel for Jupyter/IPython',
|
|
||||||
long_description="A simple YAP kernel for Jupyter/IPython, based on MetaKernel",
|
|
||||||
url="https://github.com/vscosta/yap-6.3",
|
|
||||||
author='Vitor Santos Costa, based on the metakernel from Douglas Blank',
|
|
||||||
author_email='vsc@dcc.fc.up.pt',
|
|
||||||
py_modules=['yap_kernel'],
|
|
||||||
install_requires=["metakernel","yap"],
|
|
||||||
cmdclass={'install': install_with_kernelspec},
|
|
||||||
classifiers = [
|
|
||||||
'Framework :: IPython',
|
|
||||||
'License :: OSI Approved :: BSD License',
|
|
||||||
'Programming Language :: YAP :: 6.3',
|
|
||||||
'Programming Language :: Python :: 3',
|
|
||||||
'Topic :: System :: Shells',
|
|
||||||
]
|
|
||||||
)
|
|
@ -15,9 +15,9 @@ IF (NOT YAP_FOUND)
|
|||||||
ENDIF (NOT YAP_FOUND)
|
ENDIF (NOT YAP_FOUND)
|
||||||
|
|
||||||
macro_optional_find_package (LibXml2 ON)
|
macro_optional_find_package (LibXml2 ON)
|
||||||
macro_log_feature (LIBXML2_FOUND "RAPTOR"
|
macro_log_feature (LIBXML2_FOUND "LIBXML2"
|
||||||
"Use XML2 Library"
|
"Use XML2 Library"
|
||||||
"http://www.r.org" FALSE)
|
"http://www.xmlsoft.org" FALSE)
|
||||||
IF (LIBXML2_FOUND)
|
IF (LIBXML2_FOUND)
|
||||||
# LIBXML2_FOUND - System has LibXml2
|
# LIBXML2_FOUND - System has LibXml2
|
||||||
# LIBXML2_INCLUDE_DIR - The LibXml2 include directory
|
# LIBXML2_INCLUDE_DIR - The LibXml2 include directory
|
||||||
@ -76,7 +76,7 @@ ENDIF (LIBXML2_FOUND)
|
|||||||
macro_optional_find_package (RAPTOR ON)
|
macro_optional_find_package (RAPTOR ON)
|
||||||
macro_log_feature (RAPTOR_FOUND "RAPTOR"
|
macro_log_feature (RAPTOR_FOUND "RAPTOR"
|
||||||
"Use RAPTOR Library"
|
"Use RAPTOR Library"
|
||||||
"http://www.r.org" FALSE)
|
"http://www.librdf.org" FALSE)
|
||||||
IF (RAPTOR_FOUND)
|
IF (RAPTOR_FOUND)
|
||||||
# RAPTOR_FOUND - system has Raptor
|
# RAPTOR_FOUND - system has Raptor
|
||||||
# RAPTOR_LIBRARIES - Link these to use Raptor
|
# RAPTOR_LIBRARIES - Link these to use Raptor
|
||||||
|
@ -45,6 +45,7 @@ if ( NOT( RAPTOR_INCLUDE_DIR AND RAPTOR_LIBRARIES ) OR NOT RAPTOR_FOUND )
|
|||||||
NAMES raptor2.h raptor2/raptor2.h raptor.h raptor/raptor.h
|
NAMES raptor2.h raptor2/raptor2.h raptor.h raptor/raptor.h
|
||||||
PATHS $ENV{RAPTOR_DIR}/include
|
PATHS $ENV{RAPTOR_DIR}/include
|
||||||
$ENV{RAPTOR_DIR}
|
$ENV{RAPTOR_DIR}
|
||||||
|
${CMAKE_INSTALL_PREFIX}/include
|
||||||
~/Library/Frameworks
|
~/Library/Frameworks
|
||||||
/Library/Frameworks
|
/Library/Frameworks
|
||||||
/usr/local/include
|
/usr/local/include
|
||||||
@ -64,6 +65,7 @@ if ( NOT( RAPTOR_INCLUDE_DIR AND RAPTOR_LIBRARIES ) OR NOT RAPTOR_FOUND )
|
|||||||
PATHS $ENV{RAPTOR_DIR}/lib
|
PATHS $ENV{RAPTOR_DIR}/lib
|
||||||
$ENV{RAPTOR_DIR}/lib-dbg
|
$ENV{RAPTOR_DIR}/lib-dbg
|
||||||
$ENV{RAPTOR_DIR}
|
$ENV{RAPTOR_DIR}
|
||||||
|
${CMAKE_INSTALL_PREFIX}/lib
|
||||||
~/Library/Frameworks
|
~/Library/Frameworks
|
||||||
/Library/Frameworks
|
/Library/Frameworks
|
||||||
/usr/local/lib
|
/usr/local/lib
|
||||||
|
@ -66,6 +66,7 @@
|
|||||||
:- use_module(library(charsio)).
|
:- use_module(library(charsio)).
|
||||||
:- use_module(library(readutil)).
|
:- use_module(library(readutil)).
|
||||||
:- use_module(library(debug)).
|
:- use_module(library(debug)).
|
||||||
|
:- use_module(library(system)).
|
||||||
|
|
||||||
:- dynamic( real:r_started/1 ).
|
:- dynamic( real:r_started/1 ).
|
||||||
|
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 755 B |
@ -12,10 +12,11 @@ if (PYTHONLIBS_FOUND)
|
|||||||
|
|
||||||
INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/CXX)
|
INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/CXX)
|
||||||
|
|
||||||
SET(CMAKE_SWIG_FLAGS "")
|
SET(CMAKE_SWIG_FLAGS "-py3")
|
||||||
|
|
||||||
SET_SOURCE_FILES_PROPERTIES(../yap.i PROPERTIES CPLUSPLUS ON)
|
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 PROPERTIES SWIG_FLAGS "-includeall")
|
||||||
|
SET_SOURCE_FILES_PROPERTIES(../yap.i PROPERTY SWIG_MODULE_NAME libPy2YAP )
|
||||||
|
|
||||||
configure_file ("setup.py.cmake" "setup.py" )
|
configure_file ("setup.py.cmake" "setup.py" )
|
||||||
|
|
||||||
@ -23,9 +24,11 @@ if (PYTHONLIBS_FOUND)
|
|||||||
#SET( CMAKE_SWIG_OUTDIR "yap" )
|
#SET( CMAKE_SWIG_OUTDIR "yap" )
|
||||||
|
|
||||||
|
|
||||||
SWIG_ADD_MODULE(yap python ../yap.i)
|
# SWIG_ADD_MODULE(Py2YAP python ../yap.i )
|
||||||
SWIG_LINK_LIBRARIES(yap ${PYTHON_LIBRARIES} Yap++ libYap libpython)
|
# SWIG_LINK_LIBRARIES(Py2YAP ${PYTHON_LIBRARIES} Yap++ libYap YAPPython)
|
||||||
set_target_properties ( ${SWIG_MODULE_yap_REAL_NAME} PROPERTIES NO_SONAME ON )
|
# 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}' ) )"
|
# 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
|
# OUTPUT_VARIABLE _ABS_PYTHON_MODULE_PATH
|
||||||
@ -33,15 +36,15 @@ if (PYTHONLIBS_FOUND)
|
|||||||
# get_filename_component ( _ABS_PYTHON_MODULE_PATH ${_ABS_PYTHON_MODULE_PATH} ABSOLUTE )
|
# get_filename_component ( _ABS_PYTHON_MODULE_PATH ${_ABS_PYTHON_MODULE_PATH} ABSOLUTE )
|
||||||
# file ( RELATIVE_PATH _REL_PYTHON_MOULE_PATH ${CMAKE_INSTALL_PREFIX} ${_ABS_PYTHON_MODULE_PATH} )
|
# file ( RELATIVE_PATH _REL_PYTHON_MOULE_PATH ${CMAKE_INSTALL_PREFIX} ${_ABS_PYTHON_MODULE_PATH} )
|
||||||
|
|
||||||
set ( PYTHON_MODULE_PATH
|
# set ( PYTHON_MODULE_PATH
|
||||||
${_REL_PYTHON_MODULE_PATH}
|
# ${_REL_PYTHON_MODULE_PATH}
|
||||||
)
|
# )
|
||||||
|
|
||||||
set(SETUP_PY "${CMAKE_CURRENT_BINARY_DIR}/setup.py")
|
set(SETUP_PY "${CMAKE_CURRENT_BINARY_DIR}/setup.py")
|
||||||
|
|
||||||
add_custom_target ( py2yap ALL
|
add_custom_target ( py2yap ALL
|
||||||
COMMAND ${PYTHON_EXECUTABLE} setup.py bdist
|
COMMAND ${PYTHON_EXECUTABLE} setup.py bdist
|
||||||
DEPENDS yap.py )
|
DEPENDS ../yap.i YAPPython )
|
||||||
|
|
||||||
|
|
||||||
install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} ${SETUP_PY} install
|
install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} ${SETUP_PY} install
|
||||||
@ -77,6 +80,11 @@ if (PYTHONLIBS_FOUND)
|
|||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
|
||||||
|
install(TARGETS ${SWIG_MODULE_Py2YAP_REAL_NAME}
|
||||||
|
LIBRARY DESTINATION ${dlls}
|
||||||
|
ARCHIVE DESTINATION ${dlls}
|
||||||
|
)
|
||||||
|
|
||||||
# add_subdirectory ( examples )
|
# add_subdirectory ( examples )
|
||||||
else ()
|
else ()
|
||||||
message(STATUS "Not building python bindings")
|
message(STATUS "Not building python bindings")
|
||||||
|
3
packages/swig/python/_yap.c
Normal file
3
packages/swig/python/_yap.c
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
// make Python happy...
|
||||||
|
|
@ -1,23 +1,29 @@
|
|||||||
from distutils.core import setup, Extension
|
from distutils.core import setup, Extension
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
import platform
|
||||||
|
|
||||||
|
if platform.system() == 'Darwin':
|
||||||
|
my_extra_link_args = ['-Wl,-rpath','-Wl,${dlls}']
|
||||||
|
else:
|
||||||
|
my_extra_link_args = []
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name = "yap",
|
name = "yap",
|
||||||
version = "0.1",
|
version = "0.1",
|
||||||
ext_modules=[Extension('_yap', [ 'yapPYTHON_wrap.cxx',
|
ext_modules=[Extension('_yap', ['${CMAKE_SOURCE_DIR}/packages/swig/yap.i'],
|
||||||
'${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'],
|
|
||||||
define_macros = [('MAJOR_VERSION', '1'),
|
define_macros = [('MAJOR_VERSION', '1'),
|
||||||
('MINOR_VERSION', '0'),
|
('MINOR_VERSION', '0'),
|
||||||
('_YAP_NOT_INSTALLED_', '1')],
|
('_YAP_NOT_INSTALLED_', '1')],
|
||||||
swig_opts=['-py3', '-c++','-I${CMAKE_SOURCE_DIR}/CXX'],
|
runtime_library_dirs=['${dlls}'],
|
||||||
runtime_library_dirs=['/usr/local/lib'],
|
swig_opts=['-modern', '-c++', '-py3','-I${CMAKE_SOURCE_DIR}/CXX'],
|
||||||
library_dirs=['../../..','../../../CXX'],
|
library_dirs=['../../..','../../../CXX',
|
||||||
libraries=['Yap++','Yap'],
|
'../../python',
|
||||||
|
'.'],
|
||||||
|
extra_link_args=my_extra_link_args,
|
||||||
|
libraries=['Yap++','Yap','YAPPython'],
|
||||||
include_dirs=['../../..',
|
include_dirs=['../../..',
|
||||||
|
'${GMP_INCLUDE_DIRS}',
|
||||||
'${CMAKE_SOURCE_DIR}/H',
|
'${CMAKE_SOURCE_DIR}/H',
|
||||||
'${CMAKE_SOURCE_DIR}/H/generated',
|
'${CMAKE_SOURCE_DIR}/H/generated',
|
||||||
'${CMAKE_SOURCE_DIR}/OPTYap',
|
'${CMAKE_SOURCE_DIR}/OPTYap',
|
||||||
|
Reference in New Issue
Block a user