diff options
author | Brad King <brad.king@kitware.com> | 2011-01-05 17:32:41 +0100 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2011-01-06 00:06:29 +0100 |
commit | 651c0bcdf27c484ebd6d637947157424aaa46ab7 (patch) | |
tree | e58a2a65917f63c82228d87364b82d3a479c658e | |
parent | d45ed0ecf5a92b35868b46943871dfa4ec14c7a2 (diff) |
CMake: Use upstream CheckTypeSize module
The CheckTypeSize module that comes with CMake 2.6.2 and above does
everything we need and also supports cross-compiling. Avoid duplicating
an older version of it here. This also fixes a cross-compiling error
because the old line
include ("${CMAKE_MODULE_PATH}/CheckTypeSize.cmake")
failed because CMAKE_MODULE_PATH is a search path and not a directory.
Signed-off-by: Brad King <brad.king@kitware.com>
-rw-r--r-- | CMake/CheckTypeSize.c.in | 44 | ||||
-rw-r--r-- | CMake/CheckTypeSize.cmake | 57 | ||||
-rw-r--r-- | CMakeLists.txt | 14 |
3 files changed, 7 insertions, 108 deletions
diff --git a/CMake/CheckTypeSize.c.in b/CMake/CheckTypeSize.c.in deleted file mode 100644 index 8ff07bfd1..000000000 --- a/CMake/CheckTypeSize.c.in +++ /dev/null @@ -1,44 +0,0 @@ -#cmakedefine CHECK_TYPE_SIZE_TYPE @CHECK_TYPE_SIZE_TYPE@ -#ifdef CHECK_TYPE_SIZE_TYPE - -@CHECK_TYPE_SIZE_PREINCLUDE@ -#ifdef HAVE_SYS_TYPES_H -# include <sys/types.h> -#endif /* HAVE_SYS_TYPES_H */ - -#ifdef HAVE_SYS_SOCKET_H -# include <sys/socket.h> -#endif - -#ifdef _WIN32 -# include <winsock2.h> -# include <ws2tcpip.h> -#endif - - -#ifdef HAVE_STDINT_H -# include <stdint.h> -#endif /* HAVE_STDINT_H */ - -#ifdef HAVE_STDDEF_H -# include <stddef.h> -#endif /* HAVE_STDDEF_H */ - -@CHECK_TYPE_SIZE_PREMAIN@ - -#ifdef __CLASSIC_C__ -int main(){ - int ac; - char*av[]; -#else -int main(int ac, char*av[]){ -#endif - if(ac > 1000){return *av[0];} - return sizeof(CHECK_TYPE_SIZE_TYPE); -} - -#else /* CHECK_TYPE_SIZE_TYPE */ - -# error "CHECK_TYPE_SIZE_TYPE has to specify the type" - -#endif /* CHECK_TYPE_SIZE_TYPE */ diff --git a/CMake/CheckTypeSize.cmake b/CMake/CheckTypeSize.cmake deleted file mode 100644 index 2c2ceab97..000000000 --- a/CMake/CheckTypeSize.cmake +++ /dev/null @@ -1,57 +0,0 @@ -# - Check sizeof a type -# CHECK_TYPE_SIZE(TYPE VARIABLE) -# Check if the type exists and determine size of type. if the type -# exists, the size will be stored to the variable. -# -# VARIABLE - variable to store size if the type exists. -# HAVE_${VARIABLE} - does the variable exists or not - -macro(CHECK_TYPE_SIZE TYPE VARIABLE) - set(CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS 1) - if(NOT DEFINED ${VARIABLE}) - if("HAVE_${VARIABLE}" MATCHES "^HAVE_${VARIABLE}$") - set(CHECK_TYPE_SIZE_TYPE "${TYPE}") - set(MACRO_CHECK_TYPE_SIZE_FLAGS - "${CMAKE_REQUIRED_FLAGS}") - foreach(def HAVE_SYS_TYPES_H - HAVE_STDINT_H HAVE_STDDEF_H HAVE_SYS_SOCKET_H) - if("${def}") - set(MACRO_CHECK_TYPE_SIZE_FLAGS - "${MACRO_CHECK_TYPE_SIZE_FLAGS} -D${def}") - endif("${def}") - endforeach(def) - set(CHECK_TYPE_SIZE_PREMAIN) - foreach(def ${CMAKE_EXTRA_INCLUDE_FILES}) - set(CHECK_TYPE_SIZE_PREMAIN "${CHECK_TYPE_SIZE_PREMAIN}#include \"${def}\"\n") - endforeach(def) - configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/CMake/CheckTypeSize.c.in" - "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckTypeSize.c" - IMMEDIATE @ONLY) - file(READ - "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckTypeSize.c" - CHECK_TYPE_SIZE_FILE_CONTENT) - message(STATUS "Check size of ${TYPE}") - if(CMAKE_REQUIRED_LIBRARIES) - set(CHECK_TYPE_SIZE_ADD_LIBRARIES - "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") - endif(CMAKE_REQUIRED_LIBRARIES) - try_run(${VARIABLE} HAVE_${VARIABLE} - ${CMAKE_BINARY_DIR} - "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckTypeSize.c" - CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_TYPE_SIZE_FLAGS} - "${CHECK_TYPE_SIZE_ADD_LIBRARIES}" - OUTPUT_VARIABLE OUTPUT) - if(HAVE_${VARIABLE}) - message(STATUS "Check size of ${TYPE} - done") - file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log - "Determining size of ${TYPE} passed with the following output:\n${OUTPUT}\n\n") - else(HAVE_${VARIABLE}) - message(STATUS "Check size of ${TYPE} - failed") - file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log - "Determining size of ${TYPE} failed with the following output:\n${OUTPUT}\nCheckTypeSize.c:\n${CHECK_TYPE_SIZE_FILE_CONTENT}\n\n") - endif(HAVE_${VARIABLE}) - endif("HAVE_${VARIABLE}" MATCHES "^HAVE_${VARIABLE}$") - endif(NOT DEFINED ${VARIABLE}) - set(CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS ) -endmacro(CHECK_TYPE_SIZE) diff --git a/CMakeLists.txt b/CMakeLists.txt index 244085b02..55312ccba 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -183,13 +183,7 @@ include (CheckIncludeFile) include (CheckIncludeFiles) include (CheckLibraryExists) include (CheckSymbolExists) -# if crosscompiling is on, the CHECK_TYPE_SIZE macro coming with cmake uses -# TRY_COMPILE instead of TRY_RUN which makes crosscompiling easier, Alex -if(CMAKE_CROSSCOMPILING) - include ("${CMAKE_MODULE_PATH}/CheckTypeSize.cmake") -else(CMAKE_CROSSCOMPILING) - include (CheckTypeSize) -endif(CMAKE_CROSSCOMPILING) +include (CheckTypeSize) # On windows preload settings if(WIN32) @@ -781,7 +775,13 @@ endif(CMAKE_COMPILER_IS_GNUCC AND APPLE) if(HAVE_SOCKLEN_T) set(CURL_TYPEOF_CURL_SOCKLEN_T "socklen_t") + if(WIN32) + set(CMAKE_EXTRA_INCLUDE_FILES "winsock2.h;ws2tcpip.h") + elseif(HAVE_SYS_SOCKET_H) + set(CMAKE_EXTRA_INCLUDE_FILES "sys/socket.h") + endif() check_type_size("socklen_t" CURL_SIZEOF_CURL_SOCKLEN_T) + set(CMAKE_EXTRA_INCLUDE_FILES) if(NOT HAVE_CURL_SIZEOF_CURL_SOCKLEN_T) message(FATAL_ERROR "Check for sizeof socklen_t failed, see CMakeFiles/CMakerror.log") |