From 4472ab1dfb177298a4c30ff91a416572b1c817e8 Mon Sep 17 00:00:00 2001
From: Julien Malik <julien.malik@c-s.fr>
Date: Tue, 13 Mar 2012 09:45:00 +0100
Subject: [PATCH] ENH: find ossim the cmake way

---
 CMake/FindOssim.cmake                         | 27 ++++++++++++++++
 CMake/ImportOssim.cmake                       | 20 +-----------
 .../OssimAdapters/otbAeronetFileReader.cxx    |  2 +-
 .../OssimAdapters/otbDEMConvertAdapter.cxx    | 28 ++++++++--------
 .../OssimAdapters/otbDEMHandler.cxx           | 12 +++----
 .../OssimAdapters/otbEllipsoidAdapter.cxx     |  2 +-
 .../otbGeometricSarSensorModelAdapter.cxx     |  2 +-
 .../OssimAdapters/otbImageKeywordlist.cxx     | 10 +++---
 .../OssimAdapters/otbMapProjectionAdapter.cxx | 32 +++++++++----------
 .../otbPlatformPositionAdapter.cxx            |  2 +-
 .../OssimAdapters/otbRPCProjectionAdapter.cxx |  8 ++---
 .../OssimAdapters/otbSensorModelAdapter.cxx   |  4 +--
 12 files changed, 79 insertions(+), 70 deletions(-)
 create mode 100644 CMake/FindOssim.cmake

diff --git a/CMake/FindOssim.cmake b/CMake/FindOssim.cmake
new file mode 100644
index 0000000000..43d40d1ff2
--- /dev/null
+++ b/CMake/FindOssim.cmake
@@ -0,0 +1,27 @@
+# - Find Ossim
+# Find the native Ossim includes and library
+#
+#   OSSIM_FOUND       - True if Ossim found.
+#   OSSIM_INCLUDE_DIR - where to find tinyxml.h, etc.
+#   OSSIM_LIBRARIES   - List of libraries when using Ossim.
+#
+
+IF( OSSIM_INCLUDE_DIR )
+    # Already in cache, be silent
+    SET( Ossim_FIND_QUIETLY TRUE )
+ENDIF( OSSIM_INCLUDE_DIR )
+
+FIND_PATH( OSSIM_INCLUDE_DIR
+           NAMES ossim/init/ossimInit.h 
+           PATHS $ENV{OSSIM_INCLUDE_DIR} /usr/local )
+           
+FIND_LIBRARY(OSSIM_LIBRARY
+             NAMES ossim
+             PATHS /usr/local/lib/ossim)
+ 
+# handle the QUIETLY and REQUIRED arguments and set OSSIM_FOUND to TRUE if
+# all listed variables are TRUE
+INCLUDE( FindPackageHandleStandardArgs )
+FIND_PACKAGE_HANDLE_STANDARD_ARGS( Ossim DEFAULT_MSG OSSIM_INCLUDE_DIR OSSIM_LIBRARY )
+
+MARK_AS_ADVANCED( OSSIM_INCLUDE_DIR OSSIM_LIBRARY )
diff --git a/CMake/ImportOssim.cmake b/CMake/ImportOssim.cmake
index bd48a60415..43bd5ab363 100644
--- a/CMake/ImportOssim.cmake
+++ b/CMake/ImportOssim.cmake
@@ -5,25 +5,7 @@ OPTION(OTB_USE_EXTERNAL_OSSIM "Use an outside build of Ossim." OFF)
 MARK_AS_ADVANCED(OTB_USE_EXTERNAL_OSSIM)
 
 IF(OTB_USE_EXTERNAL_OSSIM)
