Changeset: f6bbd37abf23 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f6bbd37abf23
Added Files:
        clients/CMakeLists.txt
        clients/mapiclient/CMakeLists.txt
        clients/mapilib/CMakeLists.txt
        common/CMakeLists.txt
        common/options/CMakeLists.txt
        common/stream/CMakeLists.txt
        common/utils/CMakeLists.txt
        gdk/CMakeLists.txt
Modified Files:
        CMakeLists.txt
Branch: cmake-fun
Log Message:

Replace PkgConfig dependency checks with Cmake ones. Mapilib, mcient and GDK 
compile.


diffs (truncated from 563 to 300 lines):

diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,9 +1,15 @@
+#[[
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0.  If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# Copyright 1997 - July 2008 CWI, August 2008 - 2019 MonetDB B.V.
+#]]
+
 cmake_minimum_required(VERSION 3.12 FATAL_ERROR)
 
 project(MonetDB C)
 
-# TODO check for AM_CONDITIONAL
-
 set(C_STANDARD_REQUIRED ON)
 set(CMAKE_C_STANDARD 99)
 set(PACKAGE "MonetDB" CACHE STRING "")
@@ -25,6 +31,7 @@ include(CheckCCompilerFlag REQUIRED)
 include(TestBigEndian REQUIRED)
 
 cmake_policy(SET CMP0075 NEW)
+set(CMAKE_POSITION_INDEPENDENT_CODE ON) # TODO check this
 
 # Save default cmake options in the beggining
 set(PREV_CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES}")
