From c4d4d6275dfdcb9584af9365d5334699876ce2a2 Mon Sep 17 00:00:00 2001
From: Emmanuel Christophe <emmanuel.christophe@orfeo-toolbox.org>
Date: Thu, 24 Sep 2009 13:38:07 +0800
Subject: [PATCH] ENH: use the FIND_PACKAGE(GDAL) first

---
 CMakeLists.txt              | 35 +++++++++++++++++++----------------
 README                      | 18 +++++++++---------
 otbIncludeDirectories.cmake |  6 +++---
 3 files changed, 31 insertions(+), 28 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index d72d01f5b1..cef08a3d70 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -439,7 +439,7 @@ IF(OTB_USE_EXTERNAL_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}" 
+  CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${Boost_INCLUDE_DIR}"
   OUTPUT_VARIABLE OUTPUT)
   IF(BOOST_IS_COMPLETE)
     MESSAGE(STATUS "Testing external Boost library    -- yes")
@@ -461,16 +461,19 @@ OPTION(OTB_USE_EXTERNAL_GDAL "Use an outside build of GDAL. (OFF is EXPERIMENTAL
 MARK_AS_ADVANCED(OTB_USE_EXTERNAL_GDAL)
 
 IF(OTB_USE_EXTERNAL_GDAL)
-  FIND_PATH(GDAL_INCLUDE_DIRS gdal.h $ENV{GDAL_INCLUDE_DIRS} /usr/include/gdal)
+  FIND_PACKAGE(GDAL)
 
-  IF (NOT GDAL_INCLUDE_DIRS)
-  MESSAGE(FATAL_ERROR
-           "Cannot find GDAL include directory. Please set GDAL_INCLUDE_DIRS.")
-  ENDIF (NOT GDAL_INCLUDE_DIRS)
+  IF (NOT GDAL_FOUND)
+    FIND_PATH(GDAL_INCLUDE_DIR gdal.h $ENV{GDAL_INCLUDE_DIR} /usr/include/gdal)
+    FIND_LIBRARY(GDAL_LIBRARY NAMES gdal gdal1.5.0 gdal1.4.0 gdal1.3.2 PATHS /usr/lib/gdal)
+  ENDIF(NOT GDAL_FOUND)
 
-  INCLUDE_DIRECTORIES(${GDAL_INCLUDE_DIRS})
+  IF (NOT GDAL_INCLUDE_DIR)
+  MESSAGE(FATAL_ERROR
+           "Cannot find GDAL include directory. Please set GDAL_INCLUDE_DIR.")
+  ENDIF (NOT GDAL_INCLUDE_DIR)
 
-  FIND_LIBRARY(GDAL_LIBRARY NAMES gdal gdal1.5.0 gdal1.4.0 gdal1.3.2 PATHS /usr/lib/gdal)
+  INCLUDE_DIRECTORIES(${GDAL_INCLUDE_DIR})
 
   IF (NOT GDAL_LIBRARY)
   MESSAGE(FATAL_ERROR
@@ -479,7 +482,7 @@ IF(OTB_USE_EXTERNAL_GDAL)
   MESSAGE(STATUS "GDAL library found: ${GDAL_LIBRARY}")
 
   # Find geotiff headers
-  FIND_PATH(GEOTIFF_INCLUDE_DIRS geotiff.h $ENV{GDAL_INCLUDE_DIRS} ${GDAL_INCLUDE_DIRS} /usr/include/geotiff)
+  FIND_PATH(GEOTIFF_INCLUDE_DIRS geotiff.h $ENV{GDAL_INCLUDE_DIR} ${GDAL_INCLUDE_DIR} /usr/include/geotiff)
   IF (NOT GEOTIFF_INCLUDE_DIRS)
   MESSAGE(FATAL_ERROR
            "Cannot find geotiff headers. Please set GEOTIFF_INCLUDE_DIRS.")
@@ -487,7 +490,7 @@ IF(OTB_USE_EXTERNAL_GDAL)
   INCLUDE_DIRECTORIES(${GEOTIFF_INCLUDE_DIRS})
 
   # Find tiff headers
-  FIND_PATH(TIFF_INCLUDE_DIRS tiffio.h $ENV{GDAL_INCLUDE_DIRS} ${GDAL_INCLUDE_DIRS} /usr/include)
+  FIND_PATH(TIFF_INCLUDE_DIRS tiffio.h $ENV{GDAL_INCLUDE_DIR} ${GDAL_INCLUDE_DIR} /usr/include)
   IF (NOT TIFF_INCLUDE_DIRS)
   MESSAGE(FATAL_ERROR
            "Cannot find libtiff headers. Please set TIFF_INCLUDE_DIRS.")
@@ -495,7 +498,7 @@ IF(OTB_USE_EXTERNAL_GDAL)
   INCLUDE_DIRECTORIES(${TIFF_INCLUDE_DIRS})
 
   # Find jpeg headers
-  FIND_PATH(JPEG_INCLUDE_DIRS jpeglib.h $ENV{GDAL_INCLUDE_DIRS} ${GDAL_INCLUDE_DIRS} /usr/include)
+  FIND_PATH(JPEG_INCLUDE_DIRS jpeglib.h $ENV{GDAL_INCLUDE_DIR} ${GDAL_INCLUDE_DIR} /usr/include)
   IF (NOT JPEG_INCLUDE_DIRS)
   MESSAGE(FATAL_ERROR
            "Cannot find jpeg headers. Please set JPEG_INCLUDE_DIRS.")
@@ -503,7 +506,7 @@ IF(OTB_USE_EXTERNAL_GDAL)
   INCLUDE_DIRECTORIES(${JPEG_INCLUDE_DIRS})
 
   # Find ogr headers
-  FIND_PATH(OGR_INCLUDE_DIRS ogrsf_frmts.h  $ENV{GDAL_INCLUDE_DIRS} ${GDAL_INCLUDE_DIRS} /usr/include)
+  FIND_PATH(OGR_INCLUDE_DIRS ogrsf_frmts.h  $ENV{GDAL_INCLUDE_DIR} ${GDAL_INCLUDE_DIR} /usr/include)
   IF (NOT OGR_INCLUDE_DIRS)
   MESSAGE(FATAL_ERROR
            "Cannot find ogr headers. Please set OGR_INCLUDE_DIRS.")
@@ -514,7 +517,7 @@ IF(OTB_USE_EXTERNAL_GDAL)
   TRY_COMPILE(GDAL_HAS_TIFF
   ${CMAKE_CURRENT_BINARY_DIR}/CMake
   ${CMAKE_CURRENT_SOURCE_DIR}/CMake/TestGDALHasTiff.cxx
-  CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${TIFF_INCLUDE_DIRS};${GDAL_INCLUDE_DIRS}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}"
+  CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${TIFF_INCLUDE_DIRS};${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}"
   OUTPUT_VARIABLE OUTPUT)
   IF(GDAL_HAS_TIFF)
   MESSAGE(STATUS "Testing if GDAL has tiff    -- yes")
@@ -532,7 +535,7 @@ IF(OTB_USE_EXTERNAL_GDAL)
   TRY_COMPILE(GDAL_HAS_GEOTIFF
   ${CMAKE_CURRENT_BINARY_DIR}/CMake
   ${CMAKE_CURRENT_SOURCE_DIR}/CMake/TestGDALHasGeoTiff.cxx
-  CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GEOTIFF_INCLUDE_DIRS};${GDAL_INCLUDE_DIRS}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}"
+  CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GEOTIFF_INCLUDE_DIRS};${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}"
   OUTPUT_VARIABLE OUTPUT)
   IF(GDAL_HAS_GEOTIFF)
   MESSAGE(STATUS "Testing if GDAL has geotiff -- yes")
