curl-library
[PATCH] CMake: Use upstream CheckTypeSize module
From: Brad King <brad.king_at_kitware.com>
Date: Wed, 5 Jan 2011 11:32:41 -0500
Date: Wed, 5 Jan 2011 11:32:41 -0500
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_at_kitware.com>
--- CMake/CheckTypeSize.c.in | 44 ---------------------------------- CMake/CheckTypeSize.cmake | 57 --------------------------------------------- CMakeLists.txt | 14 +++++----- 3 files changed, 7 insertions(+), 108 deletions(-) delete mode 100644 CMake/CheckTypeSize.c.in delete mode 100644 CMake/CheckTypeSize.cmake diff --git a/CMake/CheckTypeSize.c.in b/CMake/CheckTypeSize.c.in deleted file mode 100644 index 8ff07bf..0000000 --- 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 - -_at_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 */ - -_at_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 2c2ceab..0000000 --- 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 244085b..55312cc 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") -- 1.7.2.3 ------------------------------------------------------------------- List admin: http://cool.haxx.se/list/listinfo/curl-library Etiquette: http://curl.haxx.se/mail/etiquette.htmlReceived on 2011-01-05