diff --git a/CMakeLists.txt b/CMakeLists.txt index 90bef4b2d..8b408c77b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,6 +12,7 @@ include(CMakeToolsHelpers OPTIONAL) project( YAP ) +include(FeatureSummary) set(YAP_APP_DIR "${CMAKE_SOURCE_DIR}/../..") cmake_policy(VERSION 3.4) @@ -29,7 +30,7 @@ include(CheckTypeSize) include(CMakeDependentOption) include(MacroOptionalAddSubdirectory) include(MacroOptionalFindPackage) -include(MacroLogFeature) +include(FeatureSummary) include(FindPackageHandleStandardArgs) include (GNUInstallDirs) @@ -93,9 +94,6 @@ OPTION (WITH_SWIG " Enable SWIG interfaces to foreign languages" ON) IF (WITH_SWIG) find_host_package (SWIG) - macro_log_feature (SWIG_FOUND "Swig" - "Use SWIG Interface Generator " - "http://www.swig.org" ON) ENDIF (WITH_SWIG) option (WITH_PYTHON @@ -193,3 +191,7 @@ if (PYTHONLIBS_FOUND AND SWIG_FOUND) endif() include(Config NO_POLICY_SCOPE) + +feature_summary(WHAT ENABLED_FEATURES DISABLED_FEATURES + INCLUDE_QUIET_PACKAGES +) diff --git a/JIT/CMakeLists.txt b/JIT/CMakeLists.txt index a2797c26c..fe73e70d7 100644 --- a/JIT/CMakeLists.txt +++ b/JIT/CMakeLists.txt @@ -51,8 +51,6 @@ set(LIBJIT_FULL_VERSION # multiples times is the approach recommended in the docs. macro_optional_find_package (LLVM OFF) -macro_log_feature (LLVM_FOUND "LLVM JIT generator" -"The LLVM Compiler Infrastructure" "http://www.llvm.org") set (YAP_JIT ${LLVM_FOUND} SCOPE GLOBAL) diff --git a/Packages.cmake b/Packages.cmake index 8e6e73153..3872dbc5c 100644 --- a/Packages.cmake +++ b/Packages.cmake @@ -1,7 +1,3 @@ -macro_log_feature (PYTHONLIBS_FOUND "Python" - "Use Python System" - "http://www.python.org" FALSE ) - message(STATUS "Building YAP packages version ${YAP_VERSION}") @@ -29,6 +25,8 @@ OPTION (WITH_CPLINT " Enable the cplint probabilistic language" ON) OPTION (WITH_HORUS " Enable the CLPBN and PFL probabilistic languages" ON) +OPTION (WITH_HORUS " Enable documentation, requires doxygen-yap" ON) + IF (WITH_CLPBN) add_subDIRECTORY (packages/CLPBN) ENDIF(WITH_CLPBN) diff --git a/Threads.cmake b/Threads.cmake index 09834117f..180cb6f8c 100644 --- a/Threads.cmake +++ b/Threads.cmake @@ -1,9 +1,7 @@ macro_optional_find_package (Threads OFF) -macro_log_feature (THREADS_FOUND "Threads Support" - "GNU Threads Library (or similar)" - "http://www.gnu.org/software/threads") + if (WITH_Threads) # # CMAKE_THREAD_LIBS_INIT - the thread library diff --git a/cmake/Config.cmake b/cmake/Config.cmake index 9207c0e71..9c69bc23b 100644 --- a/cmake/Config.cmake +++ b/cmake/Config.cmake @@ -265,6 +265,7 @@ check_symbol_exists(flsl HAVE_FLSL) check_symbol_exists(flsll HAVE_FLSLL) check_function_exists(fmemopen HAVE_FMEMOPEN) check_function_exists(fpclass HAVE_FPCLASS) +check_function_exists(fpurge HAVE_FPURGE) check_function_exists(ftime HAVE_FTIME) check_function_exists(ftruncate HAVE_FTRUNCATE) check_function_exists(funopen HAVE_FUNOPEN) diff --git a/cmake/MacroLogFeature.cmake b/cmake/MacroLogFeature.cmake index 01924ad5e..df50a31fe 100644 --- a/cmake/MacroLogFeature.cmake +++ b/cmake/MacroLogFeature.cmake @@ -1,6 +1,6 @@ # This file defines the Feature Logging macros. # -# MACRO_LOG_FEATURE(VAR FEATURE DESCRIPTION URL [REQUIRED [MIN_VERSION [COMMENTS]]]) +# (VAR FEATURE DESCRIPTION URL [REQUIRED [MIN_VERSION [COMMENTS]]]) # Logs the information so that it can be displayed at the end # of the configure run # VAR : TRUE or FALSE, indicating whether the feature is supported diff --git a/cmake/Threads.cmake b/cmake/Threads.cmake index 09834117f..84634f2ed 100644 --- a/cmake/Threads.cmake +++ b/cmake/Threads.cmake @@ -1,9 +1,6 @@ macro_optional_find_package (Threads OFF) -macro_log_feature (THREADS_FOUND "Threads Support" - "GNU Threads Library (or similar)" - "http://www.gnu.org/software/threads") if (WITH_Threads) # # CMAKE_THREAD_LIBS_INIT - the thread library diff --git a/cmake/cudd.cmake b/cmake/cudd.cmake index 5e0768b26..ab7f16879 100644 --- a/cmake/cudd.cmake +++ b/cmake/cudd.cmake @@ -10,9 +10,6 @@ find_package(CUDD) # CUDD_LIBRARIES - Link these to use 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) diff --git a/cmake/java.cmake b/cmake/java.cmake index ffc7fa902..470a81e6b 100644 --- a/cmake/java.cmake +++ b/cmake/java.cmake @@ -8,9 +8,7 @@ find_package(Java 1.5 COMPONENTS Runtime Development) # find_package(Java COMPONENTS Development) # find_package(Java COMPONENTS Runtime) #find_package(JavaLibs) -macro_log_feature (Java_Development_FOUND "Java" - "Use Java System" - "http://www.java.org" FALSE) + if (Java_Development_FOUND) diff --git a/config.h.cmake b/config.h.cmake index a415ceb02..2ae0c048e 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -421,6 +421,11 @@ function. */ #cmakedefine HAVE_FPCLASS ${HAVE_FPCLASS} #endif +/* Define to 1 if you have the `fpurge' function. */ +#ifndef HAVE_FPURGE +#cmakedefine HAVE_FPURGE ${HAVE_FPURGE} +#endif + /* Define to 1 if you have the header file. */ #ifndef HAVE_FPU_CONTROL_H #cmakedefine HAVE_FPU_CONTROL_H ${HAVE_FPU_CONTROL_H} diff --git a/console/terminal/CMakeLists.txt b/console/terminal/CMakeLists.txt index 4272f6b76..b143182da 100644 --- a/console/terminal/CMakeLists.txt +++ b/console/terminal/CMakeLists.txt @@ -12,9 +12,6 @@ if (QTCONSOLE) macro_optional_find_package(Qt5Core on) - macro_log_feature (Qt5Widgets_FOUND "QT GUI Libraries" - "The QT Project" "http://www.qt-project.org") - endif(QTCONSOLE) diff --git a/libYap.cmake b/libYap.cmake index 5f48bfdde..fab35282f 100644 --- a/libYap.cmake +++ b/libYap.cmake @@ -63,10 +63,7 @@ include_directories (CXX ${CMAKE_SOURCE_DIR}/../generated/src/jni) endif() find_package (GMP) -macro_log_feature (GMP_FOUND - "GNU libgmp (in some cases MPIR" - "GNU big integers and rationals" - "http://gmplib.org") + list(APPEND YAP_SYSTEM_OPTIONS big_numbers) if (GMP_FOUND) diff --git a/library/lammpi/CMakeLists.txt b/library/lammpi/CMakeLists.txt index 243500100..1ffa90d44 100644 --- a/library/lammpi/CMakeLists.txt +++ b/library/lammpi/CMakeLists.txt @@ -3,10 +3,7 @@ set (MPI_SOURCES hash.c prologterms2c.c yap_mpi.c) macro_optional_find_package(MPI ON) - macro_log_feature (MPI_C_FOUND "Mpi" - "Use Mpi System" - "http://www.mpi.org" FALSE) - + if (MPI_C_FOUND) # === Variables === # diff --git a/library/matlab/CMakeLists.txt b/library/matlab/CMakeLists.txt index 3ae50b9ab..4cda21568 100644 --- a/library/matlab/CMakeLists.txt +++ b/library/matlab/CMakeLists.txt @@ -1,7 +1,5 @@ macro_optional_find_package (Matlab OFF) -macro_log_feature (MATLAB_FOUND "matlab" - "MATLAB A Language for Technical Computing" - "http://matlab.com") + if (MATLAB_FOUND) # MATLAB_INCLUDE_DIR: include path for mex.h, engine.h # MATLAB_LIBRARIES: required libraries: libmex, etc diff --git a/library/system/CMakeLists.txt b/library/system/CMakeLists.txt index 5eb2182cf..22df2bb74 100644 --- a/library/system/CMakeLists.txt +++ b/library/system/CMakeLists.txt @@ -16,10 +16,8 @@ if (NOT ANDROID AND WITH_OPENSSL) # but right now Open SSL is not supported enough. # find_package (OpenSSL) - macro_log_feature (OPENSSL_FOUND - OpenSLL - "Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols" - "https://www.openssl.org/") + + if (OPENSSL_FOUND) include_directories (${OPENSSL_INCLUDE_DIR}) target_link_libraries(${TARGET} ${OPENSSL_LIBRARIES}) diff --git a/os/CMakeLists.txt b/os/CMakeLists.txt index 480c79e45..782d26576 100644 --- a/os/CMakeLists.txt +++ b/os/CMakeLists.txt @@ -84,10 +84,7 @@ include(CheckVariableExists) if (WITH_READLINE) macro_optional_find_package (Readline ON) - macro_log_feature (READLINE_FOUND "libreadline" - "Readline line editing library" - "http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html") - + if (READLINE_FOUND) # - Find the readline library # This module defines diff --git a/packages/CMakeLists.txt b/packages/CMakeLists.txt index a35a1a0f5..6f7366f73 100644 --- a/packages/CMakeLists.txt +++ b/packages/CMakeLists.txt @@ -4,9 +4,6 @@ #CHECK: GECODE macro_optional_find_package (Gecode ON) -macro_log_feature (GECODE_FOUND "libgecode" - "Use Generic Constraint Development Environment (GECODE) library" - "http://www.gecode.org" FALSE) if (GECODE_FOUND) #DEFINES: diff --git a/packages/bdd/trie_sp.yap b/packages/bdd/trie_sp.yap index d12b1f39b..219612db4 100644 --- a/packages/bdd/trie_sp.yap +++ b/packages/bdd/trie_sp.yap @@ -34,9 +34,8 @@ extract_vars((_-V).MapList, V.Vs) :- complex_to_andor(empty, Map, Map, 0). complex_to_andor([list(Els)], Map0, MapF, Tree) :- !, -complex_to_andor(Els, Map0, MapF, Tree). + complex_to_andor(Els, Map0, MapF, Tree). complex_to_andor([endlist|_], Map, Map, 1) :- !. - El1 == endlist, !. complex_to_andor([El1,El2|Els], Map0, MapF, or(T1,T2)) :- !, complex_to_and(El1, Map0, MapI, T1), complex_to_andor([El2|Els], MapI, MapF, T2). @@ -45,8 +44,9 @@ complex_to_andor([Els], Map0, MapF, V) :- complex_to_and(int(A1,[endlist]), Map0, MapF, V) :- !, check(Map0, A1, V, MapF). -complex_to_and(atom(true,[endlist]), Map0, MapF, 1) :- !. +complex_to_and(atom(true,[endlist]), Map, Map, 1) :- !. complex_to_and(atom(A1,[endlist]), Map0, MapF, V) :- !, + check(Map0, A1, V, MapF). complex_to_and(functor(not,1,[int(A1,[endlist])]), Map0, MapF, not(V)) :- !, check(Map0, A1, V, MapF). complex_to_and(functor(not,1,[atom(A1,[endlist])]), Map0, MapF, not(V)) :- !, @@ -77,7 +77,6 @@ complex_to_and(functor(not,1,[int(A1,Els)|More]), Map0, MapF, or(NOTV1,O2)) :- complex_to_and(functor(not,1,More), MapI2, MapF, O2). complex_to_and(functor(not,1,[atom(A1,Els)|More]), Map0, MapF, or(NOTV1,O2)) :- check(Map0, A1, V, MapI), - check(Map0, A1, V, MapF). (Els == [endlist] -> NOTV1 = not(V), @@ -96,7 +95,6 @@ tabled_complex_to_andor(IN, Map, Map, Tab, Tab, 1) :- IN = !. tabled_complex_to_andor([Els], Map0, MapF, Tab0, TabF, V) :- tabled_complex_to_and(Els, Map0, MapF, Tab0, TabF, V). - rb_insert(Tab0, IN, OUT, Tab1), tabled_complex_to_andor([El1,Dl2], Map0, MapF, Tab0, TabF, or(T1,T2)) :- tabled_complex_to_and(El1, Map0, MapI, Tab1, TabI, T1), tabled_complex_to_andor(El2.Els, MapI, MapF, TabI, TabF, T2). diff --git a/packages/cuda/CMakeLists.txt b/packages/cuda/CMakeLists.txt index 816f1e2b8..bbdcc40dc 100644 --- a/packages/cuda/CMakeLists.txt +++ b/packages/cuda/CMakeLists.txt @@ -1,9 +1,6 @@ #CHECK: CUDA macro_optional_find_package (CUDA ON) -macro_log_feature (CUDA_FOUND "CUDA" - "CUDA GGPU Programming " - "http://www.nvidia.com/object/cuda_home_new.html" FALSE) if (CUDA_FOUND) # CUDA_VERSION_MAJOR -- The major version of cuda as reported by nvcc. diff --git a/packages/gecode/CMakeLists.txt b/packages/gecode/CMakeLists.txt index d2514331b..46b7b4410 100644 --- a/packages/gecode/CMakeLists.txt +++ b/packages/gecode/CMakeLists.txt @@ -1,12 +1,8 @@ -#TODO: change macro_log_feature to check both WITH_{$name} and ${name}_FOUND #TODO: improve FindGecode.cmake to be similar to other Find*.cmake #CHECK: GECODE macro_optional_find_package (Gecode ON) -macro_log_feature (GECODE_FOUND "libgecode" - "Use Generic Constraint Development Environment (GECODE) library" - "http://www.gecode.org" FALSE) if (GECODE_FOUND) #DEFINES: diff --git a/packages/myddas/mysql/CMakeLists.txt b/packages/myddas/mysql/CMakeLists.txt index d8c4be40e..6186d730d 100644 --- a/packages/myddas/mysql/CMakeLists.txt +++ b/packages/myddas/mysql/CMakeLists.txt @@ -12,10 +12,6 @@ macro_optional_find_package(MySQL ON) - macro_log_feature(MYSQL_FOUND "MySQL" - "MYSQL Driver for MYDDAS Data-Base Interface " - "http://www.mysql.org" FALSE) - if (MYSQL_FOUND) # MYSQL_INCLUDE_DIR - where to find mysql.h, etc. # MYSQL_LIBRARIES - List of libraries when using MySQL. diff --git a/packages/myddas/odbc/CMakeLists.txt b/packages/myddas/odbc/CMakeLists.txt index 78be97d4a..e2444b78b 100644 --- a/packages/myddas/odbc/CMakeLists.txt +++ b/packages/myddas/odbc/CMakeLists.txt @@ -9,10 +9,6 @@ set(SO_PATCH 0) macro_optional_find_package(ODBC ON) -macro_log_feature (ODBC_FOUND "Odbc" - "ODBC Driver for MYDDAS Data-Base Interface " - "http://www.odbc.org" FALSE) - if (ODBC_FOUND) # ODBC_INCLUDE_DIRECTORIES, where to find sql.h # ODBC_LIBRARIES, the libraries to link against to use ODBC diff --git a/packages/myddas/postgres/CMakeLists.txt b/packages/myddas/postgres/CMakeLists.txt index 6e12c2c27..8076d919b 100644 --- a/packages/myddas/postgres/CMakeLists.txt +++ b/packages/myddas/postgres/CMakeLists.txt @@ -9,10 +9,6 @@ set(SO_PATCH 0) macro_optional_find_package(PostgreSQL ON) -macro_log_feature (PostgreSQL_FOUND "postgres" - "PostgreSQL Driver for MYDDAS Data-Base Interface " - "http://www.postgres.org" FALSE) - if (PostgreSQL_FOUND) # PostgreSQL_FOUND - Set to true when PostgreSQL is found. # PostgreSQL_INCLUDE_DIRS - Include directories for PostgreSQL diff --git a/packages/myddas/sqlite3/myddas_sqlite3.c b/packages/myddas/sqlite3/myddas_sqlite3.c index d91e72ffc..e38b5bc89 100644 --- a/packages/myddas/sqlite3/myddas_sqlite3.c +++ b/packages/myddas/sqlite3/myddas_sqlite3.c @@ -606,9 +606,9 @@ static Int c_sqlite3_row(USES_REGS1) { break; case SQLITE_BLOB: { size_t bytes = sqlite3_column_bytes(res_set->stmt, i); - tf = Yap_AllocExternalDataInStack(EXTERNAL_BLOB, bytes); - memcpy(ExternalBlobFromTerm(tf), sqlite3_column_blob(res_set->stmt, i), - bytes); + void *pt; + tf = Yap_AllocExternalDataInStack(EXTERNAL_BLOB, bytes, &pt); + memcpy(pt, sqlite3_column_blob(res_set->stmt, i), bytes); } break; case SQLITE_NULL: null_atom[0] = MkIntegerTerm(null_id++); diff --git a/packages/prosqlite/CMakeLists.txt b/packages/prosqlite/CMakeLists.txt index 5fbfff1f4..ffa9058fa 100644 --- a/packages/prosqlite/CMakeLists.txt +++ b/packages/prosqlite/CMakeLists.txt @@ -1,7 +1,4 @@ macro_optional_find_package (Sqlite3 ON) -macro_log_feature (SQLITE3_FOUND "sqlite3" - "SQLITE3 Light Weight Database Manager" - "http://sqlite3.com") if (SQLITE3_FOUND) # SQLITE3_INCLUDE_DIR - Where to find Sqlite 3 header files (directory) # SQLITE3_LIBRARIES - Sqlite 3 libraries diff --git a/packages/raptor/CMakeLists.txt b/packages/raptor/CMakeLists.txt index d628b2237..b709bab7c 100644 --- a/packages/raptor/CMakeLists.txt +++ b/packages/raptor/CMakeLists.txt @@ -15,9 +15,6 @@ IF (NOT YAP_FOUND) ENDIF (NOT YAP_FOUND) macro_optional_find_package (LibXml2 ON) -macro_log_feature (LIBXML2_FOUND "LIBXML2" - "Use XML2 Library" - "http://www.xmlsoft.org" FALSE) IF (LIBXML2_FOUND) # LIBXML2_FOUND - System has LibXml2 # LIBXML2_INCLUDE_DIR - The LibXml2 include directory @@ -75,9 +72,7 @@ endif(WIN32) ENDIF (LIBXML2_FOUND) macro_optional_find_package (RAPTOR ON) -macro_log_feature (RAPTOR_FOUND "RAPTOR" - "Use RAPTOR Library" - "http://www.librdf.org" FALSE) + IF (RAPTOR_FOUND) # RAPTOR_FOUND - system has Raptor # RAPTOR_LIBRARIES - Link these to use Raptor diff --git a/packages/real/CMakeLists.txt b/packages/real/CMakeLists.txt index 894762b2d..137f474d1 100644 --- a/packages/real/CMakeLists.txt +++ b/packages/real/CMakeLists.txt @@ -10,10 +10,6 @@ # macro_optional_find_package (LibR ON) -macro_log_feature (LIBR_FOUND "R" - "Use R Environment" - "http://www.r.org" FALSE) - if (LIBR_FOUND) set (REAL_SOURCES diff --git a/packages/swig/js/CMakeLists.txt b/packages/swig/js/CMakeLists.txt index 49a14b093..b14be6428 100644 --- a/packages/swig/js/CMakeLists.txt +++ b/packages/swig/js/CMakeLists.txt @@ -5,13 +5,7 @@ macro_optional_find_package(Java ON) find_package(Java COMPONENTS Runtime Development) #find_package(Java COMPONENTS Runtime) -macro_log_feature (Java_Development_FOUND "Java" - "Use Java System" - "http://www.java.org" FALSE) macro_optional_find_package(JNI ON) - macro_log_feature (JNI_FOUND "JNI" - "Use Java Native Interface" - "http://www.java.org" FALSE) if (Java_Development_FOUND)