@@ -550,7 +553,7 @@ IF(OTB_USE_EXTERNAL_GDAL)
   TRY_COMPILE(GDAL_HAS_JPEG
   ${CMAKE_CURRENT_BINARY_DIR}/CMake
   ${CMAKE_CURRENT_SOURCE_DIR}/CMake/TestGDALHasJpeg.cxx
-  CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${JPEG_INCLUDE_DIRS};${GDAL_INCLUDE_DIRS}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}"
+  CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${JPEG_INCLUDE_DIRS};${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}"
   OUTPUT_VARIABLE OUTPUT)
   IF(GDAL_HAS_JPEG)
   MESSAGE(STATUS "Testing if GDAL has jpeg    -- yes")
@@ -568,7 +571,7 @@ IF(OTB_USE_EXTERNAL_GDAL)
   TRY_COMPILE(GDAL_HAS_OGR
   ${CMAKE_CURRENT_BINARY_DIR}/CMake
   ${CMAKE_CURRENT_SOURCE_DIR}/CMake/TestGDALHasOGR.cxx
-  CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${OGR_INCLUDE_DIRS};${GDAL_INCLUDE_DIRS}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}"
+  CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${OGR_INCLUDE_DIRS};${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}"
   OUTPUT_VARIABLE OUTPUT)
   IF(GDAL_HAS_OGR)
   MESSAGE(STATUS "Testing if GDAL has OGR     -- yes")
diff --git a/README b/README
index aadc048bce..25b2e181ed 100644
--- a/README
+++ b/README
@@ -77,14 +77,14 @@ NB: On some linux plateforms, you may (and should) use the official distribution
 	  --> set BUILD_SHARED_LIBS to OFF within CMake
 	  --> set BUILD_TESTING to OFF within CMake
 	  --> set CMAKE_INSTALL_PREFIX to INSTALL_DIR within CMake
