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