mirror of
https://github.com/moparisthebest/curl
synced 2025-02-28 17:31:46 -05:00
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>
This commit is contained in:
parent
d45ed0ecf5
commit
651c0bcdf2
@ -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 */
|
|
@ -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)
|
|
@ -183,13 +183,7 @@ include (CheckIncludeFile)
|
|||||||
include (CheckIncludeFiles)
|
include (CheckIncludeFiles)
|
||||||
include (CheckLibraryExists)
|
include (CheckLibraryExists)
|
||||||
include (CheckSymbolExists)
|
include (CheckSymbolExists)
|
||||||
# if crosscompiling is on, the CHECK_TYPE_SIZE macro coming with cmake uses
|
include (CheckTypeSize)
|
||||||
# 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)
|
|
||||||
|
|
||||||
# On windows preload settings
|
# On windows preload settings
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
@ -781,7 +775,13 @@ endif(CMAKE_COMPILER_IS_GNUCC AND APPLE)
|
|||||||
|
|
||||||
if(HAVE_SOCKLEN_T)
|
if(HAVE_SOCKLEN_T)
|
||||||
set(CURL_TYPEOF_CURL_SOCKLEN_T "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)
|
check_type_size("socklen_t" CURL_SIZEOF_CURL_SOCKLEN_T)
|
||||||
|
set(CMAKE_EXTRA_INCLUDE_FILES)
|
||||||
if(NOT HAVE_CURL_SIZEOF_CURL_SOCKLEN_T)
|
if(NOT HAVE_CURL_SIZEOF_CURL_SOCKLEN_T)
|
||||||
message(FATAL_ERROR
|
message(FATAL_ERROR
|
||||||
"Check for sizeof socklen_t failed, see CMakeFiles/CMakerror.log")
|
"Check for sizeof socklen_t failed, see CMakeFiles/CMakerror.log")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user