-	  --> set GDAL_INCLUDE_DIRS to INSTALL_DIR/include within CMake
+	  --> set GDAL_INCLUDE_DIR to INSTALL_DIR/include within CMake
 	  --> set GDAL_LIBRARY to INSTALL_DIR/lib/ gdal library within CMake
 	  --> set OTB_USE_EXTERNAL_ITK to OFF within CMake
 	  --> set FLTK_DIR to INSTALL_DIR/Fltk-Binary within CMake
 	  --> generate the configuration with 'g'
        make
        make install
-      
+
 
 Installation on Microsoft Visual Studio .NET 2003 (7.1)
 -------------------------------------------------------
@@ -97,7 +97,7 @@ Installation on Microsoft Visual Studio .NET 2003 (7.1)
 	Load the solution (.sln file) and build the gdal project.
 	More details can be found at http://vterrain.org/Distrib/gdal.html.
 
-  Moreover, ORFEO Toolbox project provides for you windows binaries for gdal1.6.0 library. These files can 
+  Moreover, ORFEO Toolbox project provides for you windows binaries for gdal1.6.0 library. These files can
   be downloaded at http://www.orfeo-toolbox.org/packages
 
 2. Install Fltk
@@ -117,15 +117,15 @@ Installation on Microsoft Visual Studio .NET 2005 (8.0)
 1. Install GDAL
 
         Open a MS-DOS prompt.
-        Run the VCVARS32.bat script that comes with the compiler (it can be found in 
+        Run the VCVARS32.bat script that comes with the compiler (it can be found in
         Microsoft Visual Studio 8/VC/bin).
-        Then, go to the GDAL root directory, and tape : 
+        Then, go to the GDAL root directory, and tape :
                 nmake /f makefile.vc
         Once the build is successful, tape this line to install GDAL :
                 nmake /f makefile.vc install
-   
+
         More details about this install can be found at www.gdal.org/gdal_building.html.
-                
+
 2. Install Fltk
 
 	Use CMake on Windows to generate MSVC++ 8.0 project files from fltk sources.
@@ -142,14 +142,14 @@ Installation with MinGW on Windows platform
 
 0. Install MinGW
 
-	Download the lastest version of mingw and msys at http://www.mingw.org and install those 
+	Download the lastest version of mingw and msys at http://www.mingw.org and install those
 	two programs.
 	Then, launch MinGW : a promp appears (similar to Linux one).
 
 1. Install GDAL
 
 	To compile GDAL, at configure step, use these options :
-		./configure -prefix=INSTALL_DIR --host=mingw32 --without-libtool 
+		./configure -prefix=INSTALL_DIR --host=mingw32 --without-libtool
 		--without-python --with-png=internal --with-libtiff=internal
 		--with-jpeg=internal
 
diff --git a/otbIncludeDirectories.cmake b/otbIncludeDirectories.cmake
index 3bd3cc031d..0b9fb6a220 100644
--- a/otbIncludeDirectories.cmake
+++ b/otbIncludeDirectories.cmake
@@ -98,7 +98,7 @@ SET(OTB_INCLUDE_DIRS_BUILD_TREE ${OTB_INCLUDE_DIRS_BUILD_TREE}
 #-----------------------------------------------------------------------------
 # Include directories from the GDAL build tree.
 SET(OTB_INCLUDE_DIRS_BUILD_TREE ${OTB_INCLUDE_DIRS_BUILD_TREE}
-  	${GDAL_INCLUDE_DIRS} )
+  	${GDAL_INCLUDE_DIR} )
 #-----------------------------------------------------------------------------
 # Include directories from the CURL build tree.
 IF(OTB_USE_CURL)
@@ -221,7 +221,7 @@ SET(OTB_INCLUDE_DIRS_BUILD_TREE_CXX ${OTB_INCLUDE_DIRS_BUILD_TREE_CXX}
 
 #For GDAL header file
 SET(OTB_INCLUDE_DIRS_BUILD_TREE_CXX ${OTB_INCLUDE_DIRS_BUILD_TREE_CXX}
-  		${GDAL_INCLUDE_DIRS} )
+  		${GDAL_INCLUDE_DIR} )
 
 #For EXPAT header file
 IF(OTB_USE_EXTERNAL_EXPAT)
@@ -329,7 +329,7 @@ ENDIF(OTB_COMPILE_JPEG2000)
 
 #For GDAL header file
 SET(OTB_INCLUDE_ABSOLUE_DIRS ${OTB_INCLUDE_ABSOLUE_DIRS}
-  		${GDAL_INCLUDE_DIRS} )
+  		${GDAL_INCLUDE_DIR} )
 
 #For EXPAT header file
 IF(OTB_USE_EXTERNAL_EXPAT)
-- 
GitLab