Mercurial > hg > orthanc
annotate 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 |
rev | line source |
---|---|
2448
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
1 macro(CHECK_CURL_TYPE_EXISTS TYPE VARIABLE) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
2 check_type_size("${TYPE}" SIZEOF_TYPE) # LANGUAGE CXX) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
3 |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
4 if (SIZEOF_TYPE) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
5 set(${VARIABLE} ON) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
6 else() |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
7 set(${VARIABLE} OFF) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
8 endif() |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
9 endmacro() |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
10 |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
11 |
735 | 12 if (STATIC_BUILD OR NOT USE_SYSTEM_CURL) |
2448
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
13 SET(CURL_SOURCES_DIR ${CMAKE_BINARY_DIR}/curl-7.57.0) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
14 SET(CURL_URL "http://www.orthanc-server.com/downloads/third-party/curl-7.57.0.tar.gz") |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
15 SET(CURL_MD5 "c7aab73aaf5e883ca1d7518f93649dc2") |
1537
fbf763bb1fa3
error detection in patches
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1536
diff
changeset
|
16 |
fbf763bb1fa3
error detection in patches
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1536
diff
changeset
|
17 DownloadPackage(${CURL_MD5} ${CURL_URL} "${CURL_SOURCES_DIR}") |
735 | 18 |
1527
7b58e0048874
Upgrade to curl 7.44.0 for static and Windows builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1415
diff
changeset
|
19 include_directories( |
7b58e0048874
Upgrade to curl 7.44.0 for static and Windows builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1415
diff
changeset
|
20 ${CURL_SOURCES_DIR}/include |
7b58e0048874
Upgrade to curl 7.44.0 for static and Windows builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1415
diff
changeset
|
21 ) |
7b58e0048874
Upgrade to curl 7.44.0 for static and Windows builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1415
diff
changeset
|
22 |
735 | 23 AUX_SOURCE_DIRECTORY(${CURL_SOURCES_DIR}/lib CURL_SOURCES) |
2095
9e8b315625c1
Upgrade to curl 7.50.3 for static and Windows builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2092
diff
changeset
|
24 AUX_SOURCE_DIRECTORY(${CURL_SOURCES_DIR}/lib/vauth CURL_SOURCES) |
1527
7b58e0048874
Upgrade to curl 7.44.0 for static and Windows builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1415
diff
changeset
|
25 AUX_SOURCE_DIRECTORY(${CURL_SOURCES_DIR}/lib/vtls CURL_SOURCES) |
735 | 26 source_group(ThirdParty\\LibCurl REGULAR_EXPRESSION ${CURL_SOURCES_DIR}/.*) |
27 | |
28 add_definitions( | |
1536 | 29 -DBUILDING_LIBCURL=1 |
735 | 30 -DCURL_STATICLIB=1 |
31 -DCURL_DISABLE_LDAPS=1 | |
32 -DCURL_DISABLE_LDAP=1 | |
33 -DCURL_DISABLE_DICT=1 | |
34 -DCURL_DISABLE_FILE=1 | |
35 -DCURL_DISABLE_FTP=1 | |
36 -DCURL_DISABLE_GOPHER=1 | |
37 -DCURL_DISABLE_LDAP=1 | |
38 -DCURL_DISABLE_LDAPS=1 | |
39 -DCURL_DISABLE_POP3=1 | |
1273
88010d8e12cf
Support of HTTP proxy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
930
diff
changeset
|
40 #-DCURL_DISABLE_PROXY=1 |
735 | 41 -DCURL_DISABLE_RTSP=1 |
42 -DCURL_DISABLE_TELNET=1 | |
43 -DCURL_DISABLE_TFTP=1 | |
44 ) | |
45 | |
1415 | 46 if (ENABLE_SSL) |
735 | 47 add_definitions( |
48 #-DHAVE_LIBSSL=1 | |
49 -DUSE_OPENSSL=1 | |
2022
fefbe71c2272
Possibility to use PKCS#11 authentication for hardware security modules with Orthanc peers
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1560
diff
changeset
|
50 -DHAVE_OPENSSL_ENGINE_H=1 |
735 | 51 -DUSE_SSLEAY=1 |
52 ) | |
53 endif() | |
54 | |
2092
50dd3249732e
optimization for cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2022
diff
changeset
|
55 if (NOT EXISTS "${CURL_SOURCES_DIR}/lib/curl_config.h") |
2448
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
56 #file(WRITE ${CURL_SOURCES_DIR}/lib/curl_config.h "") |
1533
0011cc99443c
improving HTTPS support
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1532
diff
changeset
|
57 |
2095
9e8b315625c1
Upgrade to curl 7.50.3 for static and Windows builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2092
diff
changeset
|
58 file(WRITE ${CURL_SOURCES_DIR}/lib/vauth/vauth/vauth.h "#include \"../vauth.h\"\n") |
9e8b315625c1
Upgrade to curl 7.50.3 for static and Windows builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2092
diff
changeset
|
59 file(WRITE ${CURL_SOURCES_DIR}/lib/vauth/vauth/digest.h "#include \"../digest.h\"\n") |
9e8b315625c1
Upgrade to curl 7.50.3 for static and Windows builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2092
diff
changeset
|
60 file(WRITE ${CURL_SOURCES_DIR}/lib/vauth/vauth/ntlm.h "#include \"../ntlm.h\"\n") |
9e8b315625c1
Upgrade to curl 7.50.3 for static and Windows builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2092
diff
changeset
|
61 file(WRITE ${CURL_SOURCES_DIR}/lib/vauth/vtls/vtls.h "#include \"../../vtls/vtls.h\"\n") |
9e8b315625c1
Upgrade to curl 7.50.3 for static and Windows builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2092
diff
changeset
|
62 |
2092
50dd3249732e
optimization for cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2022
diff
changeset
|
63 file(GLOB CURL_LIBS_HEADERS ${CURL_SOURCES_DIR}/lib/*.h) |
50dd3249732e
optimization for cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2022
diff
changeset
|
64 foreach (header IN LISTS CURL_LIBS_HEADERS) |
50dd3249732e
optimization for cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2022
diff
changeset
|
65 get_filename_component(filename ${header} NAME) |
2095
9e8b315625c1
Upgrade to curl 7.50.3 for static and Windows builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2092
diff
changeset
|
66 file(WRITE ${CURL_SOURCES_DIR}/lib/vauth/${filename} "#include \"../${filename}\"\n") |
2092
50dd3249732e
optimization for cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2022
diff
changeset
|
67 file(WRITE ${CURL_SOURCES_DIR}/lib/vtls/${filename} "#include \"../${filename}\"\n") |
50dd3249732e
optimization for cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2022
diff
changeset
|
68 endforeach() |
50dd3249732e
optimization for cmake
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2022
diff
changeset
|
69 endif() |
1536 | 70 |
1544 | 71 if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR |
930 | 72 ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" OR |
1337 | 73 ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD" OR |
2364 | 74 ${CMAKE_SYSTEM_NAME} STREQUAL "kFreeBSD" OR |
75 ${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD") | |
735 | 76 if ("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") |
77 SET(TMP_OS "x86_64") | |
78 else() | |
79 SET(TMP_OS "x86") | |
80 endif() | |
81 | |
82 set_property( | |
83 SOURCE ${CURL_SOURCES} | |
2448
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
84 PROPERTY COMPILE_DEFINITIONS "HAVE_CONFIG_H=1;OS=\"${TMP_OS}\"" |
1527
7b58e0048874
Upgrade to curl 7.44.0 for static and Windows builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1415
diff
changeset
|
85 ) |
7b58e0048874
Upgrade to curl 7.44.0 for static and Windows builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1415
diff
changeset
|
86 |
2448
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
87 include(CheckTypeSize) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
88 include(CheckIncludeFile) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
89 include(CheckSymbolExists) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
90 |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
91 CHECK_INCLUDE_FILE(time.h HAVE_TIME_H) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
92 CHECK_INCLUDE_FILE(sys/stat.h HAVE_SYS_STAT_H) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
93 CHECK_INCLUDE_FILE(sys/socket.h HAVE_SYS_SOCKET_H) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
94 CHECK_INCLUDE_FILE(netinet/in.h HAVE_NETINET_IN_H) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
95 CHECK_INCLUDE_FILE(netdb.h HAVE_NETDB_H) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
96 CHECK_INCLUDE_FILE(fcntl.h HAVE_FCNTL_H) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
97 CHECK_INCLUDE_FILE(errno.h HAVE_ERRNO_H) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
98 CHECK_INCLUDE_FILE(stdint.h HAVE_STDINT_H) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
99 CHECK_INCLUDE_FILE(stdio.h HAVE_STDIO_H) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
100 CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
101 |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
102 CHECK_CURL_TYPE_EXISTS("long long" HAVE_LONGLONG) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
103 |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
104 check_symbol_exists(socket "sys/socket.h" HAVE_SOCKET) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
105 check_symbol_exists(recv "sys/socket.h" HAVE_RECV) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
106 check_symbol_exists(send "sys/socket.h" HAVE_SEND) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
107 check_symbol_exists(select "sys/select.h" HAVE_SELECT) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
108 |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
109 check_type_size("size_t" SIZEOF_SIZE_T) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
110 check_type_size("ssize_t" SIZEOF_SSIZE_T) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
111 check_type_size("long long" SIZEOF_LONG_LONG) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
112 check_type_size("long" SIZEOF_LONG) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
113 check_type_size("short" SIZEOF_SHORT) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
114 check_type_size("int" SIZEOF_INT) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
115 check_type_size("__int64" SIZEOF___INT64) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
116 check_type_size("long double" SIZEOF_LONG_DOUBLE) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
117 check_type_size("time_t" SIZEOF_TIME_T) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
118 check_type_size("off_t" SIZEOF_OFF_T) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
119 check_type_size("socklen_t" CURL_SIZEOF_CURL_SOCKLEN_T) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
120 |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
121 set(CMAKE_REQUIRED_INCLUDES "${CURL_SOURCES_DIR}/include") |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
122 set(CMAKE_EXTRA_INCLUDE_FILES "curl/system.h") |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
123 check_type_size("curl_off_t" SIZEOF_CURL_OFF_T) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
124 |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
125 include(${CURL_SOURCES_DIR}/CMake/OtherTests.cmake) |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
126 set(HAVE_STRUCT_TIMEVAL ON) # TODO WHY IS THIS NECESSARY? |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
127 set(HAVE_FCNTL_O_NONBLOCK ON) # TODO WHY IS THIS NECESSARY? |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
128 |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
129 configure_file( |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
130 ${CURL_SOURCES_DIR}/lib/curl_config.h.cmake |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
131 ${CURL_SOURCES_DIR}/lib/curl_config.h |
862d943115f9
working on linux standard base
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2384
diff
changeset
|
132 ) |
735 | 133 endif() |
134 else() | |
135 include(FindCURL) | |
136 include_directories(${CURL_INCLUDE_DIRS}) | |
137 link_libraries(${CURL_LIBRARIES}) | |
138 | |
139 if (NOT ${CURL_FOUND}) | |
140 message(FATAL_ERROR "Unable to find LibCurl") | |
141 endif() | |
142 endif() |