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)