diff --git a/C/errors.c b/C/errors.c index bbf42d4da..53c53bd7f 100755 --- a/C/errors.c +++ b/C/errors.c @@ -332,7 +332,7 @@ bool Yap_PrintWarning(Term twarning) { PredEntry *pred = RepPredProp(PredPropByFunc( FunctorPrintMessage, PROLOG_MODULE)); // PROCEDURE_print_message2; __android_log_print(ANDROID_LOG_INFO, "YAPDroid ", " warning(%s)", - Yap_TermToBuffer(twarning, Quote_illegal_f | Ignore_ops_f | Unfold_cyclics_f)); + Yap_TermToBuffer(twarning, Quote_illegal_f | Ignore_ops_f | Ignore_cyclics_f)); Term cmod = (CurrentModule == PROLOG_MODULE ? TermProlog : CurrentModule); bool rc; Term ts[2], err; diff --git a/CMakeLists.txt b/CMakeLists.txt index 08ba15522..aca18eb92 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -351,14 +351,10 @@ list(APPEND YAP_SYSTEM_OPTIONS big_numbers) -if (GMP_FOUND) +if (GMP_INCLUDE_DIRS) #config.h needs this (TODO: change in code latter) include_directories(${GMP_INCLUDE_DIRS}) - check_include_file(gmp.h HAVE_GMP_H) - check_include_file_cxx(gmpxx.h HAVE_GMPXX_H) - - -endif (GMP_FOUND) + endif () if (WITH_READLINE) diff --git a/CXX/yapi.hh b/CXX/yapi.hh index ab84a424b..599ae7cf1 100755 --- a/CXX/yapi.hh +++ b/CXX/yapi.hh @@ -16,7 +16,7 @@ extern "C" { #include "YapConfig.h" } -#if HAVE_GMPXX_H +#if HAVE_GMPXX_H || defined(__ANDROID__) #include #elif HAVE_GMP_H #include diff --git a/H/Yapproto.h b/H/Yapproto.h index 9c7fc5bfe..e7f0867ed 100755 --- a/H/Yapproto.h +++ b/H/Yapproto.h @@ -470,7 +470,7 @@ extern void Yap_InitAbsmi(void); extern void Yap_InitUnify(void); extern void Yap_TrimTrail(void); extern int Yap_Unifiable(Term d0, Term d1); -extern int Yap_IUnify(register CELL d0, register CELL d1); +extern int Yap_IUnify( CELL d0, CELL d1); /* userpreds.c */ extern void Yap_InitUserCPreds(void); diff --git a/config.h.cmake b/config.h.cmake index c72a3dc99..f24df26d4 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -1884,7 +1884,9 @@ signal. */ #endif /* use bignums/rationals in YAP code. */ -#ifndef USE_GMP +#if defined( __ANDROID__ ) && !defined(USE_GMP) +#define USE_GMP 1 +#elif !defined(USE_GMP) #define USE_GMP ${GMP_FOUND} #endif diff --git a/packages/swig/android/CMakeLists.txt b/packages/swig/android/CMakeLists.txt index 7a546de3f..868d7fed2 100644 --- a/packages/swig/android/CMakeLists.txt +++ b/packages/swig/android/CMakeLists.txt @@ -1,6 +1,7 @@ # This is a CMake file for SWIG and Android + set (SWIG_CXX_DIR ${YAP_APP_DIR}/src/generated/jni) FILE( MAKE_DIRECTORY ${YAP_APP_DIR}/src/generated/java/pt/up/yap/lib ) FILE( MAKE_DIRECTORY ${YAP_APP_DIR}/src/generated/assets) FILE( MAKE_DIRECTORY ${YAP_APP_DIR}/src/generated/jni) @@ -16,42 +17,43 @@ FILE( MAKE_DIRECTORY ${YAP_APP_DIR}/src/generated/jni) set (GMP_INCLUDE_DIRS ${GMP_ROOT}) set (GMP_LIBRARIES ${GMP_ROOT}/libgmp.so) - - add_custom_target (pllib - COMMAND ${CMAKE_COMMAND} -E make_directory ${YAP_INSTALL_DATADIR} - COMMAND ${CMAKE_COMMAND} -E copy ${pl_library} ${YAP_INSTALL_DATADIR} - COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/android.yap ${YAP_INSTALL_DATADIR} - DEPENDS ${pl_library} -) - - add_custom_target (pllibpl - COMMAND ${CMAKE_COMMAND} -E make_directory ${YAP_INSTALL_DATADIR}/pl - COMMAND ${CMAKE_COMMAND} -E copy ${pl_boot_library} ${YAP_INSTALL_DATADIR}/pl -DEPENDS pllib ${pl_boot_library} - ) - add_custom_target (pllibos ALL - COMMAND ${CMAKE_COMMAND} -E make_directory ${YAP_INSTALL_DATADIR}/os - COMMAND ${CMAKE_COMMAND} -E copy ${pl_os_library} ${YAP_INSTALL_DATADIR}/os -DEPENDS pllibpl ${pl_os_library} - ) - - add_custom_command (OUTPUT ${CMAKE_SWIG_OUTPUT}/swig_streamer.cpp - COMMAND ${SWIG_EXECUTABLE} -c++ -java -package ${SWIG_MODULE_NAME} -O -outdir ${CMAKE_SWIG_OUTDIR} -addextern -I${CMAKE_CURRENT_SOURCE_DIR} -o ${CMAKE_SWIG_OUTPUT}/swig_streamer.cpp -oh ${CMAKE_SWIG_OUTPUT}/swig_streamer.hh streamer.i - DEPENDS streamer.i - ) - - add_custom_command (OUTPUT ${CMAKE_SWIG_OUTPUT}/yap_swig.cpp - COMMAND ${SWIG_EXECUTABLE} -c++ -java -package ${SWIG_MODULE_NAME} -O -outdir ${CMAKE_SWIG_OUTDIR} -addextern -I${CMAKE_SOURCE_DIR}/CXX -I${CMAKE_SOURCE_DIR}/include -I${CMAKE_SOURCE_DIR}/H -I${CMAKE_SOURCE_DIR}/os -I${CMAKE_SOURCE_DIR}/OPTYap -I${CMAKE_BINARY_DIR} -I${GMP_INCLUDE_DIRS} -DX_API="" -o ${CMAKE_SWIG_OUTPUT}/yap_swig.cpp -oh ${CMAKE_SWIG_OUTPUT}/yap_swig.hh ${SWIG_SOURCES} - DEPENDS pllibos ${SWIG_SOURCES} YAP++) - +# +# add_custom_target (pllib +# COMMAND ${CMAKE_COMMAND} -E make_directory ${YAP_INSTALL_DATADIR} +# COMMAND ${CMAKE_COMMAND} -E copy ${pl_library} ${YAP_INSTALL_DATADIR} +# COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/android.yap ${YAP_INSTALL_DATADIR} +# DEPENDS ${pl_library} +#) +# +# add_custom_target (pllibpl +# COMMAND ${CMAKE_COMMAND} -E make_directory ${YAP_INSTALL_DATADIR}/pl +# COMMAND ${CMAKE_COMMAND} -E copy ${pl_boot_library} ${YAP_INSTALL_DATADIR}/pl +#DEPENDS pllib ${pl_boot_library} +# ) +# add_custom_target (pllibos ALL +# COMMAND ${CMAKE_COMMAND} -E make_directory ${YAP_INSTALL_DATADIR}/os +# COMMAND ${CMAKE_COMMAND} -E copy ${pl_os_library} ${YAP_INSTALL_DATADIR}/os +#DEPENDS pllibpl ${pl_os_library} +# ) +# +# add_custom_command (OUTPUT ${CMAKE_SWIG_OUTPUT}/swig_streamer.cpp +# COMMAND ${SWIG_EXECUTABLE} -c++ -java -package ${SWIG_MODULE_NAME} -O -outdir ${CMAKE_SWIG_OUTDIR} -addextern -I${CMAKE_CURRENT_SOURCE_DIR} -o ${CMAKE_SWIG_OUTPUT}/swig_streamer.cpp -oh ${CMAKE_SWIG_OUTPUT}/swig_streamer.hh streamer.i +# DEPENDS streamer.i +# ) +# +# add_custom_command (OUTPUT ${CMAKE_SWIG_OUTPUT}/yap_swig.cpp +# COMMAND ${SWIG_EXECUTABLE} -c++ -java -package ${SWIG_MODULE_NAME} -O -outdir ${CMAKE_SWIG_OUTDIR} -addextern -I${CMAKE_SOURCE_DIR}/CXX -I${CMAKE_SOURCE_DIR}/include -I${CMAKE_SOURCE_DIR}/H -I${CMAKE_SOURCE_DIR}/os -I${CMAKE_SOURCE_DIR}/OPTYap -I${CMAKE_BINARY_DIR} -I${GMP_INCLUDE_DIRS} -DX_API="" -o ${CMAKE_SWIG_OUTPUT}/yap_swig.cpp -oh ${CMAKE_SWIG_OUTPUT}/yap_swig.hh ${SWIG_SOURCES} +# DEPENDS pllibos ${SWIG_SOURCES} YAP++) +# add_library(YAPJava OBJECT - ${CMAKE_SWIG_OUTPUT}/swig_streamer.cpp - ${CMAKE_SWIG_OUTPUT}/yap_swig.cpp + ${SWIG_CXX_DIR}/streamer_swig.cxx + ${SWIG_CXX_DIR}/yapi_swig.cxx streamer.cpp - ) + ) + set_target_properties(YAPJava PROPERTIES LINKER_LANGUAGE CXX) # GMP_FOUND - true if GMP/MPIR was found # GMP_INCLUDE_DIRS - include search path