From 3c45295ef08d9b9ec5fb1d6fa7db508ac4b5df4b Mon Sep 17 00:00:00 2001
From: Emmanuel Christophe <emmanuel.christophe@orfeo-toolbox.org>
Date: Sun, 2 May 2010 19:16:12 +0800
Subject: [PATCH] ENH: add autodetection of curlmulti capabilities

---
 CMake/TestCurlMulti.cxx | 11 +++++++++++
 CMakeLists.txt          | 11 ++++++++---
 2 files changed, 19 insertions(+), 3 deletions(-)
 create mode 100644 CMake/TestCurlMulti.cxx

diff --git a/CMake/TestCurlMulti.cxx b/CMake/TestCurlMulti.cxx
new file mode 100644
index 0000000000..31bc4cfaf8
--- /dev/null
+++ b/CMake/TestCurlMulti.cxx
@@ -0,0 +1,11 @@
+#include "curl/curl.h"
+#include <iostream>
+
+int main(int argc,char * argv[])
+{
+  CURLM *             multiHandle;
+  multiHandle = curl_multi_init();
+  curl_multi_cleanup(multiHandle);
+
+  return 0;
+}
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8bcb206846..6804f52783 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -367,9 +367,14 @@ IF(OTB_USE_CURL)
         INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIR})
 
         # TODO add test to check if curl multi is available
-        OPTION(OTB_CURL_MULTI_AVAILABLE "Whether or not the curl has curlmulti capabilities" ON)
-        MARK_AS_ADVANCED(OTB_CURL_MULTI_AVAILABLE)
-        ADD_DEFINITIONS(-DOTB_CURL_MULTI_AVAILABLE)
+        TRY_COMPILE(OTB_CURL_MULTI_AVAILABLE
+                    ${CMAKE_CURRENT_BINARY_DIR}/CMake
+                    ${CMAKE_CURRENT_SOURCE_DIR}/CMake/TestCurlMulti.cxx
+                    CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${CURL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${CURL_LIBRARY}"
+                    OUTPUT_VARIABLE OUTPUT)
+        IF (OTB_CURL_MULTI_AVAILABLE)
+          ADD_DEFINITIONS(-DOTB_CURL_MULTI_AVAILABLE)
+        ENDIF (OTB_CURL_MULTI_AVAILABLE)
 ENDIF(OTB_USE_CURL)
 
 #-------------------------------
-- 
GitLab