From 832ee75cdba59fa0aada2e34b62bdaf7ebc83c94 Mon Sep 17 00:00:00 2001
From: Thomas Feuvrier <thomas.feuvrier@c-s.fr>
Date: Wed, 12 Aug 2009 11:50:49 +0200
Subject: [PATCH] ENH: Add developpers cmake options
 (OTB_COMPILE_WITH_FULL_WARNING) activate full warning

---
 CMakeLists.txt         | 11 +++++++++++
 Code/CMakeLists.txt    |  7 +++++++
 Testing/CMakeLists.txt |  7 +++++++
 3 files changed, 25 insertions(+)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5d6fb4bf31..a722ff6ae1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -752,6 +752,17 @@ MARK_AS_ADVANCED(OTB_SHOW_ALL_MSG_DEBUG)
 #  ADD_DEFINITIONS(-DOTB_SHOW_ALL_MSG_DEBUG)
 # ENDIF( OTB_SHOW_ALL_MSG_DEBUG )
 
+OPTION(OTB_COMPILE_WITH_FULL_WARNING "OTB developers : Compilation with FULL warning (use only for otb developers)." OFF)
+MARK_AS_ADVANCED(OTB_COMPILE_WITH_FULL_WARNING)
+IF(OTB_COMPILE_WITH_FULL_WARNING)
+  IF(CMAKE_COMPILER_IS_GNUCXX)
+    SET(OTB_FULL_WARNING_LIST_PARAMETERS "-Wall -Wunused  -Wunused-function  -Wunused-label  -Wunused-parameter -Wunused-value -Wunused-variable -pedantic -Wuninitialized -Wparentheses -Wsign-compare -Wunknown-pragmas -Wswitch -Wdiv-by-zero" CACHE STRING "List of compilation parameters.")
+    MARK_AS_ADVANCED(OTB_FULL_WARNING_LIST_PARAMETERS)
+  ENDIF(CMAKE_COMPILER_IS_GNUCXX)
+
+ENDIF(OTB_COMPILE_WITH_FULL_WARNING)
+
+
 #-----------------------------------------------------------------------------
 # Advanced option to avoid recompiling utilities at each cmake reconfiguration
 OPTION(OTB_DISABLE_UTILITIES_COMPILATION "Disable utilities compilation (developpers only - use at you own risk)" OFF)
diff --git a/Code/CMakeLists.txt b/Code/CMakeLists.txt
index e275b98a42..a6a579d3d1 100644
--- a/Code/CMakeLists.txt
+++ b/Code/CMakeLists.txt
@@ -22,3 +22,10 @@ ENDIF(OTB_USE_VISU_GUI)
 IF(OTB_USE_PQXX)
         SUBDIRS(GeospatialAnalysis)
 ENDIF(OTB_USE_PQXX)
+
+IF(OTB_COMPILE_WITH_FULL_WARNING)
+  IF(CMAKE_COMPILER_IS_GNUCXX)
+    SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OTB_FULL_WARNING_LIST_PARAMETERS}")
+    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OTB_FULL_WARNING_LIST_PARAMETERS}")
+  ENDIF(CMAKE_COMPILER_IS_GNUCXX)
+ENDIF(OTB_COMPILE_WITH_FULL_WARNING)
diff --git a/Testing/CMakeLists.txt b/Testing/CMakeLists.txt
index d15fcb28bc..b48f942f40 100644
--- a/Testing/CMakeLists.txt
+++ b/Testing/CMakeLists.txt
@@ -40,3 +40,10 @@ ELSE(OTB_BINARY_DIR)
     MESSAGE("OTB not found.  Please set OTB_DIR")
   ENDIF(OTB_FOUND)
 ENDIF(OTB_BINARY_DIR)
+
+IF(OTB_COMPILE_WITH_FULL_WARNING)
+  IF(CMAKE_COMPILER_IS_GNUCXX)
+    SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OTB_FULL_WARNING_LIST_PARAMETERS}")
+    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OTB_FULL_WARNING_LIST_PARAMETERS}")
+  ENDIF(CMAKE_COMPILER_IS_GNUCXX)
+ENDIF(OTB_COMPILE_WITH_FULL_WARNING)
-- 
GitLab