1
|
1 if (STATIC_BUILD OR NOT USE_SYSTEM_CURL)
|
|
2 SET(CURL_SOURCES_DIR ${CMAKE_BINARY_DIR}/curl-7.50.3)
|
|
3 SET(CURL_URL "http://www.montefiore.ulg.ac.be/~jodogne/Orthanc/ThirdPartyDownloads/curl-7.50.3.tar.gz")
|
|
4 SET(CURL_MD5 "870e16fd88a88b52e26a4f04dfc161db")
|
|
5
|
|
6 DownloadPackage(${CURL_MD5} ${CURL_URL} "${CURL_SOURCES_DIR}")
|
|
7
|
|
8 include_directories(
|
|
9 ${CURL_SOURCES_DIR}/include
|
|
10 )
|
|
11
|
|
12 AUX_SOURCE_DIRECTORY(${CURL_SOURCES_DIR}/lib CURL_SOURCES)
|
|
13 AUX_SOURCE_DIRECTORY(${CURL_SOURCES_DIR}/lib/vauth CURL_SOURCES)
|
|
14 AUX_SOURCE_DIRECTORY(${CURL_SOURCES_DIR}/lib/vtls CURL_SOURCES)
|
|
15 source_group(ThirdParty\\LibCurl REGULAR_EXPRESSION ${CURL_SOURCES_DIR}/.*)
|
|
16
|
|
17 add_definitions(
|
|
18 -DBUILDING_LIBCURL=1
|
|
19 -DCURL_STATICLIB=1
|
|
20 -DCURL_DISABLE_LDAPS=1
|
|
21 -DCURL_DISABLE_LDAP=1
|
|
22 -DCURL_DISABLE_DICT=1
|
|
23 -DCURL_DISABLE_FILE=1
|
|
24 -DCURL_DISABLE_FTP=1
|
|
25 -DCURL_DISABLE_GOPHER=1
|
|
26 -DCURL_DISABLE_LDAP=1
|
|
27 -DCURL_DISABLE_LDAPS=1
|
|
28 -DCURL_DISABLE_POP3=1
|
|
29 #-DCURL_DISABLE_PROXY=1
|
|
30 -DCURL_DISABLE_RTSP=1
|
|
31 -DCURL_DISABLE_TELNET=1
|
|
32 -DCURL_DISABLE_TFTP=1
|
|
33 )
|
|
34
|
|
35 if (ENABLE_SSL)
|
|
36 add_definitions(
|
|
37 #-DHAVE_LIBSSL=1
|
|
38 -DUSE_OPENSSL=1
|
|
39 -DHAVE_OPENSSL_ENGINE_H=1
|
|
40 -DUSE_SSLEAY=1
|
|
41 )
|
|
42 endif()
|
|
43
|
|
44 if (NOT EXISTS "${CURL_SOURCES_DIR}/lib/curl_config.h")
|
|
45 file(WRITE ${CURL_SOURCES_DIR}/lib/curl_config.h "")
|
|
46
|
|
47 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")
|
|
49 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")
|
|
51
|
|
52 file(GLOB CURL_LIBS_HEADERS ${CURL_SOURCES_DIR}/lib/*.h)
|
|
53 foreach (header IN LISTS CURL_LIBS_HEADERS)
|
|
54 get_filename_component(filename ${header} NAME)
|
|
55 file(WRITE ${CURL_SOURCES_DIR}/lib/vauth/${filename} "#include \"../${filename}\"\n")
|
|
56 file(WRITE ${CURL_SOURCES_DIR}/lib/vtls/${filename} "#include \"../${filename}\"\n")
|
|
57 endforeach()
|
|
58 endif()
|
|
59
|
|
60 if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR
|
|
61 ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" OR
|
|
62 ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD" OR
|
|
63 ${CMAKE_SYSTEM_NAME} STREQUAL "kFreeBSD")
|
|
64 if ("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
|
65 SET(TMP_OS "x86_64")
|
|
66 else()
|
|
67 SET(TMP_OS "x86")
|
|
68 endif()
|
|
69
|
|
70 set_property(
|
|
71 SOURCE ${CURL_SOURCES}
|
|
72 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}\""
|
|
73 )
|
|
74
|
|
75 if ("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
|
76 add_definitions(
|
|
77 -DRECV_TYPE_ARG1=int
|
|
78 -DRECV_TYPE_ARG2=void*
|
|
79 -DRECV_TYPE_ARG3=size_t
|
|
80 -DRECV_TYPE_ARG4=int
|
|
81 -DRECV_TYPE_RETV=ssize_t
|
|
82 -DSEND_TYPE_ARG1=int
|
|
83 -DSEND_TYPE_ARG2=void*
|
|
84 -DSEND_QUAL_ARG2=const
|
|
85 -DSEND_TYPE_ARG3=size_t
|
|
86 -DSEND_TYPE_ARG4=int
|
|
87 -DSEND_TYPE_RETV=ssize_t
|
|
88 -DSIZEOF_SHORT=2
|
|
89 -DSIZEOF_INT=4
|
|
90 -DSIZEOF_SIZE_T=8
|
|
91 )
|
|
92 elseif ("${CMAKE_SIZEOF_VOID_P}" EQUAL "4")
|
|
93 add_definitions(
|
|
94 -DRECV_TYPE_ARG1=int
|
|
95 -DRECV_TYPE_ARG2=void*
|
|
96 -DRECV_TYPE_ARG3=size_t
|
|
97 -DRECV_TYPE_ARG4=int
|
|
98 -DRECV_TYPE_RETV=int
|
|
99 -DSEND_TYPE_ARG1=int
|
|
100 -DSEND_TYPE_ARG2=void*
|
|
101 -DSEND_QUAL_ARG2=const
|
|
102 -DSEND_TYPE_ARG3=size_t
|
|
103 -DSEND_TYPE_ARG4=int
|
|
104 -DSEND_TYPE_RETV=int
|
|
105 -DSIZEOF_SHORT=2
|
|
106 -DSIZEOF_INT=4
|
|
107 -DSIZEOF_SIZE_T=4
|
|
108 )
|
|
109 else()
|
|
110 message(FATAL_ERROR "Support your platform here")
|
|
111 endif()
|
|
112 endif()
|
|
113
|
|
114 else()
|
|
115 include(FindCURL)
|
|
116 include_directories(${CURL_INCLUDE_DIRS})
|
|
117 link_libraries(${CURL_LIBRARIES})
|
|
118
|
|
119 if (NOT ${CURL_FOUND})
|
|
120 message(FATAL_ERROR "Unable to find LibCurl")
|
|
121 endif()
|
|
122 endif()
|