-
-  IF (NOT OSSIM_FOUND)
-    FIND_PATH(OSSIM_INCLUDE_DIR NAMES ossim/init/ossimInit.h PATHS $ENV{OSSIM_INCLUDE_DIR} /usr/local)
-    MARK_AS_ADVANCED(OSSIM_INCLUDE_DIR)
-    FIND_LIBRARY(OSSIM_LIBRARY NAMES ossim PATHS /usr/local/lib/ossim)
-    MARK_AS_ADVANCED(OSSIM_LIBRARY)
-  ENDIF(NOT OSSIM_FOUND)
-
-  IF (NOT OSSIM_INCLUDE_DIR)
-  MESSAGE(FATAL_ERROR
-           "Cannot find OSSIM include directory. Please set OSSIM_INCLUDE_DIR.")
-  ENDIF (NOT OSSIM_INCLUDE_DIR)
-
-  IF (NOT OSSIM_LIBRARY)
-    MESSAGE(FATAL_ERROR
-             "Cannot find OSSIM library. Please set OSSIM_LIBRARY.")
-  ENDIF (NOT OSSIM_LIBRARY)
-  MESSAGE(STATUS "  OSSIM includes : ${OSSIM_INCLUDE_DIR}")
-  MESSAGE(STATUS "  OSSIM library  : ${OSSIM_LIBRARY}")
+  FIND_PACKAGE(Ossim REQUIRED)
 ELSE(OTB_USE_EXTERNAL_OSSIM)
   SET(OSSIM_LIBRARY otbossim)
 ENDIF(OTB_USE_EXTERNAL_OSSIM)
diff --git a/Code/UtilitiesAdapters/OssimAdapters/otbAeronetFileReader.cxx b/Code/UtilitiesAdapters/OssimAdapters/otbAeronetFileReader.cxx
index 33b7240407..e22deb5d5c 100644
--- a/Code/UtilitiesAdapters/OssimAdapters/otbAeronetFileReader.cxx
+++ b/Code/UtilitiesAdapters/OssimAdapters/otbAeronetFileReader.cxx
@@ -23,7 +23,7 @@
 #include "otbMath.h"
 #include "otbAeronetData.h"
 
