Changeset: 529e39ff077d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=529e39ff077d
Added Files:
        cmake/FindExtraLibraries.cmake
Modified Files:
        CMakeLists.txt
        clients/CMakeLists.txt
        clients/mapiclient/CMakeLists.txt
        clients/odbc/CMakeLists.txt
        cmake/FindLiblas.cmake
        geom/CMakeLists.txt
        geom/monetdb5/CMakeLists.txt
        monetdb5/extras/CMakeLists.txt
        monetdb5/extras/rapi/CMakeLists.txt
        monetdb5/modules/mal/mal_mapi.c
        sql/backends/monet5/UDF/CMakeLists.txt
        sql/backends/monet5/UDF/capi/CMakeLists.txt
        sql/backends/monet5/UDF/pyapi3/CMakeLists.txt
        sql/backends/monet5/vaults/CMakeLists.txt
        sql/backends/monet5/vaults/bam/CMakeLists.txt
        sql/backends/monet5/vaults/fits/CMakeLists.txt
        sql/backends/monet5/vaults/lidar/CMakeLists.txt
        sql/backends/monet5/vaults/netcdf/CMakeLists.txt
        sql/backends/monet5/vaults/shp/CMakeLists.txt
        testing/CMakeLists.txt
        testing/Mtest.py.in
Branch: cmake-fun
Log Message:

Continuing cleanup:

- Moved tests to proper subdirectories.
- Reverted old liblas test.
- Removed unused CROSS_COMPILING conditional in Mtest
- In mal_mapi.c we have to set SOCKLEN to int on Windows because the winsock 
API requires int instead of socklen_t.


diffs (truncated from 2207 to 300 lines):

diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -80,40 +80,49 @@ if(NOT "${CMAKE_C_COMPILER_ID}" MATCHES 
        message(WARNING "Compiler potentially not (correctly) recognized")
 endif()
 
-# Set default build options
-if(NOT CMAKE_BUILD_TYPE)
+if(NOT CMAKE_BUILD_TYPE) # Set default build options
        message(STATUS "Setting build type to Debug as none was selected")
        set(CMAKE_BUILD_TYPE Debug CACHE STRING "The type of build" FORCE)
 endif()
 
-# modules to use
-set(ENABLE_MAPI "YES" CACHE STRING "Enable MAPI (default=YES)")
-if(NOT ${ENABLE_MAPI} STREQUAL "NO")
-       set(HAVE_MAPI ON)
-endif()
-
-set(ENABLE_GDK "YES" CACHE STRING "Enable support for GDK (default=YES)")
-set(ENABLE_MONETDB5 "YES" CACHE STRING "Enable support for MonetDB5 
(default=YES)")
-set(ENABLE_SQL "YES" CACHE STRING "Enable support for MonetDB/SQL 
(default=YES)")
-
+# Extensions to use
+set(ENABLE_CINTEGRATION "AUTO" CACHE STRING "Enable support for C UDFs 
(default=AUTO)")
+set(ENABLE_CONSOLE "YES" CACHE STRING "Enables direct console on the server 
(involves security risks) (default=YES)")
 set(ENABLE_EMBEDDED "NO" CACHE STRING "Enable support for running MonetDB as a 
library (default=NO)") # TODO check this
-if(NOT ${ENABLE_EMBEDDED} STREQUAL "NO")
-       set(HAVE_EMBEDDED ON)
-endif()
-
-set(ENABLE_CONSOLE "YES" CACHE STRING "Enables direct console on the server 
(involves security risks) (default=YES)")
-if(NOT ${ENABLE_CONSOLE} STREQUAL "NO")
-       set(HAVE_CONSOLE ON)
-endif()
+set(ENABLE_FITS "AUTO" CACHE STRING "Enable support for FITS (default=AUTO)") 
# Check with HAVE_FITS
+set(ENABLE_GDK "YES" CACHE STRING "Enable support for GDK (default=YES)")
+set(ENABLE_GEOM "AUTO" CACHE STRING "Enable support for geom module 
(default=AUTO)") # Check with HAVE_GEOM
+set(ENABLE_INT128 "AUTO" CACHE STRING "Enable support for 128-bit integers 
(default=AUTO)")
+set(ENABLE_LIDAR "AUTO" CACHE STRING "Enable support for LiDAR data 
(default=AUTO)") # Check with HAVE_LIDAR
+set(ENABLE_MAPI "YES" CACHE STRING "Enable MAPI (default=YES)")
+set(ENABLE_MONETDB5 "YES" CACHE STRING "Enable support for MonetDB5 
(default=YES)")
+set(ENABLE_NETCDF "AUTO" CACHE STRING "Enable support for netcdf 
(default=AUTO)") # Check with HAVE_NETCDF
+set(ENABLE_ODBC "AUTO" CACHE STRING "Compile the MonetDB ODBC driver 
(default=AUTO)") # Check with HAVE_ODBC
+set(ENABLE_PY3INTEGRATION "AUTO" CACHE STRING "enable support for Python 3 
integration into MonetDB (default=AUTO)") # Check with HAVE_LIBPY3
+set(ENABLE_RINTEGRATION "AUTO" CACHE STRING "Enable support for R integration 
into MonetDB (default=AUTO)") # Check with HAVE_LIBR
+set(ENABLE_SAMTOOLS "AUTO" CACHE STRING "Include Samtools support 
(default=AUTO)") # Check with HAVE_SAMTOOLS
+set(ENABLE_SANITIZER "NO" CACHE STRING "Enable support for the GCC address 
sanitizer (default=NO)")
+set(ENABLE_SHP "AUTO" CACHE STRING "Enable support for ESRI Shapefiles 
(default=AUTO)") # Check with HAVE_SHP
+set(ENABLE_SQL "YES" CACHE STRING "Enable support for MonetDB/SQL 
(default=YES)")
+set(ENABLE_STATIC_ANALYSIS "NO" CACHE STRING "Configure for static code 
analysis (use only if you know what you are doing)")
+set(ENABLE_STRICT "${DFT_STRICT}" CACHE STRING "Enable strict compiler flags 
(default=YES for development sources, NO for tarball instalation)")
+set(ENABLE_TESTING "AUTO" CACHE STRING "Enable support for testing 
(default=AUTO)")
 
-set(ENABLE_STRICT "${DFT_STRICT}" CACHE STRING "Enable strict compiler flags 
(default=YES for development sources, NO for tarball instalation)")
-set(ENABLE_SANITIZER "NO" CACHE STRING "Enable support for the GCC address 
sanitizer (default=NO)")
-set(ENABLE_STATIC_ANALYSIS "NO" CACHE STRING "Configure for static code 
analysis (use only if you know what you are doing)")
-if(NOT ${ENABLE_STATIC_ANALYSIS} STREQUAL "NO")
-       set(STATIC_CODE_ANALYSIS ON)
-endif()
+set(WITH_BZ2 "AUTO" CACHE STRING "Include bz2 support (default=AUTO)") # Check 
with BZip2_FOUND
+set(WITH_CURL "AUTO" CACHE STRING "Include cURL support (default=AUTO)") # 
Check with HAVE_CURL
+set(WITH_LIBLZMA "AUTO" CACHE STRING "Include liblzma support (default=AUTO)") 
# Check with HAVE_LIBLZMA
+set(WITH_LIBXML2 "AUTO" CACHE STRING "Include libxml2 support (default=AUTO)") 
# Check with HAVE_LIBXML
+set(WITH_LZ4 "AUTO" CACHE STRING "Include lz4 library support (default=AUTO)") 
# Check with HAVE_LIBLZ4
+set(WITH_PROJ "AUTO" CACHE STRING "Include proj support (default=AUTO)") # 
Check with HAVE_PROJ
+set(WITH_READLINE "AUTO" CACHE STRING "Include readline support 
(default=AUTO)") # Check with HAVE_LIBREADLINE
+set(WITH_REGEX "PCRE" CACHE STRING "Use either PCRE or POSIX regular 
expressions (default=PCRE if available)") # Check with HAVE_LIBPCRE and 
HAVE_POSIX_REGEX
+set(WITH_SNAPPY "AUTO" CACHE STRING "Include snappy support (default=AUTO)") # 
Check with HAVE_LIBSNAPPY
+set(WITH_UUID "AUTO" CACHE STRING "Include UUID support (default=AUTO)") # 
Check with HAVE_UUID
+set(WITH_VALGRIND "NO" CACHE STRING "Include valgrind support (default=NO)") # 
Check with HAVE_VALGRIND
+set(WITH_ZLIB "AUTO" CACHE STRING "Include zlib support (default=AUTO)") # 
Check with HAVE_LIBZ
 
-set(SOURCE "${CMAKE_SOURCE_DIR}")
+# Instalation directories
+set(PROGRAM_PERMISSIONS_DEFAULT OWNER_WRITE OWNER_READ OWNER_EXECUTE 
GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) # required for some 
instalation files
 if(WIN32)
        string(REPLACE "/" "\\\\" TRIMMED_INSTALL_PREFIX 
"${CMAKE_INSTALL_PREFIX}") # Fix cmake conversions
        set(BINDIR "${CMAKE_INSTALL_PREFIX}/bin")
@@ -147,17 +156,6 @@ else()
        set(PKGCONFIGDIR "${LIBDIR}/pkgconfig")
 endif()
 
-set(PROGRAM_PERMISSIONS_DEFAULT OWNER_WRITE OWNER_READ OWNER_EXECUTE 
GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) # required for some 
instalation files
-
-# password hash algorithm
-set(PASSWORD_BACKEND "SHA512" CACHE STRING "Password hash algorithm, one of 
MD5, SHA1, RIPEMD160, SHA224, SHA256, SHA384, SHA512, defaults to SHA512")
-if(${PASSWORD_BACKEND} MATCHES 
"^MD5|SHA1|RIPEMD160|SHA224|SHA256|SHA384|SHA512$")
-       set(MONETDB5_PASSWDHASH ${PASSWORD_BACKEND})
-       set(MONETDB5_PASSWDHASH_TOKEN ${PASSWORD_BACKEND})
-else()
-       message(FATAL_ERROR "PASSWORD_BACKEND invalid, choose one of MD5, SHA1, 
RIPEMD160, SHA224, SHA256, SHA384, SHA512")
-endif()
-
 if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
        add_compile_definitions(_GNU_SOURCE _XOPEN_SOURCE)
        set(CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS} 
-D_GNU_SOURCE -D_XOPEN_SOURCE") # required for tests
@@ -168,17 +166,17 @@ if(${CMAKE_C_COMPILER_ID} STREQUAL "Inte
                file(READ "${ROOT}/usr/include/math.h" TMPTXT)
                string(FIND "${TMPTXT}" "_LIB_VERSION_TYPE" FOUND_VERSION)
                if(NOT FOUND_VERSION)
-                       set(INTEL_MATH_H_HACK ON)
+                       set(INTEL_MATH_H_HACK ON CACHE INTERNAL "must use intel 
math.h hack")
                endif()
        endif()
-       set(NAN_CANNOT_BE_USED_AS_INITIALIZER ON) # This hack is only required 
by the Intel compiler
+       set(NAN_CANNOT_BE_USED_AS_INITIALIZER ON CACHE INTERNAL "NaN cannot be 
used as an initializer") # This hack is only required by the Intel compiler
 elseif(MSVC)
        set(_Noreturn "__declspec(noreturn)")
        set(__attribute__(a) ON)
        set(restrict "__restrict")
        add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
        if(CMAKE_SIZEOF_VOID_P EQUAL 8)  # Windows 64 bit
-               set(HAVE__MUL128 ON)
+               set(HAVE__MUL128 ON CACHE INTERNAL "mul128 function is 
available")
        endif()
 endif()
 
@@ -222,70 +220,6 @@ if(NOT MSVC)
        endif()
 endif()
 
-include(FindPython3)
-find_package(Python3 COMPONENTS Interpreter Development)
-set(PY3_INCLUDE_DIR "")
-set(PY3_LIBRARIES "")
-set(ENABLE_PY3INTEGRATION "AUTO" CACHE STRING "enable support for Python 3 
integration into MonetDB (default=AUTO)") # Check with HAVE_PYTHON3 and 
HAVE_LIBPY3 for integration
-if(Python3_FOUND)
-       set(PYTHON3_REQUIRED_VERSION "3.5")
-       if("${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}" VERSION_LESS 
${PYTHON3_REQUIRED_VERSION})
-               if("${ENABLE_PY3INTEGRATION}" STREQUAL "YES")
-                       message(FATAL_ERROR "The Python 3 executable is too old 
${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} < 
${PYTHON3_REQUIRED_VERSION}")
-               else()
-                       message(WARNING "The Python 3 executable is too old 
${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} < 
${PYTHON3_REQUIRED_VERSION})")
-               endif()
-       else()
-               set(HAVE_PYTHON3 YES)
-               set(PY3_INCLUDE_DIR "${Python3_INCLUDE_DIRS}")
-               set(PY3_LIBRARIES "${Python3_LIBRARIES}")
-               exec_program("${Python3_EXECUTABLE}" ARGS "-c \"import 
distutils.sysconfig; 
print(distutils.sysconfig.get_python_lib(1,0,'${LIBDIR}'))\"" OUTPUT_VARIABLE 
PYTHON3_LIBDIR RETURN_VALUE PYTHON3_LIBDIR_CODE)
-               if(PYTHON3_LIBDIR AND PYTHON3_LIBDIR_CODE EQUAL 0)
-                       string(LENGTH "${LIBDIR}" LIBDIR_LENGTH)
-                       string(LENGTH "${PYTHON3_LIBDIR}" 
PYTHON3_LIBDIR_PREFIX_LENGTH)
-                       math(EXPR LEN1 "${LIBDIR_LENGTH}+1") # add the / 
separator
-                       string(SUBSTRING "${PYTHON3_LIBDIR}" ${LEN1} -1 
PYTHON_LIBDIR) # remove the prefix
-               else()
-                       message(FATAL_ERROR "Could not find Python 3 library 
directory")
-               endif()
-
-               message(STATUS "Checking for numpy version")
-               exec_program("${Python3_EXECUTABLE}" ARGS "-c \"import numpy; 
print(int(numpy.__version__.split('.').__getitem__(1)) >= 7)\"" OUTPUT_VARIABLE 
NUMPY_OUTPUT RETURN_VALUE NUMPY_RETURN_CODE)
-               exec_program("${Python3_EXECUTABLE}" ARGS "-c \"import numpy; 
print(numpy.get_include())\"" OUTPUT_VARIABLE NUMPY_CPP_FLAGS RETURN_VALUE 
NUMPY_CPP_RC)
-               if(NUMPY_RETURN_CODE EQUAL 0 AND NUMPY_CPP_RC EQUAL 0 AND 
"${NUMPY_OUTPUT}" STREQUAL "True")
-                       set(HAVE_LIBPY3 YES)
-                       set(NUMPY3_INCLUDE_DIR ${NUMPY_CPP_FLAGS})
-                       message(STATUS "numpy version >= 1.7.0 for Python 3 
found")
-               elseif("${ENABLE_PY3INTEGRATION}" STREQUAL "YES")
-                       message(FATAL_ERROR "numpy version >= 1.7.0 required 
for Python 3 integration support")
-               else()
-                       message(STATUS "numpy version >= 1.7.0 required for 
Python 3 integration support")
-               endif()
-       endif()
-elseif("${ENABLE_PY3INTEGRATION}" STREQUAL "YES")
-       message(FATAL_ERROR "A valid Python 3 interpreter is required for 
Python 3 integration support")
-endif()
-
-set(ENABLE_TESTING "AUTO" CACHE STRING "Enable support for testing 
(default=AUTO)")
-if("${ENABLE_TESTING}" STREQUAL "YES" AND NOT HAVE_PYTHON3)
-       message(FATAL_ERROR "A valid Python 3 interpreter is required for 
MonetDB testing tools")
-endif()
-if(NOT "${ENABLE_TESTING}" STREQUAL "NO" AND HAVE_PYTHON3)
-       set(HAVE_TESTING ON)
-endif()
-
-set(ENABLE_CINTEGRATION "AUTO" CACHE STRING "Enable support for C UDFs 
(default=AUTO)")
-if("${ENABLE_CINTEGRATION}" STREQUAL "YES")
-       if(NOT HAVE_PYTHON3)
-               message(FATAL_ERROR "A valid Python 3 interpreter is required 
to compile the C UDFs module")
-       elseif(WIN32)
-               message(FATAL_ERROR "The C UDFs module is not avaiable on 
Windows")
-       endif()
-endif()
-if(NOT "${ENABLE_CINTEGRATION}" STREQUAL "NO" AND HAVE_PYTHON3 AND NOT WIN32)
-       set(HAVE_CUDF ON)
-endif()
-
 if(WIN32)
        set(OS_DIRSEP  "\\\\")
        set(OS_PATHSEP ";")
@@ -310,113 +244,43 @@ set(DIR_SEP_STR  ${OS_DIRSEP})
 set(PATH_SEP     "'${OS_PATHSEP}'")
 set(SO_EXT       "${CMAKE_SHARED_LIBRARY_SUFFIX}")
 
+# We need python3 for the testweb, python udfs and c udfs compilation
+include(FindPython3)
+find_package(Python3 COMPONENTS Interpreter Development)
+if(Python3_FOUND)
+       set(PYTHON3_REQUIRED_VERSION "3.5")
+       if("${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}" VERSION_LESS 
${PYTHON3_REQUIRED_VERSION})
+               message(WARNING "The Python 3 executable is too old 
${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} < 
${PYTHON3_REQUIRED_VERSION}")
+       else()
+               exec_program("${Python3_EXECUTABLE}" ARGS "-c \"import 
distutils.sysconfig; 
print(distutils.sysconfig.get_python_lib(1,0,'${LIBDIR}'))\"" OUTPUT_VARIABLE 
PYTHON3_LIBDIR RETURN_VALUE PYTHON3_LIBDIR_CODE)
+               if(PYTHON3_LIBDIR AND PYTHON3_LIBDIR_CODE EQUAL 0)
+                       string(LENGTH "${LIBDIR}" LIBDIR_LENGTH)
+                       string(LENGTH "${PYTHON3_LIBDIR}" 
PYTHON3_LIBDIR_PREFIX_LENGTH)
+                       math(EXPR LEN1 "${LIBDIR_LENGTH}+1") # add the / 
separator
+                       string(SUBSTRING "${PYTHON3_LIBDIR}" ${LEN1} -1 
PYTHON_LIBDIR) # remove the prefix
+               else()
+                       message(WARNING "Could not find Python 3 library 
directory")
+               endif()
+               set(HAVE_PYTHON3 ON CACHE INTERNAL "python3 is available")
+       endif()
+endif()
+
 # Bison
 find_package(BISON)
 if(NOT BISON_FOUND)
        if(${ENABLE_SQL} STREQUAL "YES")
                message(FATAL_ERROR "MonetDB/SQL requires bison")
-       else()
-               set(ENABLE_SQL "NO")
        endif()
+       set(ENABLE_SQL "NO" CACHE STRING "Bison is required for MonetDB/SQL" 
FORCE)
 endif()
 
 # Iconv
 include(FindIconvMonetDB)
 if(ICONV_FOUND)
-       set(HAVE_ICONV ON)
+       set(HAVE_ICONV ON CACHE INTERNAL "iconv is available")
 else()
-       set(ICONV_INCLUDE_DIR "")
-       set(ICONV_LIBRARIES "")
-endif()
-
-set(WITH_BZ2 "AUTO" CACHE STRING "Include bz2 support (default=AUTO)") # Check 
with BZip2_FOUND
-if(NOT ${WITH_BZ2} STREQUAL "NO")
-       include(FindBZip2)
-
-       if(BZip2_FOUND)
-               set(HAVE_LIBBZ2 ON)
-       elseif(${WITH_BZ2} STREQUAL "YES")
-               message(FATAL_ERROR "bz2 library not found")
-       endif()
-endif()
-if(NOT BZip2_FOUND)
-       set(BZIP2_INCLUDE_DIR "")
-       set(BZIP2_LIBRARIES "")
-endif()
-
-set(WITH_SNAPPY "AUTO" CACHE STRING "Include snappy support (default=AUTO)") # 
Check with HAVE_LIBSNAPPY
-if(NOT ${WITH_SNAPPY} STREQUAL "NO")
-       include(FindSnappy)
-
-       if(SNAPPY_FOUND)
-               set(HAVE_LIBSNAPPY ON)
-       elseif(${WITH_SNAPPY} STREQUAL "YES")
-               message(FATAL_ERROR "snappy library not found")
-       endif()
-endif()
-if(NOT SNAPPY_FOUND)
-       set(SNAPPY_INCLUDE_DIR "")
-       set(SNAPPY_LIBRARIES "")
-endif()
-
-set(WITH_LZ4 "AUTO" CACHE STRING "Include lz4 library support (default=AUTO)") 
# Check with HAVE_LIBLZ4
-if(NOT ${WITH_LZ4} STREQUAL "NO")
-       include(FindLZ4)
-
-       if(LZ4_FOUND)
-               set(LZ4_MINIMUM_VERSION "1.8.0")
-               if(LZ4_VERSION VERSION_LESS "${LZ4_MINIMUM_VERSION}")
-                       if(${WITH_LZ4} STREQUAL "YES")
-                               message(FATAL_ERROR "lz4 library found, but the 
version is too old: ${LZ4_VERSION} < ${LZ4_MINIMUM_VERSION}")
-                       else()
-                               message(STATUS "lz4 library found, but the 
version is too old: ${LZ4_VERSION} < ${LZ4_MINIMUM_VERSION}")
-                       endif()
-               else()
-                       set(HAVE_LIBLZ4 ON)
-               endif()
-       elseif(${WITH_LZ4} STREQUAL "YES")
-               message(FATAL_ERROR "lz4 library not found")
-       endif()
-endif()
-if(NOT HAVE_LIBLZ4)
-       set(LZ4_INCLUDE_DIR "")
-       set(LZ4_LIBRARIES "")
-endif()
-
-# Extra libraries
-set(DL_LIBRARIES "")
-set(KVM_LIBRARIES "")
-set(MATH_LIBRARIES "")
-set(SOCKET_LIBRARIES )
-set(PSAPI_LIBRARIES "")
-if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
-       set(DL_LIBRARIES "${CMAKE_DL_LIBS}")
-endif()
-if(${CMAKE_SYSTEM_NAME} MATCHES "^FreeBSD|DragonFly|NetBSD$") # Warning - I 
checked the man pages and only tested on FreeBSD yet
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to