From 65f112f51566019102c5eb60f92bd394cd9c8da7 Mon Sep 17 00:00:00 2001
From: Thomas Feuvrier <thomas.feuvrier@c-s.fr>
Date: Mon, 21 Sep 2009 18:05:37 +0200
Subject: [PATCH] ENH: Add TRY_COMPILE when External Boost library is selected.
 If the compilation aborted, then the internal boost library is used, and
 OTB_USE_EXTERNAL_BOOST cmake value is force to OFF.

---
 CMake/otbTestCompileBoost.cxx |  8 ++++++++
 CMakeLists.txt                | 14 ++++++++++++++
 2 files changed, 22 insertions(+)
 create mode 100644 CMake/otbTestCompileBoost.cxx

diff --git a/CMake/otbTestCompileBoost.cxx b/CMake/otbTestCompileBoost.cxx
new file mode 100644
index 0000000000..2cdb84ce5a
--- /dev/null
+++ b/CMake/otbTestCompileBoost.cxx
@@ -0,0 +1,8 @@
+#include <boost/graph/graph_traits.hpp>
+#include <boost/graph/adjacency_list.hpp>
+
+int
+main(int argc, char *argv[])
+{
+  return 1;
+}
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4736606b1d..9e746039fd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -435,6 +435,20 @@ ENDIF(OTB_USE_MAPNIK)
 
 IF(OTB_USE_EXTERNAL_BOOST)
   FIND_PACKAGE(Boost)
+
+  TRY_COMPILE(BOOST_IS_COMPLETE
+  ${CMAKE_CURRENT_BINARY_DIR}/CMake
+  ${CMAKE_CURRENT_SOURCE_DIR}/CMake/otbTestCompileBoost.cxx
+  CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${Boost_INCLUDE_DIR}" 
+  OUTPUT_VARIABLE OUTPUT)
+  IF(BOOST_IS_COMPLETE)
+    MESSAGE(STATUS "Testing external Boost library    -- yes")
+  ELSE(BOOST_IS_COMPLETE)
+    MESSAGE(STATUS "Testing external Boost library    -- no")
+    MESSAGE(STATUS "Force the OTB_USE_EXTERNAL_BOOST value to OFF.")
+    SET(OTB_USE_EXTERNAL_BOOST OFF)
+  ENDIF(BOOST_IS_COMPLETE)
+
   INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
 ENDIF(OTB_USE_EXTERNAL_BOOST)
 
-- 
GitLab