-#include "base/ossimDate.h"
+#include "ossim/base/ossimDate.h"
 
 namespace otb
 {
diff --git a/Code/UtilitiesAdapters/OssimAdapters/otbDEMConvertAdapter.cxx b/Code/UtilitiesAdapters/OssimAdapters/otbDEMConvertAdapter.cxx
index 32584a3a3a..8de2eb3713 100644
--- a/Code/UtilitiesAdapters/OssimAdapters/otbDEMConvertAdapter.cxx
+++ b/Code/UtilitiesAdapters/OssimAdapters/otbDEMConvertAdapter.cxx
@@ -21,20 +21,20 @@
 #include "itkMacro.h"
 
 // OSSIM include
-#include "base/ossimKeywordNames.h"
-#include "base/ossimStdOutProgress.h"
-#include "base/ossimFilename.h"
-#include "base/ossimKeywordlist.h"
-#include "imaging/ossimJpegWriter.h"
-#include "imaging/ossimImageHandler.h"
-#include "imaging/ossimImageSource.h"
-#include "imaging/ossimImageHandlerRegistry.h"
-#include "imaging/ossimImageWriterFactoryRegistry.h"
-#include "imaging/ossimImageWriterFactory.h"
-#include "imaging/ossimImageFileWriter.h"
-#include "imaging/ossimCacheTileSource.h"
-#include "imaging/ossimBandSelector.h"
-#include "imaging/ossimCibCadrgTileSource.h"
+#include "ossim/base/ossimKeywordNames.h"
+#include "ossim/base/ossimStdOutProgress.h"
+#include "ossim/base/ossimFilename.h"
+#include "ossim/base/ossimKeywordlist.h"
+#include "ossim/imaging/ossimJpegWriter.h"
+#include "ossim/imaging/ossimImageHandler.h"
+#include "ossim/imaging/ossimImageSource.h"
+#include "ossim/imaging/ossimImageHandlerRegistry.h"
+#include "ossim/imaging/ossimImageWriterFactoryRegistry.h"
+#include "ossim/imaging/ossimImageWriterFactory.h"
+#include "ossim/imaging/ossimImageFileWriter.h"
+#include "ossim/imaging/ossimCacheTileSource.h"
+#include "ossim/imaging/ossimBandSelector.h"
+#include "ossim/imaging/ossimCibCadrgTileSource.h"
 
 namespace otb
 {
diff --git a/Code/UtilitiesAdapters/OssimAdapters/otbDEMHandler.cxx b/Code/UtilitiesAdapters/OssimAdapters/otbDEMHandler.cxx
index 735a7486a8..f49138324e 100644
--- a/Code/UtilitiesAdapters/OssimAdapters/otbDEMHandler.cxx
+++ b/Code/UtilitiesAdapters/OssimAdapters/otbDEMHandler.cxx
@@ -18,12 +18,12 @@
 #include "otbDEMHandler.h"
 #include "otbMacro.h"
 
-#include "elevation/ossimElevManager.h"
-#include "base/ossimGeoidManager.h"
-#include "base/ossimFilename.h"
-#include "base/ossimDirectory.h"
-#include "base/ossimGeoidEgm96.h"
-#include "base/ossimRefPtr.h"
+#include "ossim/elevation/ossimElevManager.h"
+#include "ossim/base/ossimGeoidManager.h"
+#include "ossim/base/ossimFilename.h"
+#include "ossim/base/ossimDirectory.h"
+#include "ossim/base/ossimGeoidEgm96.h"
+#include "ossim/base/ossimRefPtr.h"
 
 namespace otb
 {
diff --git a/Code/UtilitiesAdapters/OssimAdapters/otbEllipsoidAdapter.cxx b/Code/UtilitiesAdapters/OssimAdapters/otbEllipsoidAdapter.cxx
index f0c074694c..44eecbff75 100644
--- a/Code/UtilitiesAdapters/OssimAdapters/otbEllipsoidAdapter.cxx
+++ b/Code/UtilitiesAdapters/OssimAdapters/otbEllipsoidAdapter.cxx
@@ -18,7 +18,7 @@
 
 #include "otbEllipsoidAdapter.h"
 
-#include "base/ossimEllipsoid.h"
+#include "ossim/base/ossimEllipsoid.h"
 
 namespace otb
 {
diff --git a/Code/UtilitiesAdapters/OssimAdapters/otbGeometricSarSensorModelAdapter.cxx b/Code/UtilitiesAdapters/OssimAdapters/otbGeometricSarSensorModelAdapter.cxx
index b0e06e8a02..450645c224 100644
--- a/Code/UtilitiesAdapters/OssimAdapters/otbGeometricSarSensorModelAdapter.cxx
+++ b/Code/UtilitiesAdapters/OssimAdapters/otbGeometricSarSensorModelAdapter.cxx
@@ -22,7 +22,7 @@
 #include "otbImageKeywordlist.h"
 
 #include "ossimGeometricSarSensorModel.h"
-#include "projection/ossimProjection.h"
+#include "ossim/projection/ossimProjection.h"
 #include "ossim/ossimPluginProjectionFactory.h"
 #include "otb/JSDDateTime.h"
 
diff --git a/Code/UtilitiesAdapters/OssimAdapters/otbImageKeywordlist.cxx b/Code/UtilitiesAdapters/OssimAdapters/otbImageKeywordlist.cxx
index e49c026719..19885e5bde 100644
--- a/Code/UtilitiesAdapters/OssimAdapters/otbImageKeywordlist.cxx
+++ b/Code/UtilitiesAdapters/OssimAdapters/otbImageKeywordlist.cxx
@@ -21,12 +21,12 @@
 
 #include "otbMacro.h"
 
-#include "base/ossimKeywordlist.h"
-#include "base/ossimString.h"
-#include "ossim/ossimPluginProjectionFactory.h"
-#include "imaging/ossimImageHandlerRegistry.h"
+#include "ossim/base/ossimKeywordlist.h"
+#include "ossim/base/ossimString.h"
+#include "ossimPluginProjectionFactory.h"
+#include "ossim/imaging/ossimImageHandlerRegistry.h"
 #include "ossimTileMapModel.h"
-#include "projection/ossimProjectionFactoryRegistry.h"
+#include "ossim/projection/ossimProjectionFactoryRegistry.h"
 
 
 namespace otb
diff --git a/Code/UtilitiesAdapters/OssimAdapters/otbMapProjectionAdapter.cxx b/Code/UtilitiesAdapters/OssimAdapters/otbMapProjectionAdapter.cxx
index d9714d7e3d..b5763b5682 100644
--- a/Code/UtilitiesAdapters/OssimAdapters/otbMapProjectionAdapter.cxx
+++ b/Code/UtilitiesAdapters/OssimAdapters/otbMapProjectionAdapter.cxx
@@ -23,25 +23,25 @@
 #include "otbMacro.h"
 #include "otbUtils.h"
 
-#include "projection/ossimMapProjection.h"
-#include "projection/ossimMapProjectionFactory.h"
-#include "base/ossimGpt.h"
-#include "base/ossimDpt.h"
-#include "projection/ossimProjection.h"
-#include "base/ossimEllipsoid.h"
-#include "base/ossimEllipsoidFactory.h"
-#include "base/ossimString.h"
+#include "ossim/projection/ossimMapProjection.h"
+#include "ossim/projection/ossimMapProjectionFactory.h"
+#include "ossim/base/ossimGpt.h"
+#include "ossim/base/ossimDpt.h"
+#include "ossim/projection/ossimProjection.h"
+#include "ossim/base/ossimEllipsoid.h"
+#include "ossim/base/ossimEllipsoidFactory.h"
+#include "ossim/base/ossimString.h"
 #include "gdal/ossimOgcWktTranslator.h"
 
-#include "projection/ossimUtmProjection.h"
-#include "projection/ossimLambertConformalConicProjection.h"
-#include "projection/ossimTransMercatorProjection.h"
-#include "projection/ossimEckert4Projection.h"
-#include "projection/ossimMollweidProjection.h"
-#include "projection/ossimSinusoidalProjection.h"
+#include "ossim/projection/ossimUtmProjection.h"
+#include "ossim/projection/ossimLambertConformalConicProjection.h"
+#include "ossim/projection/ossimTransMercatorProjection.h"
+#include "ossim/projection/ossimEckert4Projection.h"
+#include "ossim/projection/ossimMollweidProjection.h"
+#include "ossim/projection/ossimSinusoidalProjection.h"
 
-#include <ossim/support_data/ossimSpaceImagingGeom.h>
-#include <ossim/base/ossimKeywordNames.h>
+#include "ossim/support_data/ossimSpaceImagingGeom.h"
+#include "ossim/base/ossimKeywordNames.h"
 
 
 namespace otb
diff --git a/Code/UtilitiesAdapters/OssimAdapters/otbPlatformPositionAdapter.cxx b/Code/UtilitiesAdapters/OssimAdapters/otbPlatformPositionAdapter.cxx
index eda123c181..286a90448f 100644
--- a/Code/UtilitiesAdapters/OssimAdapters/otbPlatformPositionAdapter.cxx
+++ b/Code/UtilitiesAdapters/OssimAdapters/otbPlatformPositionAdapter.cxx
@@ -23,7 +23,7 @@
 
 #include "ossimGeometricSarSensorModel.h"
 #include "otb/PlatformPosition.h"
-#include "projection/ossimProjection.h"
+#include "ossim/projection/ossimProjection.h"
 #include "ossim/ossimPluginProjectionFactory.h"
 
 
diff --git a/Code/UtilitiesAdapters/OssimAdapters/otbRPCProjectionAdapter.cxx b/Code/UtilitiesAdapters/OssimAdapters/otbRPCProjectionAdapter.cxx
index 7ca3a1c696..f4007b6012 100644
--- a/Code/UtilitiesAdapters/OssimAdapters/otbRPCProjectionAdapter.cxx
+++ b/Code/UtilitiesAdapters/OssimAdapters/otbRPCProjectionAdapter.cxx
@@ -19,10 +19,10 @@
 #include "otbRPCProjectionAdapter.h"
 #include "otbImageKeywordlist.h"
 
-#include "projection/ossimRpcProjection.h"
-#include "projection/ossimProjection.h"
-#include "projection/ossimRpcSolver.h"
-#include "imaging/ossimImageGeometry.h"
+#include "ossim/projection/ossimRpcProjection.h"
+#include "ossim/projection/ossimProjection.h"
+#include "ossim/projection/ossimRpcSolver.h"
+#include "ossim/imaging/ossimImageGeometry.h"
 
 namespace otb
 {
diff --git a/Code/UtilitiesAdapters/OssimAdapters/otbSensorModelAdapter.cxx b/Code/UtilitiesAdapters/OssimAdapters/otbSensorModelAdapter.cxx
index bb45f6bb85..6a58174946 100644
--- a/Code/UtilitiesAdapters/OssimAdapters/otbSensorModelAdapter.cxx
+++ b/Code/UtilitiesAdapters/OssimAdapters/otbSensorModelAdapter.cxx
@@ -23,8 +23,8 @@
 #include "otbMacro.h"
 #include "otbImageKeywordlist.h"
 
-#include "projection/ossimProjection.h"
-#include "projection/ossimSensorModelFactory.h"
+#include "ossim/projection/ossimProjection.h"
+#include "ossim/projection/ossimSensorModelFactory.h"
 #include "ossim/ossimPluginProjectionFactory.h"
 
 namespace otb
-- 
GitLab