Mercurial > hg > orthanc
diff Resources/CMake/LibCurlConfiguration.cmake @ 2448:862d943115f9
working on linux standard base
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 02 Jan 2018 18:04:11 +0100 |
parents | 74d0953a3681 |
children | ade8b4ddd8a6 |
line wrap: on
line diff
--- a/Resources/CMake/LibCurlConfiguration.cmake Tue Jan 02 09:35:07 2018 +0100 +++ b/Resources/CMake/LibCurlConfiguration.cmake Tue Jan 02 18:04:11 2018 +0100 @@ -1,7 +1,18 @@ +macro(CHECK_CURL_TYPE_EXISTS TYPE VARIABLE) + check_type_size("${TYPE}" SIZEOF_TYPE) # LANGUAGE CXX) + + if (SIZEOF_TYPE) + set(${VARIABLE} ON) + else() + set(${VARIABLE} OFF) + endif() +endmacro() + + if (STATIC_BUILD OR NOT USE_SYSTEM_CURL) - SET(CURL_SOURCES_DIR ${CMAKE_BINARY_DIR}/curl-7.50.3) - SET(CURL_URL "http://www.orthanc-server.com/downloads/third-party/curl-7.50.3.tar.gz") - SET(CURL_MD5 "870e16fd88a88b52e26a4f04dfc161db") + SET(CURL_SOURCES_DIR ${CMAKE_BINARY_DIR}/curl-7.57.0) + SET(CURL_URL "http://www.orthanc-server.com/downloads/third-party/curl-7.57.0.tar.gz") + SET(CURL_MD5 "c7aab73aaf5e883ca1d7518f93649dc2") DownloadPackage(${CURL_MD5} ${CURL_URL} "${CURL_SOURCES_DIR}") @@ -42,7 +53,7 @@ endif() if (NOT EXISTS "${CURL_SOURCES_DIR}/lib/curl_config.h") - file(WRITE ${CURL_SOURCES_DIR}/lib/curl_config.h "") + #file(WRITE ${CURL_SOURCES_DIR}/lib/curl_config.h "") file(WRITE ${CURL_SOURCES_DIR}/lib/vauth/vauth/vauth.h "#include \"../vauth.h\"\n") file(WRITE ${CURL_SOURCES_DIR}/lib/vauth/vauth/digest.h "#include \"../digest.h\"\n") @@ -70,48 +81,56 @@ set_property( SOURCE ${CURL_SOURCES} - PROPERTY COMPILE_DEFINITIONS "HAVE_TIME_H;HAVE_STRUCT_TIMEVAL;HAVE_SYS_STAT_H;HAVE_SOCKET;HAVE_STRUCT_SOCKADDR_STORAGE;HAVE_SYS_SOCKET_H;HAVE_SOCKET;HAVE_SYS_SOCKET_H;HAVE_NETINET_IN_H;HAVE_NETDB_H;HAVE_FCNTL_O_NONBLOCK;HAVE_FCNTL_H;HAVE_SELECT;HAVE_ERRNO_H;HAVE_SEND;HAVE_RECV;HAVE_LONGLONG;OS=\"${TMP_OS}\"" + PROPERTY COMPILE_DEFINITIONS "HAVE_CONFIG_H=1;OS=\"${TMP_OS}\"" ) - if ("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") - add_definitions( - -DRECV_TYPE_ARG1=int - -DRECV_TYPE_ARG2=void* - -DRECV_TYPE_ARG3=size_t - -DRECV_TYPE_ARG4=int - -DRECV_TYPE_RETV=ssize_t - -DSEND_TYPE_ARG1=int - -DSEND_TYPE_ARG2=void* - -DSEND_QUAL_ARG2=const - -DSEND_TYPE_ARG3=size_t - -DSEND_TYPE_ARG4=int - -DSEND_TYPE_RETV=ssize_t - -DSIZEOF_SHORT=2 - -DSIZEOF_INT=4 - -DSIZEOF_SIZE_T=8 - ) - elseif ("${CMAKE_SIZEOF_VOID_P}" EQUAL "4") - add_definitions( - -DRECV_TYPE_ARG1=int - -DRECV_TYPE_ARG2=void* - -DRECV_TYPE_ARG3=size_t - -DRECV_TYPE_ARG4=int - -DRECV_TYPE_RETV=int - -DSEND_TYPE_ARG1=int - -DSEND_TYPE_ARG2=void* - -DSEND_QUAL_ARG2=const - -DSEND_TYPE_ARG3=size_t - -DSEND_TYPE_ARG4=int - -DSEND_TYPE_RETV=int - -DSIZEOF_SHORT=2 - -DSIZEOF_INT=4 - -DSIZEOF_SIZE_T=4 - ) - else() - message(FATAL_ERROR "Support your platform here") - endif() + include(CheckTypeSize) + include(CheckIncludeFile) + include(CheckSymbolExists) + + CHECK_INCLUDE_FILE(time.h HAVE_TIME_H) + CHECK_INCLUDE_FILE(sys/stat.h HAVE_SYS_STAT_H) + CHECK_INCLUDE_FILE(sys/socket.h HAVE_SYS_SOCKET_H) + CHECK_INCLUDE_FILE(netinet/in.h HAVE_NETINET_IN_H) + CHECK_INCLUDE_FILE(netdb.h HAVE_NETDB_H) + CHECK_INCLUDE_FILE(fcntl.h HAVE_FCNTL_H) + CHECK_INCLUDE_FILE(errno.h HAVE_ERRNO_H) + CHECK_INCLUDE_FILE(stdint.h HAVE_STDINT_H) + CHECK_INCLUDE_FILE(stdio.h HAVE_STDIO_H) + CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H) + + CHECK_CURL_TYPE_EXISTS("long long" HAVE_LONGLONG) + + check_symbol_exists(socket "sys/socket.h" HAVE_SOCKET) + check_symbol_exists(recv "sys/socket.h" HAVE_RECV) + check_symbol_exists(send "sys/socket.h" HAVE_SEND) + check_symbol_exists(select "sys/select.h" HAVE_SELECT) + + check_type_size("size_t" SIZEOF_SIZE_T) + check_type_size("ssize_t" SIZEOF_SSIZE_T) + check_type_size("long long" SIZEOF_LONG_LONG) + check_type_size("long" SIZEOF_LONG) + check_type_size("short" SIZEOF_SHORT) + check_type_size("int" SIZEOF_INT) + check_type_size("__int64" SIZEOF___INT64) + check_type_size("long double" SIZEOF_LONG_DOUBLE) + check_type_size("time_t" SIZEOF_TIME_T) + check_type_size("off_t" SIZEOF_OFF_T) + check_type_size("socklen_t" CURL_SIZEOF_CURL_SOCKLEN_T) + + set(CMAKE_REQUIRED_INCLUDES "${CURL_SOURCES_DIR}/include") + set(CMAKE_EXTRA_INCLUDE_FILES "curl/system.h") + check_type_size("curl_off_t" SIZEOF_CURL_OFF_T) + + include(${CURL_SOURCES_DIR}/CMake/OtherTests.cmake) + set(HAVE_STRUCT_TIMEVAL ON) # TODO WHY IS THIS NECESSARY? + set(HAVE_FCNTL_O_NONBLOCK ON) # TODO WHY IS THIS NECESSARY? + + configure_file( + ${CURL_SOURCES_DIR}/lib/curl_config.h.cmake + ${CURL_SOURCES_DIR}/lib/curl_config.h + ) endif() - else() include(FindCURL) include_directories(${CURL_INCLUDE_DIRS})