@@ -50,22 +57,30 @@ set("HOST" "${CMAKE_SYSTEM_PROCESSOR}-pc
 set(MONETDB_RELEASE "unreleased")
 
 # Change these variables between releases
-set(MONETDB_VERSION "11:34:0")
-set(GDK_VERSION "17:4:0")
-set(MAPI_VERSION "11:0:1")
-set(MONETDB5_VERSION "26:0:1")
-set(STREAM_VERSION "12:1:1")
+set(MONETDB_VERSION_MAJOR "11")
+set(MONETDB_VERSION "${MONETDB_VERSION_MAJOR}.34.0")
+set(VERSION "${MONETDB_VERSION}")
+
+set(GDK_VERSION_MAJOR "17")
+set(GDK_VERSION "${GDK_VERSION_MAJOR}.4.0")
 
-string(REPLACE ":" "." VERSION "${MONETDB_VERSION}")
+set(MAPI_VERSION_MAJOR "11")
+set(MAPI_VERSION "${MAPI_VERSION_MAJOR}.0.1")
+
+set(MONETDB5_VERSION_MAJOR "26")
+set(MONETDB5_VERSION "${MONETDB5_VERSION_MAJOR}.0.1")
+
+set(STREAM_VERSION_MAJOR "12")
+set(STREAM_VERSION "${STREAM_VERSION_MAJOR}.1.1")
 
 # Packaging information
 set(PACKAGE "MonetDB")
 set(PACKAGE_NAME "MonetDB")
 set(PACKAGE_TARNAME "MonetDB")
-set(PACKAGE_STRING "MonetDB ${VERSION}")
+set(PACKAGE_STRING "MonetDB ${MONETDB_VERSION}")
 set(PACKAGE_URL "https://www.monetdb.org/";)
 set(PACKAGE_BUGREPORT "https://bugs.monetdb.org/";)
-set(PACKAGE_VERSION "${VERSION}")
+set(PACKAGE_VERSION "${MONETDB_VERSION}")
 
 # Check current version control revision
 if(EXISTS "${CMAKE_SOURCE_DIR}/.hg")
@@ -87,9 +102,9 @@ endif()
 if("${CMAKE_C_COMPILER_ID}" STREQUAL "Intel")
        set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -no-gcc") # Intel compiler hack
 elseif("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU")
-       set(CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS} 
-D_GNU_SOURCE")
+       add_definitions(-D_GNU_SOURCE)
 endif()
-set(CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS} -D_REENTRANT")
+add_definitions(-D_REENTRANT)
 
 # Set default build options
 if("${CMAKE_BUILD_TYPE}" MATCHES "^Debug|$")
@@ -124,6 +139,8 @@ if(${ENABLE_GDK} STREQUAL "NO")
        elseif(${ENABLE_MONETDB5} STREQUAL "AUTO")
                set(ENABLE_MONETDB5 "NO")
        endif()
+else()
+       set(HAVE_GDK ON)
 endif()
 
 set(ENABLE_SQL "YES" CACHE STRING "Enable support for MonetDB/SQL 
(default=yes)")
@@ -152,6 +169,8 @@ if(${ENABLE_GEOM} STREQUAL "NO")
        elseif(${ENABLE_SHP} STREQUAL "AUTO")
                set(ENABLE_SHP "NO")
        endif()
+else()
+       set(HAVE_GEOM ON)
 endif()
 
 set(ENABLE_EMBEDDED "NO" CACHE STRING "Enable support for running MonetDB as a 
library (default=no)")
@@ -655,6 +674,9 @@ endif()
 if(NOT ENABLE_TESTING STREQUAL "NO" AND NOT HAVE_PYTHON2 AND NOT HAVE_PYTHON3)
        set(ENABLE_TESTING "NO")
 endif()
+if(NOT ${ENABLE_TESTING} STREQUAL "NO")
+       set(HAVE_TESTING ON)
+endif()
 
 find_package(BISON)
 if(BISON_FOUND)
@@ -736,8 +758,12 @@ if(NOT ${WITH_LZ4} STREQUAL "NO")
        endif()
 endif()
 
-# use CMAKE_DL_LIBS for dl
-# for math library, just a check will do
+if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
+       set(MATH_LIBS "m")
+endif()
+if(UNIX)
+       set(DL_LIBS "${CMAKE_DL_LIBS}")
+endif()
 
 # Malloc libs
 set(CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES};umem")
@@ -796,6 +822,7 @@ if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Wi
                set(CMAKE_REQUIRED_LINK_OPTIONS 
"${PREV_CMAKE_REQUIRED_LINK_OPTIONS}")
        endif()
        if(HAVE_PTHREAD_H)
+               set(PTHREAD_LIBRARIES "pthread")
                set(HAVE_LIBPTHREAD ON)
        else()
                message(FATAL_ERROR "MonetDB requires libpthread on UNIX 
systems")
@@ -805,7 +832,7 @@ endif()
 # Readline libs
 set(READLINE_INCS "")
 set(READLINE_LIBS "")
-set(READLINE_LIBRARIES "")
+set(READLINE_LIBRARIES )
 set(WITH_READLINE "AUTO" CACHE STRING "Readline library is installed in DIR") 
# Check with HAVE_LIBREADLINE
 if(NOT ${WITH_READLINE} STREQUAL "NO")
        if(NOT ${WITH_READLINE} MATCHES "^AUTO|YES$")
@@ -818,17 +845,17 @@ if(NOT ${WITH_READLINE} STREQUAL "NO")
        set(CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES};readline")
        check_symbol_exists("readline" 
"stdio.h;readline/readline.h;readline/history.h" HAVE_LIBREADLINE)
        if(HAVE_LIBREADLINE)
-               set(READLINE_LIBRARIES "${READLINE_LIBRARIES} readline")
+               list(APPEND  READLINE_LIBRARIES readline)
        else()
                set(CMAKE_REQUIRED_LIBRARIES 
"${CMAKE_REQUIRED_LIBRARIES};termcap")
                check_symbol_exists("rl_history_search_forward" 
"stdio.h;readline/readline.h;readline/history.h" HAVE_LIBREADLINE)
                if(HAVE_LIBREADLINE)
-                       set(READLINE_LIBRARIES "${READLINE_LIBRARIES} termcap")
+                       list(APPEND READLINE_LIBRARIES termcap)
                else()
                        set(CMAKE_REQUIRED_LIBRARIES 
"${PREV_CMAKE_REQUIRED_LIBRARIES};readline;ncurses")
                        check_symbol_exists("rl_reverse_search_history" 
"stdio.h;readline/readline.h;readline/history.h" HAVE_LIBREADLINE)
                        if(HAVE_LIBREADLINE)
-                               set(READLINE_LIBRARIES "${READLINE_LIBRARIES} 
ncurses")
+                               list(APPEND READLINE_LIBRARIES ncurses)
                        elseif(${WITH_READLINE} STREQUAL "YES")
                                message(FATAL_ERROR "Readline library not 
found")
                        else()
@@ -904,7 +931,7 @@ endif()
 
 # OpenSSL or CommonCrypto library
 set(OPENSSL_INCS "")
-set(OPENSSL_LIBS "")
+set(OPENSSL_LIBRARIES "")
 if(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
        set(HAVE_COMMONCRYPTO ON)
        set(CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES};crypto") # 
TODO test this
@@ -917,7 +944,7 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin
        check_symbol_exists("CC_SHA384_Update" "CommonCrypto/CommonDigest.h" 
HAVE_SHA384_UPDATE)
        check_symbol_exists("CC_SHA512_Update" "CommonCrypto/CommonDigest.h" 
HAVE_SHA512_UPDATE)
 else()
-       set(WITH_OPENSSL "YES" CACHE STRING "Include OpenSSL support 
(default=yes)") # Check with OPENSSL_FOUND
+       set(WITH_OPENSSL "YES" CACHE STRING "Include OpenSSL support 
(default=yes)") # Check with OPENSSL_FOUND, OPENSSL_INCS, OPENSSL_LIBRARIES
        if(NOT ${WITH_OPENSSL} STREQUAL "NO")
                find_package(OpenSSL)
 
@@ -925,7 +952,7 @@ else()
                        message(STATUS "openssl library found")
                        set(HAVE_OPENSSL ON)
                        set(OPENSSL_INCS "${OPENSSL_INCLUDE_DIR}")
-                       set(OPENSSL_LIBS "${OPENSSL_CRYPTO_LIBRARY}")
+                       set(OPENSSL_LIBRARIES "${OPENSSL_CRYPTO_LIBRARY}")
 
                        if(MSVC)
                                set(HAVE_MD5_UPDATE ON)
@@ -1057,7 +1084,7 @@ endif()
 
 set(WITH_CURL "AUTO" CACHE STRING "Include cURL support (default=auto)") # 
Check with CURL_FOUND
 if(NOT ${WITH_CURL} STREQUAL "NO")
-       pkg_search_module(CURL NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH libcurl)
+       include(FindCURL)
 
        if(CURL_FOUND)
                message(STATUS "libcurl library found")
@@ -1071,12 +1098,12 @@ endif()
 
 set(WITH_ZLIB "AUTO" CACHE STRING "Include zlib support (default=auto)") # 
Check with ZLIB_FOUND
 if(NOT ${WITH_ZLIB} STREQUAL "NO")
-       pkg_search_module(ZLIB NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH zlib)
+       include(FindZLIB)
 
        if(ZLIB_FOUND)
                message(STATUS "zlib library found")
                set(HAVE_LIBZ ON)
-       elseif(${WITH_CURL} STREQUAL "YES")
+       elseif(${WITH_ZLIB} STREQUAL "YES")
                message(FATAL_ERROR "zlib library not found")
        else()
                message(WARN " zlib library not found")
@@ -1085,7 +1112,7 @@ endif()
 
 set(WITH_LIBLZMA "AUTO" CACHE STRING "Include liblzma support (default=auto)") 
# Check with LIBLZMA_FOUND
 if(NOT ${WITH_LIBLZMA} STREQUAL "NO")
-       pkg_search_module(LIBLZMA NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH 
liblzma)
+       include(FindLibLZMA)
 
        if(LIBLZMA_FOUND)
                message(STATUS "liblzma library found")
@@ -1300,7 +1327,9 @@ if(NOT ${ENABLE_ODBC} STREQUAL "NO")
                        set(SIZEOF_SQLWCHAR ${SIZEOF_SQLWCHAR})
                endif()
 
-               if(NOT HAVE_UNIXODBC)
+               if(HAVE_UNIXODBC)
+                       set(HAVE_ODBC YES)
+               else()
                        if(${WITH_UNIXODBC} STREQUAL "YES")
                                message(FATAL_ERROR "unixODBC library required 
for ODBC driver")
                        else()
@@ -1452,16 +1481,16 @@ if(NOT HAVE_GEOS_LIB)
        if(${ENABLE_GEOM} STREQUAL "YES")
                message(FATAL_ERROR "geos library required for geom module")
        else()
-               set(ENABLE_GEOM "NO")
+               set(HAVE_GEOM OFF)
        endif()
 endif()
 
 set(WITH_GDAL "AUTO" CACHE STRING "Include gdal support (default=auto)") # 
Check with GDAL_FOUND
 if(${WITH_GDAL} STREQUAL "NO")
-       if(${ENABLE_GEOM} STREQUAL "YES")
+       if(HAVE_GEOM)
                message(FATAL_ERROR "geom module required for gdal")
        else()
-               set(ENABLE_GEOM "NO")
+               set(HAVE_GEOM OFF)
        endif()
        if(${ENABLE_SHP} STREQUAL "YES")
                message(FATAL_ERROR "geom module required for shp")
@@ -1471,7 +1500,7 @@ if(${WITH_GDAL} STREQUAL "NO")
 endif()
 
 if(NOT ${WITH_GDAL} STREQUAL "NO")
-       pkg_search_module(GDAL NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH gdal)
+       include(FindGDAL)
 
        if(GDAL_FOUND)
                message(STATUS "gdal library found")
@@ -1627,14 +1656,14 @@ check_include_file("uuid/uuid.h" HAVE_UU
 check_include_file("winsock.h" HAVE_WINSOCK_H)
 
 # Socket libraries
-set(SOCKET_LIBRARIES "")
+set(SOCKET_LIBRARIES )
 check_symbol_exists("gethostbyname" "netdb.h;sys/socket.h" HAVE_GETHOSTBYNAME)
 if(NOT HAVE_GETHOSTBYNAME)
        message(STATUS "Trying to find gethostbyname by linking to nsl")
        set(CMAKE_REQUIRED_LIBRARIES "${PREV_CMAKEEQUIRED_LIBRARIES};nsl")
        check_symbol_exists("gethostbyname" "netdb.h;sys/socket.h" 
HAVE_GETHOSTBYNAME)
        if(HAVE_GETHOSTBYNAME)
-               set(SOCKET_LIBRARIES "${SOCKET_LIBRARIES} nsl")
+               list(APPEND SOCKET_LIBRARIES nsl)
        else()
                message(FATAL_ERROR "Could not find gethostbyname symbol")
        endif()
@@ -1647,7 +1676,7 @@ if(NOT HAVE_HSTERROR)
        set(CMAKE_REQUIRED_LIBRARIES "${PREV_CMAKE_REQUIRED_LIBRARIES};resolv")
        check_symbol_exists("hstrerror" "netdb.h;sys/socket.h" HAVE_HSTERROR)
        if(HAVE_HSTERROR)
-               set(SOCKET_LIBRARIES "${SOCKET_LIBRARIES} resolv")
+               list(APPEND SOCKET_LIBRARIES resolv)
        else()
                message(FATAL_ERROR "Could not find hstrerror symbol")
        endif()
@@ -1660,7 +1689,7 @@ if(NOT HAVE_SETSOCKOPT)
        set(CMAKE_REQUIRED_LIBRARIES "${PREV_CMAKE_REQUIRED_LIBRARIES};socket")
        check_symbol_exists("setsockopt" "sys/types.h;sys/socket.h" 
HAVE_SETSOCKOPT)
        if(HAVE_SETSOCKOPT)
-               set(SOCKET_LIBRARIES "${SOCKET_LIBRARIES} socket")
+               list(APPEND SOCKET_LIBRARIES socket)
        else()
                message(FATAL_ERROR "Could not find setsockopt symbol")
        endif()
@@ -1673,18 +1702,18 @@ if(NOT HAVE_GETADDRINFO)
        set(CMAKE_REQUIRED_LIBRARIES "${PREV_CMAKE_REQUIRED_LIBRARIES};socket")
        check_symbol_exists("getaddrinfo" "sys/types.h;sys/socket.h;netdb.h" 
HAVE_GETADDRINFO)
        if(HAVE_GETADDRINFO)
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to