Changeset: fa0770ab3362 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=fa0770ab3362 Modified Files: CMakeLists.txt cmake/monetdb_config.h.in Branch: cmake-fun Log Message:
Fixed configure file input directives (use cmakedefine), this simplifies CMakeLists.txt file too. diffs (truncated from 1589 to 300 lines): diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,12 +23,11 @@ include(TestLargeFiles REQUIRED) cmake_policy(SET CMP0075 NEW) -function(defineCmacro OPTION VALUE) - set(${OPTION} "#define ${VALUE}" PARENT_SCOPE) -endfunction() - -function(undefineCmacro OPTION) # TODO check this - set(${OPTION} "#undef ${OPTION}" PARENT_SCOPE) +function(MT_clibsToCmake INPUT_INCS OUTPUT_INCS) # Remove -I before the include path + string(LENGTH "${INPUT_INCS}" INPUT_INCS_LENGTH) + string(SUBSTRING "${INPUT_INCS}" 2 ${INPUT_INCS_LENGTH} INPUT_INCS) + string(REPLACE "\ -I" ";" HELPER ${INPUT_INCS}) + set(${OUTPUT_INCS} "${HELPER}" PARENT_SCOPE) endfunction() # set prefix with -DCMAKE_INSTALL_PREFIX=... @@ -36,26 +35,26 @@ endfunction() # set host data string(TOLOWER "${CMAKE_SYSTEM_NAME}" CMAKE_SYSTEM_NAME_LOWER) string(TOLOWER "${CMAKE_C_COMPILER_ID}" CMAKE_C_COMPILER_ID_LOWER) -defineCmacro("HOST" "HOST \"${CMAKE_SYSTEM_PROCESSOR}-pc-${CMAKE_SYSTEM_NAME_LOWER}-${CMAKE_C_COMPILER_ID_LOWER}\"") +set("HOST" "${CMAKE_SYSTEM_PROCESSOR}-pc-${CMAKE_SYSTEM_NAME_LOWER}-${CMAKE_C_COMPILER_ID_LOWER}") # Read libversions file file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/libversions" LIB_VERSIONS) string(REGEX MATCH "GDK_VERSION=[^\ \t\r\n]+" GDK_VERSION ${LIB_VERSIONS}) -string(LENGTH ${GDK_VERSION} GDK_VERSION_LENGTH) -string(SUBSTRING ${GDK_VERSION} 12 GDK_VERSION_LENGTH GDK_VERSION) +string(LENGTH "${GDK_VERSION}" GDK_VERSION_LENGTH) +string(SUBSTRING "${GDK_VERSION}" 12 ${GDK_VERSION_LENGTH} GDK_VERSION) string(REGEX MATCH "MAPI_VERSION=[^\ \t\r\n]+" MAPI_VERSION ${LIB_VERSIONS}) -string(LENGTH ${MAPI_VERSION} MAPI_VERSION_LENGTH) -string(SUBSTRING ${MAPI_VERSION} 13 MAPI_VERSION_LENGTH MAPI_VERSION) +string(LENGTH "${MAPI_VERSION}" MAPI_VERSION_LENGTH) +string(SUBSTRING "${MAPI_VERSION}" 13 ${MAPI_VERSION_LENGTH} MAPI_VERSION) string(REGEX MATCH "MONETDB5_VERSION=[^\ \t\r\n]+" MONETDB5_VERSION ${LIB_VERSIONS}) -string(LENGTH ${MONETDB5_VERSION} MONETDB5_VERSION_LENGTH) -string(SUBSTRING ${MONETDB5_VERSION} 17 MONETDB5_VERSION_LENGTH MONETDB5_VERSION) +string(LENGTH "${MONETDB5_VERSION}" MONETDB5_VERSION_LENGTH) +string(SUBSTRING "${MONETDB5_VERSION}" 17 ${MONETDB5_VERSION_LENGTH} MONETDB5_VERSION) string(REGEX MATCH "STREAM_VERSION=[^\ \t\r\n]+" STREAM_VERSION ${LIB_VERSIONS}) -string(LENGTH ${STREAM_VERSION} STREAM_VERSION_LENGTH) -string(SUBSTRING ${STREAM_VERSION} 15 STREAM_VERSION_LENGTH STREAM_VERSION) +string(LENGTH "${STREAM_VERSION}" STREAM_VERSION_LENGTH) +string(SUBSTRING "${STREAM_VERSION}" 15 ${STREAM_VERSION_LENGTH} STREAM_VERSION) if("${CMAKE_C_COMPILER_ID}" STREQUAL "Intel") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -no-gcc") # Intel compiler hack @@ -84,7 +83,7 @@ set(ENABLE_TESTING "AUTO" CACHE STRING " # modules to use set(ENABLE_MAPI "YES" CACHE STRING "Enable MAPI (default=yes)") if(NOT ${ENABLE_MAPI} STREQUAL "NO") - defineCmacro("HAVE_MAPI" "HAVE_MAPI 1") + set(HAVE_MAPI ON) endif() set(ENABLE_GDK "YES" CACHE STRING "Enable support for GDK (default=yes)") @@ -130,12 +129,12 @@ endif() set(ENABLE_EMBEDDED "NO" CACHE STRING "Enable support for running MonetDB as a library (default=no)") if(NOT ${ENABLE_EMBEDDED} STREQUAL "NO") - defineCmacro("HAVE_EMBEDDED" "HAVE_EMBEDDED 1") + 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") - defineCmacro("HAVE_CONSOLE" "HAVE_CONSOLE 1") + set(HAVE_CONSOLE ON) endif() set(ENABLE_INT128 "AUTO" CACHE STRING "Enable support for 128-bit integers (default=auto)") @@ -146,14 +145,14 @@ set(ENABLE_STRICT "${DFT_STRICT}" CACHE 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") - defineCmacro("STATIC_CODE_ANALYSIS" "STATIC_CODE_ANALYSIS 1") + set(STATIC_CODE_ANALYSIS ON) endif() # 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$") - defineCmacro("MONETDB5_PASSWDHASH" "MONETDB5_PASSWDHASH ${PASSWORD_BACKEND}") - defineCmacro("MONETDB5_PASSWDHASH_TOKEN" "MONETDB5_PASSWDHASH_TOKEN \"${PASSWORD_BACKEND}\"") + 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() @@ -163,17 +162,8 @@ set(LOGDIR "${CMAKE_INSTALL_FULL_LOCALST set(RUNDIR "${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/run/monetdb" CACHE STRING "Where to put pid files (LOCALSTATEDIR/run/monetdb)") OPJ_TEST_LARGE_FILES(_LARGE_FILES) -if(_LARGE_FILES) - defineCmacro("_LARGE_FILES" "HAVE _LARGE_FILES 1") -endif() OPJ_TEST_LARGE_FILES(_LARGEFILE_SOURCE) -if(_LARGEFILE_SOURCE) - defineCmacro("_LARGEFILE_SOURCE" "HAVE _LARGEFILE_SOURCE 1") -endif() OPJ_TEST_LARGE_FILES(_FILE_OFFSET_BITS) -if(_FILE_OFFSET_BITS) - defineCmacro("_FILE_OFFSET_BITS" "HAVE _FILE_OFFSET_BITS 64") -endif() if(NOT "${CMAKE_C_COMPILER_ID}" MATCHES "^GNU|Intel|Clang|MSVC|AppleClang|SunPro$") message(WARNING "Compiler potentially not (correctly) recognized") @@ -299,7 +289,7 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "Intel" file(READ "${ROOT}/usr/include/math.h" TMPTXT) string(FIND "${TMPTXT}" "_LIB_VERSION_TYPE" FOUND_VERSION) if(FOUND_VERSION) - defineCmacro("INTEL_MATH_H_HACK" "INTEL_MATH_H_HACK 1") + set(INTEL_MATH_H_HACK ON) endif() endif() endif() @@ -353,7 +343,7 @@ if(${ENABLE_DEBUG} STREQUAL "YES") set(NEW_CMAKE_C_FLAGS "${NEW_CMAKE_C_FLAGS} -g") endif() - string(LENGTH NEW_CMAKE_C_FLAGS NEW_CMAKE_FLAGS_LENGTH) + string(LENGTH "${NEW_CMAKE_C_FLAGS}" NEW_CMAKE_FLAGS_LENGTH) if(NEW_CMAKE_FLAGS_LENGTH GREATER 0) message(STATUS "Added${NEW_CMAKE_C_FLAGS} flag(s) for debug build") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${NEW_CMAKE_C_FLAGS}") @@ -361,7 +351,7 @@ if(${ENABLE_DEBUG} STREQUAL "YES") endif() if(${ENABLE_ASSERT} STREQUAL "NO") - defineCmacro("NDEBUG" "NDEBUG 1") + set(NDEBUG ON) endif() if(${ENABLE_OPTIMIZE} STREQUAL "YES") @@ -399,7 +389,7 @@ if(${ENABLE_OPTIMIZE} STREQUAL "YES") set(NEW_CMAKE_C_FLAGS "${NEW_CMAKE_C_FLAGS} -O2") endif() - string(LENGTH NEW_CMAKE_C_FLAGS NEW_CMAKE_FLAGS_LENGTH) + string(LENGTH "${NEW_CMAKE_C_FLAGS}" NEW_CMAKE_FLAGS_LENGTH) if(NEW_CMAKE_FLAGS_LENGTH GREATER 0) message(STATUS "Added${NEW_CMAKE_C_FLAGS} flag(s) for optimize build") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${NEW_CMAKE_C_FLAGS}") @@ -436,7 +426,7 @@ if(NOT ${PYTHON2} STREQUAL "NO") if(${PYTHON2} STREQUAL "AUTO") set(PYTHON2_INTERPRETER "python2") else() - set(PYTHON2_INTERPRETER "${PYTHON2}") + set(PYTHON2_INTERPRETER "${PYTHON2}/python2") endif() if(NOT CMAKE_CROSSCOMPILING) @@ -463,8 +453,8 @@ if(NOT ${PYTHON2} STREQUAL "NO") endif() endif() - string(LENGTH PY2_OUPUT_RES PY2_OUPUT_LENGTH) - string(SUBSTRING ${PY2_OUPUT_RES} 9 PY2_OUPUT_LENGTH PY2_VERSION) + string(LENGTH "${PY2_OUPUT_RES}" PY2_OUPUT_LENGTH) + string(SUBSTRING "${PY2_OUPUT_RES}" 9 ${PY2_OUPUT_LENGTH} PY2_VERSION) if(PY2_VERSION LESS 6) set(HAVE_PYTHON2 NO) if(${PYTHON2} STREQUAL "YES") @@ -493,10 +483,10 @@ if(NOT ${PYTHON2} STREQUAL "NO") endif() if(PYTHON2_LIBDIR AND PYTHON2_LIBDIR_CODE EQUAL 0) - string(LENGTH CMAKE_INSTALL_PREFIX CMAKE_INSTALL_PREFIX_LENGTH) + string(LENGTH "${CMAKE_INSTALL_PREFIX}" CMAKE_INSTALL_PREFIX_LENGTH) math(EXPR CMAKE_INSTALL_PREFIX_LENGTH "${CMAKE_INSTALL_PREFIX_LENGTH}+1") # add the / separator - string(LENGTH PYTHON2_LIBDIR PYTHON2_LIBDIR_PREFIX_LENGTH) - string(SUBSTRING ${PYTHON2_LIBDIR} ${CMAKE_INSTALL_PREFIX_LENGTH} PYTHON2_LIBDIR_PREFIX_LENGTH PYTHON2_LIBDIR) # remove the prefix + string(LENGTH "${PYTHON2_LIBDIR}" PYTHON2_LIBDIR_PREFIX_LENGTH) + string(SUBSTRING "${PYTHON2_LIBDIR}" ${CMAKE_INSTALL_PREFIX_LENGTH} ${PYTHON2_LIBDIR_PREFIX_LENGTH} PYTHON2_LIBDIR) # remove the prefix elseif(${PYTHON2} STREQUAL "YES") message(FATAL_ERROR " Could not find PYTHON2_LIBDIR") else() @@ -511,7 +501,7 @@ if(NOT ${PYTHON3} STREQUAL "NO") if(${PYTHON3} STREQUAL "AUTO") set(PYTHON3_INTERPRETER "python3") else() - set(PYTHON3_INTERPRETER "${PYTHON3}") + set(PYTHON3_INTERPRETER "${PYTHON3}/python3") endif() if(NOT CMAKE_CROSSCOMPILING) @@ -538,8 +528,8 @@ if(NOT ${PYTHON3} STREQUAL "NO") endif() endif() - string(LENGTH PY3_OUPUT_RES PY3_OUPUT_LENGTH) - string(SUBSTRING ${PY3_OUPUT_RES} 9 PY3_OUPUT_LENGTH PY3_VERSION) + string(LENGTH "${PY3_OUPUT_RES}" PY3_OUPUT_LENGTH) + string(SUBSTRING "${PY3_OUPUT_RES}" 9 PY3_OUPUT_LENGTH PY3_VERSION) if(PY3_VERSION LESS 5) set(HAVE_PYTHON3 NO) if(${PYTHON3} STREQUAL "YES") @@ -561,10 +551,10 @@ if(NOT ${PYTHON3} STREQUAL "NO") exec_program("${PYTHON3_INTERPRETER}" ARGS "-c 'import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(0,0,\"${CMAKE_INSTALL_PREFIX}\"))'" OUTPUT_VARIABLE PYTHON3_LIBDIR RETURN_VALUE PYTHON3_LIBDIR_CODE) if(PYTHON3_LIBDIR AND PYTHON3_LIBDIR_CODE EQUAL 0) - string(LENGTH CMAKE_INSTALL_PREFIX CMAKE_INSTALL_PREFIX_LENGTH) + string(LENGTH "${CMAKE_INSTALL_PREFIX}" CMAKE_INSTALL_PREFIX_LENGTH) math(EXPR CMAKE_INSTALL_PREFIX_LENGTH "${CMAKE_INSTALL_PREFIX_LENGTH}+1") # add the / separator - string(LENGTH PYTHON3_LIBDIR PYTHON3_LIBDIR_PREFIX_LENGTH) - string(SUBSTRING ${PYTHON3_LIBDIR} ${CMAKE_INSTALL_PREFIX_LENGTH} PYTHON3_LIBDIR_PREFIX_LENGTH PYTHON3_LIBDIR) # remove the prefix + string(LENGTH "${PYTHON3_LIBDIR}" PYTHON3_LIBDIR_PREFIX_LENGTH) + string(SUBSTRING "${PYTHON3_LIBDIR}" ${CMAKE_INSTALL_PREFIX_LENGTH} ${PYTHON3_LIBDIR_PREFIX_LENGTH} PYTHON3_LIBDIR) # remove the prefix elseif(${PYTHON3} STREQUAL "YES") message(FATAL_ERROR " Could not find PYTHON3_LIBDIR") else() @@ -626,12 +616,12 @@ else() message(FATAL_ERROR "Unknown target operating system") endif() -defineCmacro("DIR_SEP" "DIR_SEP ${OS_DIRSEP}") -defineCmacro("DIR_SEP_STR" "DIR_SEP_STR \"${OS_DIRSEP}\"") -defineCmacro("PATH_SEP" "PATH_SEP ${OS_PATHSEP}") -defineCmacro("PATH_SEP_STR" "PATH_SEP_STR \"${OS_PATHSEP}\"") -defineCmacro("SO_EXT" "SO_EXT \"${OS_SOEXT}\"") -defineCmacro("SO_PREFIX" "SO_PREFIX \"${OS_SOPREF}\"") +set(DIR_SEP ${OS_DIRSEP}) +set(DIR_SEP_STR ${OS_DIRSEP}) +set(PATH_SEP ${OS_PATHSEP}) +set(PATH_SEP_STR ${OS_PATHSEP}) +set(SO_EXT ${OS_SOEXT}) +set(SO_PREFIX ${OS_SOPREF}) # checks for libraries set(PREV_CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES}") @@ -658,16 +648,16 @@ if(NOT ${WITH_BZ2} STREQUAL "NO") endif() endif() if(HAVE_BZLIB) - defineCmacro("HAVE_LIBBZ2" "HAVE_LIBBZ2 1") + set(HAVE_LIBBZ2 ON) endif() -set(WITH_SNAPPY "AUTO" CACHE STRING "Include snappy support (default=auto)") # Check with SNAPPY_FOUND +set(WITH_SNAPPY "AUTO" CACHE STRING "Include snappy support (default=auto)") # Check with HAVE_LIBSNAPPY if(NOT ${WITH_SNAPPY} STREQUAL "NO") pkg_search_module(SNAPPY NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH snappy) if(SNAPPY_FOUND) message(STATUS "snappy library found") - defineCmacro("HAVE_LIBSNAPPY" "HAVE_LIBSNAPPY 1") + set(HAVE_LIBSNAPPY ON) elseif(${WITH_SNAPPY} STREQUAL "YES") message(FATAL_ERROR "snappy library not found") else() @@ -675,13 +665,13 @@ if(NOT ${WITH_SNAPPY} STREQUAL "NO") endif() endif() -set(WITH_LZ4 "AUTO" CACHE STRING "Include lz4 library support (default=auto)") # Check with LZ4_FOUND +set(WITH_LZ4 "AUTO" CACHE STRING "Include lz4 library support (default=auto)") # Check with HAVE_LIBLZ4 if(NOT ${WITH_LZ4} STREQUAL "NO") pkg_search_module(LZ4 NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH liblz4>=1.8.0) if(LZ4_FOUND) message(STATUS "lz4 library found") - defineCmacro("HAVE_LIBLZ4" "HAVE_LIBLZ4 1") + set(HAVE_LIBLZ4 ON) elseif(${WITH_LZ4} STREQUAL "YES") message(FATAL_ERROR "lz4 library not found") else() @@ -727,17 +717,8 @@ if(NOT ${WITH_PTHREAD} STREQUAL "NO") endif() check_include_file("pthread.h" HAVE_PTHREAD_H) - if(HAVE_PTHREAD_H) - defineCmacro("HAVE_PTHREAD_H" "HAVE_PTHREAD_H 1") - endif() check_include_file("semaphore.h" HAVE_SEMAPHORE_H) - if(HAVE_SEMAPHORE_H) - defineCmacro("HAVE_SEMAPHORE_H" "HAVE_SEMAPHORE_H 1") - endif() check_include_file("sched.h" HAVE_SCHED_H) - if(HAVE_SCHED_H) - defineCmacro("HAVE_SCHED_H" "HAVE_SCHED_H 1") - endif() if(${WITH_PTHREAD} MATCHES "^AUTO|YES$") if("${CMAKE_C_COMPILER_ID}" MATCHES "^Clang|AppleClang|GNU$") @@ -751,21 +732,13 @@ if(NOT ${WITH_PTHREAD} STREQUAL "NO") set(CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES};pthread") check_symbol_exists("pthread_kill" "signal.h" HAVE_PTHREAD_KILL) - if(HAVE_PTHREAD_KILL) - defineCmacro("HAVE_PTHREAD_KILL" "HAVE_PTHREAD_KILL 1") _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list