Changeset: f718f3f0bf91 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f718f3f0bf91 Modified Files: CMakeLists.txt cmake/monetdb-defines.cmake cmake/monetdb-findpackages.cmake monetdb_config.h.in monetdb_config_win32.h.in Branch: mbedded Log Message:
more code reorganization diffs (truncated from 384 to 300 lines): diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,9 +44,13 @@ include(TestBigEndian REQUIRED) if(WIN32) set(CMAKE_REQUIRED_LIBRARIES ws2_32.lib shell32.lib advapi32.lib) endif() + # Include MonetDB specific functions include(monetdb-functions) include(monetdb-findpackages) +include(monetdb-toolchain) +monetdb_default_toolchain() + include(monetdb-defines) monetdb_hg_revision() @@ -58,66 +62,27 @@ endif() monetdb_configure_defines() -# On C99, but we have to calculate the size -check_type_size(size_t SIZEOF_SIZE_T LANGUAGE C) -set(SIZEOF_VOID_P ${CMAKE_SIZEOF_VOID_P}) if(HAVE_NETDB_H) set(CMAKE_EXTRA_INCLUDE_FILES "netdb.h" "unistd.h") endif() if(HAVE_WINSOCK_H) set(CMAKE_EXTRA_INCLUDE_FILES "winsock.h") endif() -check_type_size(socklen_t HAVE_SOCKLEN_T LANGUAGE C) - set(CMAKE_REQUIRED_INCLUDES "/usr/include") monetdb_configure_crypto() - -check_type_size(ssize_t SIZEOF_SSIZE_T LANGUAGE C) -if(NOT HAVE_SIZEOF_SSIZE_T) - # Set a default value - if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(ssize_t "int64_t") - else() - set(ssize_t "int32_t") - endif() - set(SIZEOF_SSIZE_T ${CMAKE_SIZEOF_VOID_P}) -endif() -check_type_size(char SIZEOF_CHAR LANGUAGE C) -check_type_size(short SIZEOF_SHORT LANGUAGE C) -check_type_size(int SIZEOF_INT LANGUAGE C) -check_type_size(long SIZEOF_LONG LANGUAGE C) -check_type_size(wchar_t SIZEOF_WCHAR_T LANGUAGE C) - -if(MSVC) - set(_Noreturn "__declspec(noreturn)") - # C99 feature not present in MSVC - set(restrict "__restrict") - # C99 feature only available on C++ compiler in MSVC - # https://docs.microsoft.com/en-us/cpp/cpp/inline-functions-cpp?view=vs-2015 - set(inline "__inline") -endif() +monetdb_configure_sizes() include(GNUInstallDirs) # Define the macro variables after configuring the install directories. # Some variables define additional installation settings. monetdb_macro_variables() +monetdb_configure_misc() # Define custom target after the install directories variables. # Some custom target will need these setting. include(monetdb-custom-targets) -# Used for installing testing python module (don't pass a location, else we need to strip this again) -execute_process(COMMAND "${Python3_EXECUTABLE}" "-c" "import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(0,0,''))" - RESULT_VARIABLE PY3_LIBDIR_CODE - OUTPUT_VARIABLE PYTHON3_SITEDIR - OUTPUT_STRIP_TRAILING_WHITESPACE) -if (PY3_LIBDIR_CODE) - message(WARNING "Could not determine MonetDB Python3 site-packages instalation directory") -endif() -set(PYTHON3_LIBDIR "${PYTHON3_SITEDIR}") -set(PYTHON "${Python3_EXECUTABLE}") - SET(CMAKE_SKIP_BUILD_RPATH FALSE) SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}") @@ -133,21 +98,6 @@ set(PROGRAM_PERMISSIONS_DEFAULT WORLD_READ WORLD_EXECUTE) -# Set host information -string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" CMAKE_SYSTEM_PROCESSOR_LOWER) -string(TOLOWER "${CMAKE_SYSTEM_NAME}" CMAKE_SYSTEM_NAME_LOWER) -string(TOLOWER "${CMAKE_C_COMPILER_ID}" CMAKE_C_COMPILER_ID_LOWER) -set("HOST" "${CMAKE_SYSTEM_PROCESSOR_LOWER}-pc-${CMAKE_SYSTEM_NAME_LOWER}-${CMAKE_C_COMPILER_ID_LOWER}") - -# 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(NOT ${PASSWORD_BACKEND} MATCHES "^MD5|SHA1|RIPEMD160|SHA224|SHA256|SHA384|SHA512$") - message(FATAL_ERROR "PASSWORD_BACKEND invalid, choose one of MD5, SHA1, RIPEMD160, SHA224, SHA256, SHA384, SHA512") -endif() - find_program(BASH NAMES bash DOC "bash interpreter fullpath") if(WIN32) diff --git a/cmake/monetdb-defines.cmake b/cmake/monetdb-defines.cmake --- a/cmake/monetdb-defines.cmake +++ b/cmake/monetdb-defines.cmake @@ -234,3 +234,80 @@ macro(monetdb_configure_crypto) endif() cmake_pop_check_state() endmacro() + +macro(monetdb_configure_sizes) + # On C99, but we have to calculate the size + check_type_size(size_t SIZEOF_SIZE_T LANGUAGE C) + set(SIZEOF_VOID_P ${CMAKE_SIZEOF_VOID_P}) + check_type_size(ssize_t SIZEOF_SSIZE_T LANGUAGE C) + if(NOT HAVE_SIZEOF_SSIZE_T) + # Set a default value + if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(ssize_t "int64_t") + else() + set(ssize_t "int32_t") + endif() + set(SIZEOF_SSIZE_T ${CMAKE_SIZEOF_VOID_P}) + endif() + check_type_size(char SIZEOF_CHAR LANGUAGE C) + check_type_size(short SIZEOF_SHORT LANGUAGE C) + check_type_size(int SIZEOF_INT LANGUAGE C) + check_type_size(long SIZEOF_LONG LANGUAGE C) + check_type_size(wchar_t SIZEOF_WCHAR_T LANGUAGE C) + check_type_size(socklen_t HAVE_SOCKLEN_T LANGUAGE C) + + if(INT128) + cmake_push_check_state() + check_type_size(__int128 SIZEOF___INT128 LANGUAGE C) + check_type_size(__int128_t SIZEOF___INT128_T LANGUAGE C) + check_type_size(__uint128_t SIZEOF___UINT128_T LANGUAGE C) + if(HAVE_SIZEOF___INT128 OR HAVE_SIZEOF___INT128_T OR HAVE_SIZEOF___UINT128_T) + set(HAVE_HGE TRUE) + message(STATUS "Huge integers are available") + else() + message(STATUS "128-bit integers not supported by this compiler") + endif() + cmake_pop_check_state() + endif() +endmacro() + +macro(monetdb_configure_misc) + # Set host information + string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" CMAKE_SYSTEM_PROCESSOR_LOWER) + string(TOLOWER "${CMAKE_SYSTEM_NAME}" CMAKE_SYSTEM_NAME_LOWER) + string(TOLOWER "${CMAKE_C_COMPILER_ID}" CMAKE_C_COMPILER_ID_LOWER) + set("HOST" "${CMAKE_SYSTEM_PROCESSOR_LOWER}-pc-${CMAKE_SYSTEM_NAME_LOWER}-${CMAKE_C_COMPILER_ID_LOWER}") + + # 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(NOT ${PASSWORD_BACKEND} MATCHES "^MD5|SHA1|RIPEMD160|SHA224|SHA256|SHA384|SHA512$") + message(FATAL_ERROR + "PASSWORD_BACKEND invalid, choose one of MD5, SHA1, RIPEMD160, SHA224, SHA256, SHA384, SHA512") + endif() + + # Used for installing testing python module (don't pass a location, else we need to strip this again) + execute_process(COMMAND "${Python3_EXECUTABLE}" "-c" "import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(0,0,''))" + RESULT_VARIABLE PY3_LIBDIR_CODE + OUTPUT_VARIABLE PYTHON3_SITEDIR + OUTPUT_STRIP_TRAILING_WHITESPACE) + if (PY3_LIBDIR_CODE) + message(WARNING + "Could not determine MonetDB Python3 site-packages instalation directory") + endif() + set(PYTHON3_LIBDIR "${PYTHON3_SITEDIR}") + set(PYTHON "${Python3_EXECUTABLE}") + + if(MSVC) + set(_Noreturn "__declspec(noreturn)") + # C99 feature not present in MSVC + set(restrict "__restrict") + # C99 feature only available on C++ compiler in MSVC + # https://docs.microsoft.com/en-us/cpp/cpp/inline-functions-cpp?view=vs-2015 + set(inline "__inline") + endif() +endmacro() + +# vim: set ts=2:sw=2:et diff --git a/cmake/monetdb-findpackages.cmake b/cmake/monetdb-findpackages.cmake --- a/cmake/monetdb-findpackages.cmake +++ b/cmake/monetdb-findpackages.cmake @@ -154,21 +154,4 @@ if(RINTEGRATION) set(RHOME "${LIBR_HOME}") endif() -if(INT128) - cmake_push_check_state() - check_type_size(__int128 SIZEOF___INT128 LANGUAGE C) - check_type_size(__int128_t SIZEOF___INT128_T LANGUAGE C) - check_type_size(__uint128_t SIZEOF___UINT128_T LANGUAGE C) - if(HAVE_SIZEOF___INT128 OR HAVE_SIZEOF___INT128_T OR HAVE_SIZEOF___UINT128_T) - set(HAVE_HGE TRUE) - message(STATUS "Huge integers are available") - else() - message(STATUS "128-bit integers not supported by this compiler") - endif() - cmake_pop_check_state() -endif() - -# Move compiler settings to separate function to cleanup this file -# This include should move as well -include(monetdb-toolchain) -monetdb_default_toolchain() +# vim: set ts=2:sw=2:et diff --git a/monetdb_config.h.in b/monetdb_config.h.in --- a/monetdb_config.h.in +++ b/monetdb_config.h.in @@ -186,6 +186,7 @@ // End Section: monetdb macro variables +// Section: monetdb configure misc #define VERSION "@MONETDB_VERSION@" #define PACKAGE_VERSION "@MONETDB_VERSION@" #define PACKAGE_NAME "MonetDB" @@ -207,6 +208,23 @@ #cmakedefine HAVE_SHA384_UPDATE @HAVE_SHA384_UPDATE@ #cmakedefine HAVE_SHA512_UPDATE @HAVE_SHA512_UPDATE@ +#ifndef _Noreturn +#cmakedefine _Noreturn @_Noreturn@ +#endif +#ifndef __cplusplus +/* Does your compiler support `inline' keyword? (C99 feature) */ +#ifndef inline +#cmakedefine inline @inline@ +#endif +/* Does your compiler support `restrict' keyword? (C99 feature) */ +#ifndef restrict +#cmakedefine restrict @restrict@ +#endif +#endif + +// End Section: monetdb configure misc + +// Section: monetdb configure sizes #cmakedefine SIZEOF_SIZE_T @SIZEOF_SIZE_T@ /* The size of `void *', as computed by sizeof. */ @@ -221,37 +239,11 @@ #cmakedefine LENP_OR_POINTER_T @LENP_OR_POINTER_T@ #cmakedefine SIZEOF_SQLWCHAR @SIZEOF_SQLWCHAR@ - -#ifndef _Noreturn -#cmakedefine _Noreturn @_Noreturn@ -#endif -#ifndef __cplusplus -/* Does your compiler support `inline' keyword? (C99 feature) */ -#ifndef inline -#cmakedefine inline @inline@ -#endif -/* Does your compiler support `restrict' keyword? (C99 feature) */ -#ifndef restrict -#cmakedefine restrict @restrict@ -#endif -#endif - /* Does your compiler support `ssize_t' type? (Posix type) */ #ifndef ssize_t #cmakedefine ssize_t @ssize_t@ #endif -#ifndef static_assert -/* static_assert is a C11 feature, defined in assert.h which also exists - * in many other compilers we ignore it if the compiler doesn't support it */ -#define static_assert(expr, mesg) ((void) 0) -#endif - -#cmakedefine HAVE_SOCKLEN_T @HAVE_SOCKLEN_T@ -#ifndef SOCKET -#define SOCKET int -#endif - /* The size of `__int128', as computed by sizeof. */ #cmakedefine SIZEOF___INT128 @SIZEOF___INT128@ @@ -273,6 +265,19 @@ typedef __uint128_t uhge; #define SIZEOF_HGE SIZEOF___INT128_T #endif +// End Section: monetdb configure sizes + +#ifndef static_assert +/* static_assert is a C11 feature, defined in assert.h which also exists + * in many other compilers we ignore it if the compiler doesn't support it */ _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list