From 7cbca7f73dc1f71108e09c706ea27a5469082afa Mon Sep 17 00:00:00 2001
From: Julien Michel <julien.michel@orfeo-toolbox.org>
Date: Tue, 14 Sep 2010 10:49:27 +0200
Subject: [PATCH] ENH: Simplifying FLTK configuration. Internal is default now,
 and it is possible to have a one shot cmake configuration without cmake error
 on FLTKConfig.cmake

---
 CMakeLists.txt              | 59 ++++++++++---------------------------
 otbIncludeDirectories.cmake | 10 +++----
 2 files changed, 20 insertions(+), 49 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 817e6e9219..7bf00ef23d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -321,50 +321,21 @@ IF(OTB_USE_VISU_GUI)
         #-------------------------------
         # FLTK Library
         #-------------------------------
-        
-        #OPTION(OTB_USE_EXTERNAL_FLTK "Use an outside build of FLTK." OFF)
-        
-        FIND_PACKAGE(FLTK)
-
-	# If an external fltk is found, do not provide the internal fltk choice
-	IF(FLTK_FOUND)
-       OPTION(OTB_USE_EXTERNAL_FLTK "Use an outside build of FLTK." ON)
-	ELSE(FLTK_FOUND)
-	   OPTION(OTB_USE_EXTERNAL_FLTK "Use an outside build of FLTK." OFF)
-	ENDIF(FLTK_FOUND)
-                         
-#        IF(FLTK_FOUND)
-#           SET(OTB_USE_EXTERNAL_FLTK ON)
-#        ELSE(FLTK_FOUND)
-#           SET(OTB_USE_EXTERNAL_FLTK OFF)
-#        ENDIF(FLTK_FOUND)
-
-        # Option for internal/external FLTK
-        MARK_AS_ADVANCED(OTB_USE_EXTERNAL_FLTK)
-
-        IF(OTB_USE_EXTERNAL_FLTK)
-
-                # Mingw Option doesn't exist in the FindFLTK.cmake default configuration file in CMake installationj directory.
-                # Copy  FLTK_PLATFORM_DEPENDENT_LIBS from FLTK CmakeList.txt
-                IF(MINGW)
-                    ADD_DEFINITIONS(-DWIN32)
-                    SET( FLTK_PLATFORM_DEPENDENT_LIBS ole32 uuid wsock32 gdi32 comdlg32)
-                ENDIF(MINGW)
-
-                IF(FLTK_FOUND)
-                    INCLUDE_DIRECTORIES(${FLTK_INCLUDE_DIR})
-                ELSE(FLTK_FOUND)
-                    MESSAGE(FATAL_ERROR
-	                        "Cannot build OTB project without FLTK.  Please set FLTK_DIR  or  set OTB_USE_VISU to OFF  or  set OTB_USE_EXTERNAL_FLTK OFF to use INTERNAL FLTK set on OTB/Utilities repository.")
-                ENDIF(FLTK_FOUND)
-
-        ELSE(OTB_USE_EXTERNAL_FLTK)
-                SET(FLTK_INCLUDE_DIR "")
-                SET(FLTK_LIBRARIES "")
-                
-                SET( FLTK_PLATFORM_DEPENDENT_LIBS "")
-                INCLUDE(${OTB_BINARY_DIR}/Utilities/FLTK/FLTKConfig.cmake)
-
+        OPTION(OTB_USE_EXTERNAL_FLTK "Use an outside build of FLTK." OFF)
+
+	IF(OTB_USE_EXTERNAL_FLTK)
+        	FIND_PACKAGE(FLTK)
+		IF(NOT FLTK_FOUND)
+			MESSAGE(FATAL_ERROR
+                  "Cannot build OTB project without FLTK. Please set FLTK_DIR or set OTB_USE_EXTERNAL_FLTK OFF to use INTERNAL FLTK.")
+		ENDIF(NOT FLTK_FOUND)
+	ELSE(OTB_USE_EXTERNAL_FLTK)
+		# Same Set as ITK
+		SET(FLTK_SOURCE_DIR ${OTB_SOURCE_DIR}/Utilities/FLTK)
+		SET(FLTK_BINARY_DIR ${OTB_BINARY_DIR}/Utilities/FLTK)
+		# Additionnal variables needed by OTB_VISU_GUI_LIBRARIES and FLTK_FLUID_EXECUTABLE
+		SET(FLTK_LIBRARIES "fltk_images;fltk;fltk_gl;fltk_forms")
+		SET(FLUID_COMMAND ${EXECUTABLE_OUTPUT_PATH}/fluid)
         ENDIF(OTB_USE_EXTERNAL_FLTK)
 
         SET(OTB_VISU_GUI_LIBRARIES "${FLTK_LIBRARIES};${OPENGL_LIBRARIES} ")
diff --git a/otbIncludeDirectories.cmake b/otbIncludeDirectories.cmake
index b76f89416c..76345033a9 100644
--- a/otbIncludeDirectories.cmake
+++ b/otbIncludeDirectories.cmake
@@ -181,15 +181,15 @@ ELSE(OTB_USE_EXTERNAL_ITK)
         )
 ENDIF(OTB_USE_EXTERNAL_ITK)
 
-#For FLTK header file
+#For  header file
 IF(OTB_USE_EXTERNAL_FLTK)
         SET(OTB_INCLUDE_DIRS_BUILD_TREE ${OTB_INCLUDE_DIRS_BUILD_TREE}
-      ${FLTK_INCLUDE_DIRS} )
+      		${FLTK_INCLUDE_DIRS} )
 ELSE(OTB_USE_EXTERNAL_FLTK)
         SET(OTB_INCLUDE_DIRS_BUILD_TREE ${OTB_INCLUDE_DIRS_BUILD_TREE}
-                ${OTB_SOURCE_DIR}/Utilities/FLTK
-            ${OTB_SOURCE_DIR}/Utilities/FLTK/src
-            ${OTB_BINARY_DIR}/Utilities/FLTK )
+                ${FLTK_SOURCE_DIR}
+            	${FLTK_SOURCE_DIR}/src
+            	${FLTK_BINARY_DIR} )
 ENDIF(OTB_USE_EXTERNAL_FLTK)
 
 #-----------------------------------------------------------------------------
-- 
GitLab