Mercurial > hg > orthanc
comparison 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 |
comparison
equal
deleted
inserted
replaced
2447:878b59270859 | 2448:862d943115f9 |
---|---|
1 macro(CHECK_CURL_TYPE_EXISTS TYPE VARIABLE) | |
2 check_type_size("${TYPE}" SIZEOF_TYPE) # LANGUAGE CXX) | |
3 | |
4 if (SIZEOF_TYPE) | |
5 set(${VARIABLE} ON) | |
6 else() | |
7 set(${VARIABLE} OFF) | |
8 endif() | |
9 endmacro() | |
10 | |
11 | |
1 if (STATIC_BUILD OR NOT USE_SYSTEM_CURL) | 12 if (STATIC_BUILD OR NOT USE_SYSTEM_CURL) |
2 SET(CURL_SOURCES_DIR ${CMAKE_BINARY_DIR}/curl-7.50.3) | 13 SET(CURL_SOURCES_DIR ${CMAKE_BINARY_DIR}/curl-7.57.0) |
3 SET(CURL_URL "http://www.orthanc-server.com/downloads/third-party/curl-7.50.3.tar.gz") | 14 SET(CURL_URL "http://www.orthanc-server.com/downloads/third-party/curl-7.57.0.tar.gz") |
4 SET(CURL_MD5 "870e16fd88a88b52e26a4f04dfc161db") | 15 SET(CURL_MD5 "c7aab73aaf5e883ca1d7518f93649dc2") |
5 | 16 |
6 DownloadPackage(${CURL_MD5} ${CURL_URL} "${CURL_SOURCES_DIR}") | 17 DownloadPackage(${CURL_MD5} ${CURL_URL} "${CURL_SOURCES_DIR}") |
7 | 18 |
8 include_directories( | 19 include_directories( |
9 ${CURL_SOURCES_DIR}/include | 20 ${CURL_SOURCES_DIR}/include |
40 -DUSE_SSLEAY=1 | 51 -DUSE_SSLEAY=1 |
41 ) | 52 ) |
42 endif() | 53 endif() |
43 | 54 |
44 if (NOT EXISTS "${CURL_SOURCES_DIR}/lib/curl_config.h") | 55 if (NOT EXISTS "${CURL_SOURCES_DIR}/lib/curl_config.h") |
45 file(WRITE ${CURL_SOURCES_DIR}/lib/curl_config.h "") | 56 #file(WRITE ${CURL_SOURCES_DIR}/lib/curl_config.h "") |
46 | 57 |
47 file(WRITE ${CURL_SOURCES_DIR}/lib/vauth/vauth/vauth.h "#include \"../vauth.h\"\n") | 58 file(WRITE ${CURL_SOURCES_DIR}/lib/vauth/vauth/vauth.h "#include \"../vauth.h\"\n") |
48 file(WRITE ${CURL_SOURCES_DIR}/lib/vauth/vauth/digest.h "#include \"../digest.h\"\n") | 59 file(WRITE ${CURL_SOURCES_DIR}/lib/vauth/vauth/digest.h "#include \"../digest.h\"\n") |
49 file(WRITE ${CURL_SOURCES_DIR}/lib/vauth/vauth/ntlm.h "#include \"../ntlm.h\"\n") | 60 file(WRITE ${CURL_SOURCES_DIR}/lib/vauth/vauth/ntlm.h "#include \"../ntlm.h\"\n") |
50 file(WRITE ${CURL_SOURCES_DIR}/lib/vauth/vtls/vtls.h "#include \"../../vtls/vtls.h\"\n") | 61 file(WRITE ${CURL_SOURCES_DIR}/lib/vauth/vtls/vtls.h "#include \"../../vtls/vtls.h\"\n") |
68 SET(TMP_OS "x86") | 79 SET(TMP_OS "x86") |
69 endif() | 80 endif() |
70 | 81 |
71 set_property( | 82 set_property( |
72 SOURCE ${CURL_SOURCES} | 83 SOURCE ${CURL_SOURCES} |
73 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}\"" | 84 PROPERTY COMPILE_DEFINITIONS "HAVE_CONFIG_H=1;OS=\"${TMP_OS}\"" |
74 ) | 85 ) |
75 | 86 |
76 if ("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") | 87 include(CheckTypeSize) |
77 add_definitions( | 88 include(CheckIncludeFile) |
78 -DRECV_TYPE_ARG1=int | 89 include(CheckSymbolExists) |
79 -DRECV_TYPE_ARG2=void* | 90 |
80 -DRECV_TYPE_ARG3=size_t | 91 CHECK_INCLUDE_FILE(time.h HAVE_TIME_H) |
81 -DRECV_TYPE_ARG4=int | 92 CHECK_INCLUDE_FILE(sys/stat.h HAVE_SYS_STAT_H) |
82 -DRECV_TYPE_RETV=ssize_t | 93 CHECK_INCLUDE_FILE(sys/socket.h HAVE_SYS_SOCKET_H) |
83 -DSEND_TYPE_ARG1=int | 94 CHECK_INCLUDE_FILE(netinet/in.h HAVE_NETINET_IN_H) |
84 -DSEND_TYPE_ARG2=void* | 95 CHECK_INCLUDE_FILE(netdb.h HAVE_NETDB_H) |
85 -DSEND_QUAL_ARG2=const | 96 CHECK_INCLUDE_FILE(fcntl.h HAVE_FCNTL_H) |
86 -DSEND_TYPE_ARG3=size_t | 97 CHECK_INCLUDE_FILE(errno.h HAVE_ERRNO_H) |
87 -DSEND_TYPE_ARG4=int | 98 CHECK_INCLUDE_FILE(stdint.h HAVE_STDINT_H) |
88 -DSEND_TYPE_RETV=ssize_t | 99 CHECK_INCLUDE_FILE(stdio.h HAVE_STDIO_H) |
89 -DSIZEOF_SHORT=2 | 100 CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H) |
90 -DSIZEOF_INT=4 | 101 |
91 -DSIZEOF_SIZE_T=8 | 102 CHECK_CURL_TYPE_EXISTS("long long" HAVE_LONGLONG) |
92 ) | 103 |
93 elseif ("${CMAKE_SIZEOF_VOID_P}" EQUAL "4") | 104 check_symbol_exists(socket "sys/socket.h" HAVE_SOCKET) |
94 add_definitions( | 105 check_symbol_exists(recv "sys/socket.h" HAVE_RECV) |
95 -DRECV_TYPE_ARG1=int | 106 check_symbol_exists(send "sys/socket.h" HAVE_SEND) |
96 -DRECV_TYPE_ARG2=void* | 107 check_symbol_exists(select "sys/select.h" HAVE_SELECT) |
97 -DRECV_TYPE_ARG3=size_t | 108 |
98 -DRECV_TYPE_ARG4=int | 109 check_type_size("size_t" SIZEOF_SIZE_T) |
99 -DRECV_TYPE_RETV=int | 110 check_type_size("ssize_t" SIZEOF_SSIZE_T) |
100 -DSEND_TYPE_ARG1=int | 111 check_type_size("long long" SIZEOF_LONG_LONG) |
101 -DSEND_TYPE_ARG2=void* | 112 check_type_size("long" SIZEOF_LONG) |
102 -DSEND_QUAL_ARG2=const | 113 check_type_size("short" SIZEOF_SHORT) |
103 -DSEND_TYPE_ARG3=size_t | 114 check_type_size("int" SIZEOF_INT) |
104 -DSEND_TYPE_ARG4=int | 115 check_type_size("__int64" SIZEOF___INT64) |
105 -DSEND_TYPE_RETV=int | 116 check_type_size("long double" SIZEOF_LONG_DOUBLE) |
106 -DSIZEOF_SHORT=2 | 117 check_type_size("time_t" SIZEOF_TIME_T) |
107 -DSIZEOF_INT=4 | 118 check_type_size("off_t" SIZEOF_OFF_T) |
108 -DSIZEOF_SIZE_T=4 | 119 check_type_size("socklen_t" CURL_SIZEOF_CURL_SOCKLEN_T) |
109 ) | 120 |
110 else() | 121 set(CMAKE_REQUIRED_INCLUDES "${CURL_SOURCES_DIR}/include") |
111 message(FATAL_ERROR "Support your platform here") | 122 set(CMAKE_EXTRA_INCLUDE_FILES "curl/system.h") |
112 endif() | 123 check_type_size("curl_off_t" SIZEOF_CURL_OFF_T) |
124 | |
125 include(${CURL_SOURCES_DIR}/CMake/OtherTests.cmake) | |
126 set(HAVE_STRUCT_TIMEVAL ON) # TODO WHY IS THIS NECESSARY? | |
127 set(HAVE_FCNTL_O_NONBLOCK ON) # TODO WHY IS THIS NECESSARY? | |
128 | |
129 configure_file( | |
130 ${CURL_SOURCES_DIR}/lib/curl_config.h.cmake | |
131 ${CURL_SOURCES_DIR}/lib/curl_config.h | |
132 ) | |
113 endif() | 133 endif() |
114 | |
115 else() | 134 else() |
116 include(FindCURL) | 135 include(FindCURL) |
117 include_directories(${CURL_INCLUDE_DIRS}) | 136 include_directories(${CURL_INCLUDE_DIRS}) |
118 link_libraries(${CURL_LIBRARIES}) | 137 link_libraries(${CURL_LIBRARIES}) |
119 | 138 |