diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5d6fb4bf31684ed6999c80a224f82877b2d76452..a722ff6ae19b85e5ff289b4dc4b941dd0674508d 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 e275b98a4263fd7d6f87b52e07851fe74fa07257..a6a579d3d180ca55c1a68629233f7b6a74b8a710 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 d15fcb28bcc4b5c3b5a03de007679caa1063f4ec..b48f942f408e7cb1fb06d63d47656fbd5e81b8c5 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)