diff --git a/CMake/CPackFunctions.cmake b/CMake/CPackFunctions.cmake
deleted file mode 100644
index 119aa8e3a2c470966cfd3bc8812f6647129928e2..0000000000000000000000000000000000000000
--- a/CMake/CPackFunctions.cmake
+++ /dev/null
@@ -1,408 +0,0 @@
-#
-# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
-#
-# This file is part of Orfeo Toolbox
-#
-#     https://www.orfeo-toolbox.org/
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-#RK: two packages.
-#function(create_cpack_config application)
-function(create_cpack_config)
-  #should we handle this when calling function ?
-  #for now mapla has no specific version or it is same as monteverdi
-  SET(CPACK_PACKAGE_VERSION "${Monteverdi_VERSION_MAJOR}.${Monteverdi_VERSION_MINOR}.${Monteverdi_VERSION_PATCH}${Monteverdi_VERSION_SUFFIX}")
-  SET(CPACK_PACKAGE_VERSION_MAJOR "${Monteverdi_VERSION_MAJOR}")
-  SET(CPACK_PACKAGE_VERSION_MINOR "${Monteverdi_VERSION_MINOR}")
-  SET(CPACK_PACKAGE_VERSION_PATCH "${Monteverdi_VERSION_PATCH}")
-  #monteverdi short version string - eg: 3.0.0-beta
-  SET(PACKAGE_SHORT_VERSION_STRING ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}${Monteverdi_VERSION_SUFFIX})
-
-  if(WIN32)
-    set(arch_prefix win32)
-    set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES")
-    if(CMAKE_SIZEOF_VOID_P EQUAL 8)
-      set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")
-      set(arch_prefix win64)
-    endif()
-    SET(CPACK_GENERATOR "NSIS")
-    SET(CPACK_NSIS_MODIFY_PATH OFF)
-        SET(CPACK_NSIS_CONTACT "contact@orfeo-toolbox.org")
-
-    #RK: two packages.
-    #STRING(TOLOWER ${application} application_)
-    #SET(EXEFILE_NAME "${application_}.exe")
-    #SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\${EXEFILE_NAME}")
-    #SET(BATFILE_NAME "${application_}.bat")
-    #SET(CPACK_NSIS_MENU_LINKS "bin/${BATFILE_NAME}" "${application}" )
-    # SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS
-    # "Delete \\\"$SMPROGRAMS\\\\${application}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}\\\\${application}.lnk\\\"  ")
-    # SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS
-    #   "CreateShortCut \\\"$SMPROGRAMS\\\\${application}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}\\\\${application}.lnk\\\" \\\"$INSTDIR\\\\bin\\\\${BATFILE_NAME}\\\" \\\" \\\" \\\"$INSTDIR\\\\bin\\\\${EXEFILE_NAME}\\\"
-    # ")
-
-SET(application "Monteverdi")
-SET(startmenufolder "${application}-${PACKAGE_SHORT_VERSION_STRING}")
-
-#set(CPACK_NSIS_DEFINES "  !define MUI_STARTMENUPAGE_DEFAULTFOLDER \\\"${startmenufolder} (${arch_prefix})\\\"")
-#SET(CPACK_PACKAGE_EXECUTABLES "monteverdi.bat" "Monteverdi")
-#SET(CPACK_CREATE_DESKTOP_LINKS "monteverdi.bat" )
-
-SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\monteverdi.exe")
-SET(CPACK_PACKAGE_ICON   "${Monteverdi_SOURCE_DIR}\\\\Data\\\\Icons\\\\monteverdi.ico")
-SET(CPACK_NSIS_CREATE_ICONS "CreateShortCut '$SMPROGRAMS\\\\${startmenufolder}\\\\Monteverdi.lnk'  '$INSTDIR\\\\bin\\\\monteverdi.bat' ")
-SET(CPACK_NSIS_CREATE_ICONS_EXTRA "CreateShortCut '$SMPROGRAMS\\\\${startmenufolder}\\\\Mapla.lnk'     '$INSTDIR\\\\bin\\\\mapla.bat' ")
-SET(CPACK_NSIS_MUI_FINISHPAGE_RUN "monteverdi.bat")
-SET(CPACK_NSIS_DELETE_ICONS
-      "Delete \\\"$SMPROGRAMS\\\\${startmenufolder}\\\\Monteverdi.lnk\\\" ")
-SET(CPACK_NSIS_DELETE_ICONS_EXTRA
-      "Delete \\\"$SMPROGRAMS\\\\${startmenufolder}\\\\Mapla.lnk\\\" ")
-
-  else(APPLE)
-      set(arch_prefix Darwin)
-     if(CMAKE_SIZEOF_VOID_P EQUAL 8)
-      set(arch_prefix Darwin64)
-    endif()
-    SET(CPACK_GENERATOR "Bundle")
-    SET(CPACK_BUNDLE_ICON "${Monteverdi_SOURCE_DIR}/Packaging/MacOS/Monteverdi.icns" )
-    SET(CPACK_BUNDLE_NAME "${application}-${PACKAGE_SHORT_VERSION_STRING}" )
-    SET(CPACK_BUNDLE_PLIST "${CMAKE_BINARY_DIR}/Packaging/MacOS/${application}-Info.plist" )
-    SET(CPACK_BUNDLE_STARTUP_COMMAND "${Monteverdi_SOURCE_DIR}/Packaging/MacOS/${application}-StartupCommand" )
-
-  endif()
-
-  #common cpack configurations.
-
-  ##################################
-  ##################################
-  #CAUTION: Be careful when changing values below.#
-  ##################################
-  ##################################
-
-  SET(CPACK_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
-  SET(CPACK_MODULE_PATH "${Monteverdi_SOURCE_DIR}/CMake")
-  SET(CPACK_NSIS_INSTALLER_ICON_CODE "")
-  SET(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "")
-  SET(CPACK_PACKAGE_CONTACT "contact@orfeo-toolbox.org")
-  SET(CPACK_PACKAGE_DEFAULT_LOCATION "/")
-  SET(CPACK_PACKAGE_DESCRIPTION_FILE "${Monteverdi_SOURCE_DIR}/Description.txt")
-
-  SET(CPACK_RESOURCE_FILE_LICENSE "${Monteverdi_SOURCE_DIR}/Copyright/Copyright.txt")
-  SET(CPACK_OUTPUT_CONFIG_FILE "${CMAKE_BINARY_DIR}/CPackConfig-${application}.cmake")
-  SET(CPACK_NSIS_MUI_ICON    "${Monteverdi_SOURCE_DIR}/Data/Icons/monteverdi.ico")
-  SET(CPACK_NSIS_MUI_UNIICON "${Monteverdi_SOURCE_DIR}/Data/Icons/monteverdi.ico")
-
-  SET(CPACK_COMPONENTS_ALL)
-  LIST(APPEND CPACK_COMPONENTS_ALL  "Resources")
-  LIST(APPEND CPACK_COMPONENTS_ALL "Runtime")
-
-  #RK: two packages
-  #LIST(APPEND CPACK_COMPONENTS_ALL "${application}")
-  LIST(APPEND CPACK_COMPONENTS_ALL "Monteverdi")
-  LIST(APPEND CPACK_COMPONENTS_ALL "Mapla")
-
-  SET(CPACK_COMPONENT_MAPLA_DEPENDS Runtime)
-  SET(CPACK_COMPONENT_MONTEVERDI_DEPENDS Runtime)
-  SET(CPACK_COMPONENT_RUNTIME_DEPENDS Resources)
-
-  SET(CPACK_COMPONENT_RUNTIME_REQUIRED ON)
-  SET(CPACK_COMPONENT_RESOURCES_REQUIRED ON)
-  SET(CPACK_COMPONENT_MAPLA_REQUIRED ON)
-  SET(CPACK_COMPONENT_MONTEVERDI_REQUIRED ON)
-
-  SET(CPACK_COMPONENT_RESOURCES_HIDDEN ON)
-
-  if(APPLE)
-  SET(CPACK_INSTALL_CMAKE_PROJECTS "${CMAKE_BINARY_DIR};${application};ALL;/")
-  else(WIN32)
-    SET(CPACK_INSTALL_CMAKE_PROJECTS "${CMAKE_BINARY_DIR};ALL;ALL;/")
-  endif()
-  SET(CPACK_PACKAGE_VENDOR "OTB Team")
-
-  SET(CPACK_PACKAGE_NAME "${application}")
-  SET(CPACK_NSIS_DISPLAY_NAME "${application}-${PACKAGE_SHORT_VERSION_STRING}")
-  SET(CPACK_NSIS_PACKAGE_NAME "${application}-${PACKAGE_SHORT_VERSION_STRING}")
-  SET(CPACK_PACKAGE_INSTALL_DIRECTORY "${application}-${PACKAGE_SHORT_VERSION_STRING}")
-  SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${application}-${PACKAGE_SHORT_VERSION_STRING}")
-  SET(CPACK_PACKAGE_FILE_NAME "${application}-${CPACK_PACKAGE_VERSION}-${arch_prefix}")
-
-  INCLUDE(InstallRequiredSystemLibraries)
-  INCLUDE(CPack)
-
-endfunction(create_cpack_config)
-
-
-
-function(configure_app_package app with_otb_apps)
-
-  string(TOLOWER ${app} EXECUTABLE_NAME)
-  set(APP_QTCONF_DIR bin)
-  set(APP_QTSQLITE_FILENAME qsqlite4.dll)
-  set(APP_QTPLUGINS_DIR lib/qt4/plugins)
-  set(APP_OTBLIBS_DIR lib/otb)
-  set(APP_I18N_DIR lib/qt4/translations)
-  set(APP_DATA_DIR share)
-  set(APP_NAME "\${CMAKE_INSTALL_PREFIX}/bin/${EXECUTABLE_NAME}.exe")
-
-  install(CODE "file(WRITE \"\${CMAKE_INSTALL_PREFIX}/${APP_QTCONF_DIR}/qt.conf\"
-                \"[Paths]
-                  Translations=../lib/qt4/translations
-                  Plugins=../lib/qt4/plugins
-                \")"
-    COMPONENT Runtime)
-
-  install(FILES ${Monteverdi_SOURCE_DIR}/Packaging/Windows/${EXECUTABLE_NAME}.bat
-    DESTINATION bin
-    COMPONENT ${app})
-
-  if(WIN32)
-
-    if(NOT CMAKE_CROSSCOMPILING AND Monteverdi_USE_CPACK)
-
-      file(TO_CMAKE_PATH "$ENV{OSGEO4W_ROOT}" OSGEO4W_ROOT)
-      if(NOT OSGEO4W_ROOT)
-        message(FATAL_ERROR "Cannot generate installer without OSGeo4W environment : OSGEO4W_ROOT")
-      endif(NOT OSGEO4W_ROOT)
-
-      # The following DLL handling is very specific
-      # both to OSGeo4W flavour (32 bit or 64 bit), OSGeo4W package state
-      # and the compiler used to make the Monteverdi installer (VC2010)
-      # Don't expect too much of it without VC2010.
-
-      # For some reason, fixup_bundle won't package the msvc runtime dll
-      # I guess it's because cpack already handles installing the runtime,
-      # but here we build with a particular version of Visual, but
-      # some OSGeo4W dependencies are built upon other runtimes
-      set(MVD2_ADDITIONAL_DLLS
-        ${OSGEO4W_ROOT}/bin/msvcp60.dll
-        ${OSGEO4W_ROOT}/bin/msvcp70.dll
-        ${OSGEO4W_ROOT}/bin/msvcp71.dll
-        ${OSGEO4W_ROOT}/bin/msvcr71.dll
-        ${OSGEO4W_ROOT}/bin/msvcrt.dll)
-
-      # Since an upgrade in OSGeo4W-32bit of libpq (around 2013/10)
-      # libpq depends on two additional libs that cmake
-      # surprisingly miss during package generation
-      # I really don't understand why.
-      # Let's add them manually
-
-      set(MVD2_ADDITIONAL_DLLS
-        ${MVD2_ADDITIONAL_DLLS}
-        ${OSGEO4W_ROOT}/bin/libgcc_s_dw2-1.dll
-        ${OSGEO4W_ROOT}/bin/libiconv-2.dll)
-
-      foreach(dll ${MVD2_ADDITIONAL_DLLS})
-        if (EXISTS ${dll})
-          install( FILES ${dll} DESTINATION bin COMPONENT Runtime )
-        endif()
-      endforeach()
-
-      #RK: two packages
-      # set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${app}")
-      # create_cpack_config(${app})
-
-    endif() #(NOT CMAKE_CROSSCOMPILING AND Monteverdi_USE_CPACK)
-
-
-    # if(CMAKE_CROSSCOMPILING)
-    #   if(NOT DEFINED MXE_TARGET_DIR)
-    #     message(FATAL_ERROR "MXE_TARGET_DIR is missing")
-    #   endif()
-    #   if(MXE_TARGET_DIR MATCHES "i686")
-    #     set(mxearch x86)
-    #     set(archive_name ${app}-${Monteverdi_VERSION_STRING}-win32)
-    #   elseif(MXE_TARGET_DIR MATCHES "x86_64")
-    #     set(mxearch x64)
-    #     set(archive_name ${app}-${Monteverdi_VERSION_STRING}-win64)
-    #   endif()
-
-    #   execute_process(COMMAND ${CMAKE_COMMAND} -E remove_directory "${CMAKE_INSTALL_PREFIX}/${archive_name}")
-
-    #   get_filename_component(mxeroot ${MXE_TARGET_DIR} PATH)
-    #   get_filename_component(mxeroot ${mxeroot} PATH)
-    #   file(WRITE "${CMAKE_BINARY_DIR}/_mingw/${app}/CMakeLists.txt"
-    #     "cmake_minimum_required(VERSION 2.6)
-    #    include(CMakeParseArguments)
-    #    set(Monteverdi_SOURCE_DIR \"${Monteverdi_SOURCE_DIR}\")
-    #    set(OTB_MODULES_DIR \"${OTB_MODULES_DIR}\")
-    #    set(QT_PLUGINS_DIR \"${QT_PLUGINS_DIR}\")
-    #    set(QT_TRANSLATIONS_DIR \"${QT_TRANSLATIONS_DIR}\")
-    #    set(Monteverdi_BINARY_DIR \"${CMAKE_BINARY_DIR}\")
-    #    set(CMAKE_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")
-    #    set(Monteverdi_INSTALL_DATA_DIR \"${Monteverdi_INSTALL_DATA_DIR}\")
-    #     include(${CMAKE_SOURCE_DIR}/CMake/MinGWPackage.cmake)
-    #     include(${CMAKE_SOURCE_DIR}/CMake/CPackFunctions.cmake)
-    #     package_mingw(
-    #     ARCH \"${mxearch}\"
-    #     MXEROOT \"${mxeroot}\"
-    #     PREFIX_DIR \"${archive_name}\"
-    #     PEFILES \"${APP_NAME}\"
-    #     NEEDS_OTB_APPS ${with_otb_apps}
-    #     SEARCHDIRS \"\")")
-
-    #   set(GDAL_DATA ${MXE_TARGET_DIR}/share/gdal)
-
-    #   add_custom_target(configure-${app}-mingw-package
-    #     COMMAND ${CMAKE_COMMAND}
-    #     "${CMAKE_BINARY_DIR}/_mingw/${app}"
-    #     WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/_mingw/${app}")
-
-    #   add_custom_target(make-${app}-mingw-package
-    #     COMMAND ${CMAKE_COMMAND}
-    #     "--build" "${CMAKE_BINARY_DIR}/_mingw/${app}" "--target" "install"
-    #     WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/_mingw/${app}"
-    #     DEPENDS configure-${app}-mingw-package)
-
-    #   find_program(ZIP_EXECUTABLE zip)
-
-    #   if(ZIP_EXECUTABLE)
-    #     add_custom_target(create-${app}-mingw-archive
-    #       COMMAND ${ZIP_EXECUTABLE} "-r" "${CMAKE_BINARY_DIR}/${archive_name}.zip" "${archive_name}"
-    #       WORKING_DIRECTORY "${CMAKE_INSTALL_PREFIX}"
-    #       DEPENDS make-${app}-mingw-package)
-    #   else()
-    #     message(FATAL_ERROR "Cannot find zip executable. Please add it to your path")
-    #   endif()
-
-    # endif() # (CMAKE_CROSSCOMPILING)
-
-  endif(WIN32)
-
-  if(APPLE)
-    set(APP_NAME "\${CMAKE_INSTALL_PREFIX}/${app}.app")
-    set(APP_PREFIX_DIR ${app}.app/Contents) #osx prefix
-    set(APP_QTCONF_DIR ${APP_PREFIX_DIR}/Resources)
-    set(APP_QTSQLITE_FILENAME libqsqlite.dylib)
-    set(APP_QTPLUGINS_DIR ${APP_PREFIX_DIR}/plugins)
-    set(APP_OTBLIBS_DIR ${APP_PREFIX_DIR}/MacOS/otb)
-    set(APP_I18N_DIR ${APP_PREFIX_DIR}/Resources/otb/translations) #translations
-    set(APP_DATA_DIR ${APP_PREFIX_DIR}/Resources)
-
-    install(FILES ${CMAKE_SOURCE_DIR}/Packaging/MacOS/Monteverdi.icns
-      DESTINATION ${APP_PREFIX_DIR}/Resources
-      COMPONENT Resources)
-
-    install(FILES ${CMAKE_BINARY_DIR}/Code/Application/${app}/${EXECUTABLE_NAME}_start
-      DESTINATION ${APP_PREFIX_DIR}/MacOS
-      PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
-      COMPONENT Runtime)
-
-    install(CODE
-      "file(WRITE \"\${CMAKE_INSTALL_PREFIX}/${APP_QTCONF_DIR}/qt.conf\"
-     \"[Paths]
-       Translations=Resources/otb/translations
-       Plugins=plugins
-     \")"
-      COMPONENT Runtime)
-
-    file(GLOB APP_QM_TRANSLATIONS /*.qm) # qm files
-
-    file(GLOB APP_TS_FILES ${CMAKE_SOURCE_DIR}/i18n/*.ts) # qm files
-
-    foreach(APP_TS_FILE ${APP_TS_FILES})
-      get_filename_component(APP_TS_FILENAME ${APP_TS_FILE} NAME_WE)
-      install(FILES ${CMAKE_BINARY_DIR}/i18n/${APP_TS_FILENAME}.qm
-        DESTINATION ${APP_PREFIX_DIR}/${Monteverdi_INSTALL_DATA_DIR}/i18n/
-        COMPONENT Resources)
-    endforeach()
-
-    set(CPACK_BINARY_DRAGNDROP ON)
-
-  endif(APPLE)
-
-#   ################################################################################
-#   ################################################################################
-#   ################### END OF PLATFORM SPECIFIC CMAKE VARIABLES ###################
-#   ################################################################################
-#   ################################################################################
-
-#   ####################### install sqldrivers plugin #######################
-
-#   install(FILES ${QT_PLUGINS_DIR}/sqldrivers/${APP_QTSQLITE_FILENAME}
-#     DESTINATION ${APP_QTPLUGINS_DIR}/sqldrivers
-#     COMPONENT Runtime)
-
-#   ####################### install translations #######################
-#   get_qt_translation_files(QT_TRANSLATIONS_FILES)
-
-#   install(FILES ${QT_TRANSLATIONS_FILES}
-#     DESTINATION ${APP_I18N_DIR}
-#     COMPONENT Resources)
-
-#   ####################### install GDAL data #######################
-
-
-#   if(NOT DEFINED GDAL_DATA)
-#     file(TO_CMAKE_PATH "$ENV{GDAL_DATA}" GDAL_DATA)
-#     if(NOT GDAL_DATA)
-#       if(Monteverdi_USE_CPACK)
-#         message(FATAL_ERROR "Cannot generate installer without GDAL_DATA : GDAL_DATA")
-#       else()
-#         message(WARNING "Cannot generate installer without GDAL_DATA : GDAL_DATA")
-#       endif()
-#     endif()
-#   endif() #(DEFINED GDAL_DATA)
-#   # Need to include csv files provided with GDAL that contains some needed EPSG definitions
-
-#   install(DIRECTORY ${GDAL_DATA}
-#     DESTINATION ${APP_DATA_DIR}
-#     COMPONENT Resources)
-
-#   ####################### Check otb applications #######################
-
-#   if(with_otb_apps)
-# #      message(FATAL_ERROR "No OTB-applications detected")
-#     file(GLOB OTB_APPS_LIST ${OTB_MODULES_DIR}/../../../otb/applications/otbapp_*${CMAKE_SHARED_LIBRARY_SUFFIX}) # /lib/otb
-#     if(NOT OTB_APPS_LIST)
-#       message(FATAL_ERROR "No OTB-applications detected")
-#     endif()
-
-#     ## otb apps dir /lib/otb/applications
-#     install(DIRECTORY "${OTB_MODULES_DIR}/../../../otb/applications"
-#       DESTINATION ${APP_OTBLIBS_DIR}
-#       COMPONENT Runtime)
-
-#   endif(with_otb_apps)
-
-#   ## directories to look for dependencies
-#   set(SEARCH_DIRS)
-#   list(APPEND SEARCH_DIRS "${QT_PLUGINS_DIR}/sqldrivers")
-#   list(APPEND SEARCH_DIRS "${ITK_MODULES_DIR}/../../../")
-#   list(APPEND SEARCH_DIRS "${OTB_MODULES_DIR}/../../../")
-#   list(APPEND SEARCH_DIRS "${CMAKE_INSTALL_PREFIX}/lib/otb/")
-
-#   ####################### install fixup_bundle code #######################
-#   ## fixup_bundle code
-#   if(NOT CMAKE_CROSSCOMPILING)
-#     if(with_otb_apps)
-#       install(CODE
-#         "file(GLOB APP_LIBS \"${CMAKE_INSTALL_PREFIX}/${APP_OTBLIBS_DIR}/applications/otbapp_*${CMAKE_SHARED_LIBRARY_SUFFIX}\")
-#         list(APPEND APP_LIBS \"${CMAKE_INSTALL_PREFIX}/${APP_QTPLUGINS_DIR}/sqldrivers/${APP_QTSQLITE_FILENAME}\")
-#         include(BundleUtilities)
-#         set(BU_CHMOD_BUNDLE_ITEMS ON)
-#         fixup_bundle(\"${APP_NAME}\" \"\${APP_LIBS}\" \"${SEARCH_DIRS}\")"
-#         COMPONENT ${app})
-
-#     else() #(with_otb_apps)
-#       install(CODE
-#         "file(GLOB APP_LIBS \"${CMAKE_INSTALL_PREFIX}/${APP_QTPLUGINS_DIR}/sqldrivers/${APP_QTSQLITE_FILENAME}\")
-#         include(BundleUtilities)
-#         set(BU_CHMOD_BUNDLE_ITEMS ON)
-#         fixup_bundle(\"${APP_NAME}\" \"\${APP_LIBS}\" \"${SEARCH_DIRS}\")"
-#         COMPONENT ${app})
-#     endif() #(with_otb_apps)
-#   endif() #(NOT CMAKE_CROSSCOMPILING)
-endfunction(configure_app_package)
-
diff --git a/CMake/FindAgg.cmake b/CMake/FindAgg.cmake
index 68fb8d7101040b57fec81c4fe63a3209b3c5f591..c47d5cf1ad7e507ad5480ee11b93d0aae929c5ee 100644
--- a/CMake/FindAgg.cmake
+++ b/CMake/FindAgg.cmake
@@ -36,7 +36,7 @@ find_path( AGG_INCLUDE_DIR agg_pixfmt_rgba.h
 # handle the QUIETLY and REQUIRED arguments and set AGG_FOUND to TRUE if
 # all listed variables are TRUE
 include( FindPackageHandleStandardArgs )
-FIND_PACKAGE_HANDLE_STANDARD_ARGS( Agg DEFAULT_MSG AGG_INCLUDE_DIR )
+find_package_handle_standard_args( Agg DEFAULT_MSG AGG_INCLUDE_DIR )
 
 mark_as_advanced( AGG_INCLUDE_DIR )
 
diff --git a/CMake/FindGBenchmark.cmake b/CMake/FindGBenchmark.cmake
index 76532bf91702ce1d9d193c407734bd14131c252b..44a49cec0bc66380bfe0fab044369eafb3336e4e 100644
--- a/CMake/FindGBenchmark.cmake
+++ b/CMake/FindGBenchmark.cmake
@@ -41,7 +41,7 @@ find_library(GBENCHMARK_LIBRARY NAMES benchmark)
 mark_as_advanced(GBENCHMARK_LIBRARY)
 
 include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(GBENCHMARK
+find_package_handle_standard_args(GBENCHMARK
   REQUIRED_VARS GBENCHMARK_LIBRARY GBENCHMARK_INCLUDE_DIR
   )
 #VERSION_VAR GBENCHMARK_VERSION_STRING
diff --git a/CMake/FindGLEW.cmake b/CMake/FindGLEW.cmake
index 243191dbd57e5d53d680c74fa7f697f4e6b13f60..6ec4e8707ec38a78129fdc2dae16f4a941d20d19 100644
--- a/CMake/FindGLEW.cmake
+++ b/CMake/FindGLEW.cmake
@@ -35,6 +35,7 @@
 # GLEW_LIBRARY
 #
 
+# This whole file could be deleted. Find Packages GLEW can be used now
 find_path(
   GLEW_INCLUDE_DIR GL/glew.h
   DOC "The directory where GL/glew.h resides"
@@ -57,6 +58,6 @@ if (GLEW_INCLUDE_DIR AND GLEW_LIBRARY)
 endif()
 
 INCLUDE(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLEW
+find_package_handle_standard_args(GLEW
   REQUIRED_VARS GLEW_LIBRARY GLEW_INCLUDE_DIR
   VERSION_VAR GLEW_VERSION_STRING)
diff --git a/CMake/FindGLFW.cmake b/CMake/FindGLFW.cmake
index 09d823fe33df4d7a2fddbdb2b0ae7718dc9f7c20..2d5e3ea51693f40d9235c1d13868ea1cfdd5547c 100644
--- a/CMake/FindGLFW.cmake
+++ b/CMake/FindGLFW.cmake
@@ -78,6 +78,6 @@ IF(GLFW_INCLUDE_DIR AND EXISTS "${GLFW_INCLUDE_DIR}/GLFW/glfw3.h")
 ENDIF()
 
 INCLUDE(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLFW
-                                  REQUIRED_VARS GLFW_LIBRARY GLFW_INCLUDE_DIR
-                                  VERSION_VAR GLFW_VERSION_STRING)
+find_package_handle_standard_args(GLFW
+  REQUIRED_VARS GLFW_LIBRARY GLFW_INCLUDE_DIR
+  VERSION_VAR GLFW_VERSION_STRING)
diff --git a/CMake/FindGeoTIFF.cmake b/CMake/FindGeoTIFF.cmake
index cf68262d01f888f6db0c5523d4a1b4465fc7b6fa..87c9c7871fcdc25830a5e92a1ae9caaa94daa0e8 100644
--- a/CMake/FindGeoTIFF.cmake
+++ b/CMake/FindGeoTIFF.cmake
@@ -58,9 +58,8 @@ mark_as_advanced( GEOTIFF_INCLUDE_DIR GEOTIFF_LIBRARY )
 # handle the QUIETLY and REQUIRED arguments and set GEOTIFF_FOUND to TRUE if 
 # all listed variables are TRUE
 include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS( GeoTIFF DEFAULT_MSG
-                                    GEOTIFF_LIBRARY
-                                    GEOTIFF_INCLUDE_DIR)
+find_package_handle_standard_args( GeoTIFF DEFAULT_MSG
+  GEOTIFF_LIBRARY GEOTIFF_INCLUDE_DIR)
 
 if(GEOTIFF_FOUND)
   set( GEOTIFF_INCLUDE_DIRS ${GEOTIFF_INCLUDE_DIR} )
diff --git a/CMake/FindICUUC.cmake b/CMake/FindICUUC.cmake
index 8bd6087425e8f14f83e8c37805c345e1b3145669..042adfdf79091b9d93fddda07bfd1572bc249968 100644
--- a/CMake/FindICUUC.cmake
+++ b/CMake/FindICUUC.cmake
@@ -39,7 +39,7 @@ find_library( ICUUC_LIBRARY
 # handle the QUIETLY and REQUIRED arguments and set ICUUC_FOUND to TRUE if
 # all listed variables are TRUE
 include( FindPackageHandleStandardArgs )
-FIND_PACKAGE_HANDLE_STANDARD_ARGS( ICUUC DEFAULT_MSG ICUUC_LIBRARY ICUUC_INCLUDE_DIR )
+find_package_handle_standard_args( ICUUC DEFAULT_MSG ICUUC_LIBRARY ICUUC_INCLUDE_DIR )
 
 mark_as_advanced( ICUUC_INCLUDE_DIR ICUUC_LIBRARY )
 
diff --git a/CMake/FindLTDL.cmake b/CMake/FindLTDL.cmake
index 797f0ce9956e7ffd52f99b9e565c9624e0ffc586..1820b17295dcdf3867e2cb478490e6a52e361574 100644
--- a/CMake/FindLTDL.cmake
+++ b/CMake/FindLTDL.cmake
@@ -39,7 +39,7 @@ find_library( LTDL_LIBRARY
 # handle the QUIETLY and REQUIRED arguments and set LTDL_FOUND to TRUE if
 # all listed variables are TRUE
 include( FindPackageHandleStandardArgs )
-FIND_PACKAGE_HANDLE_STANDARD_ARGS( LTDL DEFAULT_MSG LTDL_LIBRARY LTDL_INCLUDE_DIR )
+find_package_handle_standard_args( LTDL DEFAULT_MSG LTDL_LIBRARY LTDL_INCLUDE_DIR )
 
 mark_as_advanced( LTDL_INCLUDE_DIR LTDL_LIBRARY )
 
diff --git a/CMake/FindLibKML.cmake b/CMake/FindLibKML.cmake
index d0ff838045f4750492ae9591fb252f4de3365b4a..ee3c3376c240b77accac66bd149a9e62c75ecab6 100644
--- a/CMake/FindLibKML.cmake
+++ b/CMake/FindLibKML.cmake
@@ -46,7 +46,7 @@ mark_as_advanced(
 # handle the QUIETLY and REQUIRED arguments and set LIBKML_FOUND to TRUE if
 # all listed variables are TRUE
 include( FindPackageHandleStandardArgs )
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(
+find_package_handle_standard_args(
   LibKML
   DEFAULT_MSG
   LIBKML_INCLUDE_DIR
diff --git a/CMake/FindLibSVM.cmake b/CMake/FindLibSVM.cmake
index 93b2c9d126f4b7abe7aa89fb0d7a92fa40bc4f76..701c96cfe6010444ad6659790a6325c9f70026a6 100644
--- a/CMake/FindLibSVM.cmake
+++ b/CMake/FindLibSVM.cmake
@@ -121,13 +121,12 @@ endif ()
 
 # handle REQUIRED and QUIET options
 include ( FindPackageHandleStandardArgs )
-find_package_handle_standard_args ( LibSVM DEFAULT_MSG LIBSVM_LIBRARY
+find_package_handle_standard_args( LibSVM DEFAULT_MSG LIBSVM_LIBRARY
   _LIBSVM_VERSION_MATCH
   LIBSVM_INCLUDE_DIR
   LIBSVM_INCLUDE_DIRS
   LIBSVM_LIBRARIES
-  LIBSVM_ROOT_DIR
-)
+  LIBSVM_ROOT_DIR)
 
 mark_as_advanced (
   LIBSVM_LIBRARY
diff --git a/CMake/FindMercurial.cmake b/CMake/FindMercurial.cmake
index 7afdd86bb502f5bc96d320a3c7b04d9b27a80e25..cb84c1249830fcd25d76df3c6c9a49c96bb99616 100644
--- a/CMake/FindMercurial.cmake
+++ b/CMake/FindMercurial.cmake
@@ -28,7 +28,7 @@
 #    message("Mercurial version is ${Mercurial_VERSION_HG}")
 #  endif()
 
-
+# This file can be deleted  as we no longer use mercurial
 set(Mercurial_FOUND FALSE)
 set(Mercurial_HG_FOUND FALSE)
 
diff --git a/CMake/FindMuParser.cmake b/CMake/FindMuParser.cmake
index 22bba09d0a4524100ed260400dbbf0b5f34577e2..ecfd7e7157a5414dc94cec454c1ba69fddd9d817 100644
--- a/CMake/FindMuParser.cmake
+++ b/CMake/FindMuParser.cmake
@@ -66,7 +66,7 @@ find_library( MUPARSER_LIBRARY
 # handle the QUIETLY and REQUIRED arguments and set MUPARSER_FOUND to TRUE if
 # all listed variables are TRUE
 include( FindPackageHandleStandardArgs )
-FIND_PACKAGE_HANDLE_STANDARD_ARGS( MuParser DEFAULT_MSG MUPARSER_LIBRARY MUPARSER_INCLUDE_DIR )
+find_package_handle_standard_args( MuParser DEFAULT_MSG MUPARSER_LIBRARY MUPARSER_INCLUDE_DIR )
 
 mark_as_advanced( MUPARSER_INCLUDE_DIR MUPARSER_LIBRARY )
 
diff --git a/CMake/FindMuParserX.cmake b/CMake/FindMuParserX.cmake
index d3e9a60892e425a0ad77562a136c783839614393..f437828e9bc0c8b3ac3cb8ded26128c0d53b9b28 100644
--- a/CMake/FindMuParserX.cmake
+++ b/CMake/FindMuParserX.cmake
@@ -60,7 +60,7 @@ find_library( MUPARSERX_LIBRARY
 # handle the QUIETLY and REQUIRED arguments and set MUPARSERX_FOUND to TRUE if
 # all listed variables are TRUE
 include( FindPackageHandleStandardArgs )
-FIND_PACKAGE_HANDLE_STANDARD_ARGS( MuParserX DEFAULT_MSG MUPARSERX_LIBRARY MUPARSERX_INCLUDE_DIR )
+find_package_handle_standard_args( MuParserX DEFAULT_MSG MUPARSERX_LIBRARY MUPARSERX_INCLUDE_DIR )
 
 mark_as_advanced( MUPARSERX_INCLUDE_DIR MUPARSERX_LIBRARY )
 
diff --git a/CMake/FindNumpy.cmake b/CMake/FindNumpy.cmake
index 1997a3146650603eb23baf9b3e0dcd283180a201..9022fb0d43d0b8f2389f65600f78eaa43bef985c 100644
--- a/CMake/FindNumpy.cmake
+++ b/CMake/FindNumpy.cmake
@@ -37,7 +37,7 @@ else()
 endif()
 
 include( FindPackageHandleStandardArgs )
-FIND_PACKAGE_HANDLE_STANDARD_ARGS( Numpy DEFAULT_MSG NUMPY_INCLUDE_DIR )
+find_package_handle_standard_args( Numpy DEFAULT_MSG NUMPY_INCLUDE_DIR )
 
 mark_as_advanced( NUMPY_INCLUDE_DIR )
 
diff --git a/CMake/FindOpenCV.cmake b/CMake/FindOpenCV.cmake
index 1cf560bdebdb5b8ee0691bea32cdb8022c5223eb..344f68245ffe3146a3406e2c45b323f77efac982 100644
--- a/CMake/FindOpenCV.cmake
+++ b/CMake/FindOpenCV.cmake
@@ -139,6 +139,6 @@ if( OPENCV_INCLUDE_DIRS AND OPENCV_LIBRARIES )
 endif()
 
 include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenCV
+find_package_handle_standard_args(OpenCV
   REQUIRED_VARS OPENCV_core_LIBRARY OPENCV_INCLUDE_DIRS
   VERSION_VAR OpenCV_VERSION)
diff --git a/CMake/FindOpenThreads.cmake b/CMake/FindOpenThreads.cmake
index 2462dbfb27cf1a0ed154e961ffcf637a346ccb5e..0b141d612536a43bfa56cd9ef9f9ead1f68dbdc2 100644
--- a/CMake/FindOpenThreads.cmake
+++ b/CMake/FindOpenThreads.cmake
@@ -58,6 +58,7 @@
 # standard install paths.
 # Explicit -DVAR=value arguments should still be able to override everything.
 
+# This whole file could be deleted. Find Packages OpenThreads can be used now
 find_path(
   OPENTHREADS_INCLUDE_DIR OpenThreads/Thread
   PATH_SUFFIXES include
diff --git a/CMake/FindOssim.cmake b/CMake/FindOssim.cmake
index 56b2eb49b058699504a71fcefc0f65cb76982707..dd2211a41759c7b2e425c2d7d80b245f8c5cc28b 100644
--- a/CMake/FindOssim.cmake
+++ b/CMake/FindOssim.cmake
@@ -91,7 +91,7 @@ find_library(OSSIM_LIBRARY
 # handle the QUIETLY and REQUIRED arguments and set OSSIM_FOUND to TRUE if
 # all listed variables are TRUE
 include( FindPackageHandleStandardArgs )
-FIND_PACKAGE_HANDLE_STANDARD_ARGS( Ossim DEFAULT_MSG OSSIM_LIBRARY OSSIM_INCLUDE_DIR )
+find_package_handle_standard_args( Ossim DEFAULT_MSG OSSIM_LIBRARY OSSIM_INCLUDE_DIR )
 
 mark_as_advanced( OSSIM_INCLUDE_DIR OSSIM_LIBRARY )
 
diff --git a/CMake/FindShark.cmake b/CMake/FindShark.cmake
index e4a9113e62914e3bfd84d5d64785ae124639f16c..a3daa3a6e1b0531b4a293b4734f4b125c906ba1b 100644
--- a/CMake/FindShark.cmake
+++ b/CMake/FindShark.cmake
@@ -139,7 +139,7 @@ else()
 endif()
 
 INCLUDE(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Shark
+find_package_handle_standard_args(Shark
   REQUIRED_VARS SHARK_LIBRARY SHARK_INCLUDE_DIR ${REQUIRED_CBLAS_LIB}
   VERSION_VAR SHARK_VERSION_STRING)
 
diff --git a/CMake/FindTinyXML.cmake b/CMake/FindTinyXML.cmake
index 2d5f957bc12e98e000724bb7f26b1337a5624ab0..7cf48c537f50791ea116d5c3f735b70ae5f491da 100644
--- a/CMake/FindTinyXML.cmake
+++ b/CMake/FindTinyXML.cmake
@@ -61,7 +61,7 @@ find_library( TINYXML_LIBRARY
 # handle the QUIETLY and REQUIRED arguments and set TINYXML_FOUND to TRUE if
 # all listed variables are TRUE
 include( FindPackageHandleStandardArgs )
-FIND_PACKAGE_HANDLE_STANDARD_ARGS( TinyXML DEFAULT_MSG TINYXML_LIBRARY TINYXML_INCLUDE_DIR )
+find_package_handle_standard_args( TinyXML DEFAULT_MSG TINYXML_LIBRARY TINYXML_INCLUDE_DIR )
 
 mark_as_advanced( TINYXML_INCLUDE_DIR TINYXML_LIBRARY )
 
diff --git a/CMake/OTBCheckCpp11Keywords.cmake b/CMake/OTBCheckCpp11Keywords.cmake
deleted file mode 100644
index 2d429590290b33a43b1a8f4262a695808b7fd76d..0000000000000000000000000000000000000000
--- a/CMake/OTBCheckCpp11Keywords.cmake
+++ /dev/null
@@ -1,107 +0,0 @@
-#
-# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
-#
-# This file is part of Orfeo Toolbox
-#
-#     https://www.orfeo-toolbox.org/
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# DEPRECATED: Not used in OTB cmake configuration
-# DEPRECATED: should be removed after 6.2 release
-
-include(CheckCXXSourceCompiles)
-
-set(CMAKE_REQUIRED_FLAGS ${CMAKE_CXX_FLAGS})
-
-unset(OTB_HAS_CXX11 CACHE)
-
-CHECK_CXX_SOURCE_COMPILES("
-#ifdef _MSC_VER
-  #if _MSC_VER <= 1700
-    #error Compiler is not C++11 compliant
-  #endif
-#else
-  #if __cplusplus <= 199711L
-    #error Compiler is not C++11 compliant
-  #endif
-#endif
-
-int main(int argc, char *argv[])
-{
-  return 0;
-}
-
-"
-OTB_HAS_CXX11 )
-
-
-CHECK_CXX_SOURCE_COMPILES("
-#include <memory>
-struct Foo
-{
-  Foo()  { }
-  ~Foo() { }
-};
-
-int main(int argc, char *argv[])
-{
-  std::unique_ptr<Foo> p(new Foo);
-  return 0;
-}
-
-"
-OTB_CXX_HAS_UNIQUE_PTR )
-
-CHECK_CXX_SOURCE_COMPILES("
-struct A
-{
-  A()  { }
-  ~A() { }
-  virtual void foo( ) {  }
-};
-
-struct B : A
-{
-  B()  { }
-  ~B() { }
-  void foo( ) override {  }
-};
-
-int main(int argc, char *argv[])
-{
-  A* p = new B;
-  p->foo();
-  return 0;
-}
-
-"
-OTB_CXX_HAS_OVERRIDE_SPECIFIER )
-
-CHECK_CXX_SOURCE_COMPILES("
-#include <cstddef>
-int main(int argc, char *argv[])
-{
-  int *p = nullptr;
-  return 0;
-}
-"
-OTB_CXX_HAS_NULLPTR )
-
-# try_compile(
-#   OTB_HAS_CXX11
-#   ${CMAKE_CURRENT_BINARY_DIR}/CMake
-#   ${CMAKE_SOURCE_DIR}/CMake/otbTestUniquePtr.cpp
-#   )
-
diff --git a/CMake/OTBCheckSSEFeatures.cmake b/CMake/OTBCheckSSEFeatures.cmake
index a7c67ed7de4f8274c379f86af8663f85630793c3..f09e0eeedec300469e6c0587f51e15503d969cde 100644
--- a/CMake/OTBCheckSSEFeatures.cmake
+++ b/CMake/OTBCheckSSEFeatures.cmake
@@ -1,3 +1,24 @@
+#
+# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
+#
+# This file is part of Orfeo Toolbox
+#
+#     https://www.orfeo-toolbox.org/
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This should be deleted as it can be done with cmake_host_system_information
+# https://cmake.org/cmake/help/v3.10/command/cmake_host_system_information.html?highlight=sse
 function(check_sse_features sse_flags )
   include(CheckCXXSourceRuns)
   include(CheckCXXCompilerFlag)
diff --git a/CMake/OTBCheckTargetSystemArch.cmake b/CMake/OTBCheckTargetSystemArch.cmake
index a15ac1e0364b6b99f7816f3c4c3950d2defd1a52..0e5891d622a8a97a1c1a1f2258980880f558ea46 100644
--- a/CMake/OTBCheckTargetSystemArch.cmake
+++ b/CMake/OTBCheckTargetSystemArch.cmake
@@ -18,6 +18,9 @@
 # limitations under the License.
 #
 
+# This maybe deleted as it might be done with cmake_host_system_information
+# https://cmake.org/cmake/help/v3.10/command/cmake_host_system_information.html?highlight=sse
+
 macro(OTB_CHECK_TARGET_SYSTEM_ARCH _RESULT1 _RESULT2)
   set(${_RESULT1} "x64")
   set(${_RESULT2} TRUE)
diff --git a/CMake/OTBGroups.cmake b/CMake/OTBGroups.cmake
index 47fbde9c7af162faea7b26cbd60133983b59564c..2e4a7199e08b5fcd4a1e82df7437a0293833c137 100644
--- a/CMake/OTBGroups.cmake
+++ b/CMake/OTBGroups.cmake
@@ -120,13 +120,11 @@ foreach( group ${group_list} )
   set( _${group}_on_module_list )
   list( LENGTH _${group}_module_list _num_modules )
   set( _current_module 0 )
-  while( ${_current_module} LESS ${_num_modules} )
-    list( GET _${group}_module_list ${_current_module} _module_name )
-    if( NOT OTB_MODULE_${_module_name}_EXCLUDE_FROM_DEFAULT )
+  foreach(module ${_${group}_module_list})
+    if( NOT OTB_MODULE_${module}_EXCLUDE_FROM_DEFAULT )
       list( APPEND _${group}_on_module_list ${_module_name} )
     endif()
-  math( EXPR _current_module "${_current_module} + 1" )
-  endwhile()
+  endforeach()
 endforeach()
 
 if("$ENV{DASHBOARD_TEST_FROM_CTEST}" STREQUAL "")
diff --git a/CMake/OTBModuleEnablement.cmake b/CMake/OTBModuleEnablement.cmake
index 456a16631bba225e477ab38b1ee5d1bbea11fe64..143de8ad4cba37afd7e039942688bb77a54952a8 100644
--- a/CMake/OTBModuleEnablement.cmake
+++ b/CMake/OTBModuleEnablement.cmake
@@ -124,13 +124,6 @@ option(OTB_BUILD_DEFAULT_MODULES "Build the default OTB modules." ON)
 option(OTB_BUILD_ALL_MODULES_FOR_TESTS "Build the tests of module dependencies." OFF)
 mark_as_advanced(OTB_BUILD_ALL_MODULES_FOR_TESTS)
 
-# To maintain backward compatibility
-if(DEFINED OTB_BUILD_ALL_MODULES)
-  message(WARNING "OTB_BUILD_ALL_MODULES is deprecated, please remove this entry from the CMake "
-                  "cache (edit the CMakeCache.txt file located in the top level of the OTB build "
-                  "tree directly or via the CMake GUI), and use OTB_BUILD_DEFAULT_MODULES instead.")
-  set(OTB_BUILD_DEFAULT_MODULES ${OTB_BUILD_ALL_MODULES} CACHE BOOL "Build the default OTB modules." FORCE)
-endif()
 # Provide module selections by groups
 include(${OTB_SOURCE_DIR}/CMake/OTBGroups.cmake)
 
@@ -227,28 +220,6 @@ list(SORT OTB_MODULES_DISABLED) # Deterministic order.
 include(CMake/TopologicalSort.cmake)
 topological_sort(OTB_MODULES_ENABLED OTB_MODULE_ _DEPENDS_FOR_SORT)
 
-# TODO : shall we set up CPack ?
-# #
-# # Set up CPack support
-# #
-# set(OTB_MODULES_DISABLED_CPACK )
-# foreach(m ${OTB_MODULES_DISABLED})
-#   list(APPEND OTB_MODULES_DISABLED_CPACK "/${m}/")
-# endforeach()
-# set(CPACK_SOURCE_IGNORE_FILES
-#   "${OTB_MODULES_DISABLED_CPACK};/\\\\.git")
-# 
-# set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Insight Toolkit version ${OTB_VERSION_MAJOR}")
-# set(CPACK_PACKAGE_VENDOR "ISC")
-# set(CPACK_PACKAGE_VERSION_MAJOR "${OTB_VERSION_MAJOR}")
-# set(CPACK_PACKAGE_VERSION_MINOR "${OTB_VERSION_MINOR}")
-# set(CPACK_PACKAGE_VERSION_PATCH "${OTB_VERSION_PATCH}")
-# set(CPACK_PACKAGE_INSTALL_DIRECTORY "OTB-${OTB_VERSION_MAJOR}.${OTB_VERSION_MINOR}")
-# set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.txt")
-# set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
-# 
-# include(CPack)
-
 # Report what will be built.
 set(_enabled_modules "${OTB_MODULES_ENABLED}")
 list(SORT _enabled_modules)
@@ -380,7 +351,9 @@ file(WRITE "${OTB_BINARY_DIR}/OTBTargets.cmake"
   "# Generated by CMake, do not edit!")
 
 macro(init_module_vars)
-  verify_otb_module_is_set()
+  if( "${otb-module}" STREQUAL "" )
+    message(FATAL_ERROR "CMake variable otb-module is not set")
+  endif()
   set(${otb-module}-targets OTBTargets)
   set(${otb-module}-targets-install "${OTB_INSTALL_PACKAGE_DIR}/OTBTargets.cmake")
   set(${otb-module}-targets-build "${OTB_BINARY_DIR}/OTBTargets.cmake")
diff --git a/CMake/OTBModuleExternal.cmake b/CMake/OTBModuleExternal.cmake
index b046feefc999e74ae5e51d5e7dbfe475a652ec61..f629eeeab4d37cc4108f85b6b958bbc428597155 100644
--- a/CMake/OTBModuleExternal.cmake
+++ b/CMake/OTBModuleExternal.cmake
@@ -33,12 +33,17 @@ if(NOT OTB_VERSION VERSION_GREATER "5.2")
 endif()
 if(NOT EXISTS ${OTB_CMAKE_DIR}/OTBModuleMacros.cmake)
   if(NOT OTB_BUILD_MODULE_AS_STANDALONE)
-    message(FATAL_ERROR "Modules can only be built against an OTB build tree; they cannot be built against an OTB install tree. You can build your module as a standalone CMake project instead, by activating the BUILD_MODULE_AS_STANDALONE option. Beware that dependency between remote modules will NOT be tracked.")
+    message(FATAL_ERROR "Modules can only be built against an OTB build tree; "
+            "they cannot be built against an OTB install tree. You can build "
+            "your module as a standalone CMake project instead, by activating "
+            "the BUILD_MODULE_AS_STANDALONE option. Beware that dependency "
+            "between remote modules will NOT be tracked.")
   endif()
 endif()
 
 if(OTB_BUILD_MODULE_AS_STANDALONE)
-  message(STATUS "You are building this module as a standalone CMake project. Beware that dependencies to other remote modules will not be tracked.")
+  message(STATUS "You are building this module as a standalone CMake project. "
+          "Beware that dependencies to other remote modules will not be tracked.")
   include(OTBStandaloneModuleMacros)
   otb_module_impl()
 else()
@@ -86,7 +91,8 @@ else()
   set(CMAKE_EXE_LINKER_FLAGS "${OTB_REQUIRED_LINK_FLAGS} ${CMAKE_EXE_LINKER_FLAGS}")
   set(CMAKE_SHARED_LINKER_FLAGS "${OTB_REQUIRED_LINK_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS}")
   set(CMAKE_MODULE_LINKER_FLAGS "${OTB_REQUIRED_LINK_FLAGS} ${CMAKE_MODULE_LINKER_FLAGS}")
-  option(BUILD_SHARED_LIBS "Build OTB with shared libraries." ${OTB_BUILD_SHARED})
+  option(BUILD_SHARED_LIBS "Build with shared libraries." ${OTB_BUILD_SHARED})
+  mark_as_advanced(BUILD_SHARED_LIBS)
 
   # Add the OTB_MODULES_DIR to the CMAKE_MODULE_PATH and then use the binary
   # directory for the project to write out new ones to.
diff --git a/CMake/OTBModuleHeaderTest.cmake b/CMake/OTBModuleHeaderTest.cmake
index 20b43b76d4a276af341b20b5160c03ae71313a3f..ed89a0fc55af7d7f713490f2a28ec7ffa4c88eb6 100644
--- a/CMake/OTBModuleHeaderTest.cmake
+++ b/CMake/OTBModuleHeaderTest.cmake
@@ -66,7 +66,7 @@ macro( otb_module_headertest _name )
   if( NOT ${_name}_THIRD_PARTY
       AND EXISTS ${${_name}_SOURCE_DIR}/include
       AND PYTHON_EXECUTABLE
-      AND NOT (PYTHON_VERSION_STRING VERSION_LESS 2.6)
+      AND NOT (PYTHON_VERSION_STRING VERSION_LESS 3)
       AND NOT (${_name} STREQUAL OTBTestKernel)
       AND NOT (CMAKE_GENERATOR MATCHES "^Visual Studio 10.*"))
 
@@ -96,24 +96,22 @@ macro( otb_module_headertest _name )
 
     # We check to see if the headers are changed.  If so, remove the header test
     # source files so they are regenerated.
-    if( ${CMAKE_VERSION} VERSION_GREATER 2.8.6 ) # for string( MD5
-      set( _headers_list_md5 "${${_name}_BINARY_DIR}/test/CMakeFiles/HeadersList.md5" )
-      list( SORT _header_files )
-      string( MD5 _new_md5 "${_header_files}" )
-      set( _regenerate_sources FALSE )
-      if( NOT EXISTS "${_headers_list_md5}" )
+    set( _headers_list_md5 "${${_name}_BINARY_DIR}/test/CMakeFiles/HeadersList.md5" )
+    list( SORT _header_files )
+    string( MD5 _new_md5 "${_header_files}" )
+    set( _regenerate_sources FALSE )
+    if( NOT EXISTS "${_headers_list_md5}" )
+      set( _regenerate_sources TRUE )
+    else()
+      file( READ "${_headers_list_md5}" _old_md5 )
+      if( NOT ("${_old_md5}" STREQUAL "${_new_md5}"))
         set( _regenerate_sources TRUE )
-      else()
-        file( READ "${_headers_list_md5}" _old_md5 )
-        if( NOT ("${_old_md5}" STREQUAL "${_new_md5}"))
-          set( _regenerate_sources TRUE )
-        endif()
-      endif()
-      file( WRITE "${_headers_list_md5}" "${_new_md5}" )
-      if( ${_regenerate_sources} )
-        file( REMOVE ${_outputs} )
       endif()
     endif()
+    file( WRITE "${_headers_list_md5}" "${_new_md5}" )
+    if( ${_regenerate_sources} )
+      file( REMOVE ${_outputs} )
+    endif()
 
     set( _test_num 1 )
     foreach( _header_test_src ${_outputs} )
diff --git a/CMake/OTBModuleMacros.cmake b/CMake/OTBModuleMacros.cmake
index 4cde0c39e3dc38346559b0db1716854dff1c8b3e..57013195d39e52f15f750c00bb499b5716ea09bc 100644
--- a/CMake/OTBModuleMacros.cmake
+++ b/CMake/OTBModuleMacros.cmake
@@ -27,11 +27,8 @@ include(${_OTBModuleMacros_DIR}/OTBModuleDoxygen.cmake)
 include(${_OTBModuleMacros_DIR}/OTBModuleHeaderTest.cmake)
 include(${_OTBModuleMacros_DIR}/OTBApplicationMacros.cmake)
 
-# With Apple's GGC <=4.2 and LLVM-GCC <=4.2 visibility of template
-# don't work. Set the option to off and hide it.
-if(APPLE AND CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION  VERSION_LESS "4.3")
-  set( USE_COMPILER_HIDDEN_VISIBILITY OFF CACHE INTERNAL "" )
-elseif(APPLE)
+# TODO check if this is still the case:
+if(APPLE)
   #RK:  compiler visibility nor woking on osx with appleclang xcode.
   #gcc is a symlink to clang
   set( USE_COMPILER_HIDDEN_VISIBILITY OFF CACHE INTERNAL "" )
@@ -369,8 +366,3 @@ macro(otb_module_target _name)
     otb_module_target_install(${_name})
   endif()
 endmacro()
-
-macro(otb_module_requires_cxx11)
-  message(WARNING "otb_module_requires_cxx11 is deprecated since OTB version 6.2 which build with c++14 by default. You can safely remove the call to this macro.")
-  set(OTB_MODULE_${otb-module}_REQUIRES_CXX11 1)
-endmacro()
diff --git a/CMake/OTBModuleTest.cmake b/CMake/OTBModuleTest.cmake
index c1402718ece7ecb92c2aabc0b581f16e7c679aa3..25c7e308c86c51d12589e691210167501ed3270f 100644
--- a/CMake/OTBModuleTest.cmake
+++ b/CMake/OTBModuleTest.cmake
@@ -138,32 +138,6 @@ EM_ASM(
   otb_module_target_label(${KIT}TestDriver)
 endmacro()
 
-#-----------------------------------------------------------------------------
-# OTB wrapper for add_test that automatically sets the test's LABELS property
-# to the value of its containing module.
-#
-# function(otb_add_test)
-#   # Add tests with data in the OTBData group.
-#   ExternalData_add_test(OTBData ${ARGN})
-
-#   if("NAME" STREQUAL "${ARGV0}")
-#     set(_iat_testname ${ARGV1})
-#   else()
-#     set(_iat_testname ${ARGV0})
-#   endif()
-
-#   if(otb-module)
-#     set(_label ${otb-module})
-#     if(TARGET ${otb-module}-all AND "${ARGN}" MATCHES "DATA{")
-#       add_dependencies(${otb-module}-all OTBData)
-#     endif()
-#   else()
-#     set(_label ${main_project_name})
-#   endif()
-
-#   set_property(TEST ${_iat_testname} PROPERTY LABELS ${_label})
-# endfunction()
-
 #-----------------------------------------------------------------------------
 # OTB wrapper for add_test that automatically sets the test's LABELS property
 # to the value of its containing module.
diff --git a/CMake/OTBSetStandardCompilerFlags.cmake b/CMake/OTBSetStandardCompilerFlags.cmake
index 6a7cad037a8930553b177ba94e29e87a9079cc1d..a9f4e19d67ed6fff03aefd4015f2ec3ada4dd976 100644
--- a/CMake/OTBSetStandardCompilerFlags.cmake
+++ b/CMake/OTBSetStandardCompilerFlags.cmake
@@ -57,6 +57,8 @@ function(check_c_compiler_warning_flags c_flag_var)
   set(local_c_flags "")
   set(flag_list "${ARGN}")
   foreach(flag IN LISTS flag_list)
+# This could be replaced by a simple check_c_compiler_flag(<flag> <var>)
+# https://cmake.org/cmake/help/v3.10/module/CheckCCompilerFlag.html?highlight=flags
     OTB_CHECK_C_COMPILER_FLAG(${flag} C_HAS_WARNING${flag})
     if(${C_HAS_WARNING${flag}})
       set(local_c_flags "${local_c_flags} ${flag}")
@@ -70,6 +72,8 @@ function(check_cxx_compiler_warning_flags cxx_flag_var)
   set(local_cxx_flags "")
   set(flag_list "${ARGN}")
   foreach(flag IN LISTS flag_list)
+# This could be replaced by a simple check_cxx_compiler_flag(<flag> <var>)
+# https://cmake.org/cmake/help/v3.10/module/CheckCXXCompilerFlag.html?highlight=checkcxxcompilerflag
     OTB_CHECK_CXX_COMPILER_FLAG(${flag} CXX_HAS_WARNING${flag})
     if(${CXX_HAS_WARNING${flag}})
       set(local_cxx_flags "${local_cxx_flags} ${flag}")
@@ -215,6 +219,8 @@ macro(check_compiler_platform_flags)
       # BUILD_SHARED_LIBS works as it would on other systems
       if(NOT CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS)
         if(BUILD_SHARED_LIBS)
+        # TODO:
+        # OTB_LIBRARY_BUILD_TYPE is never used!
           set(OTB_LIBRARY_BUILD_TYPE "SHARED")
         else()
           set(OTB_LIBRARY_BUILD_TYPE "STATIC")
@@ -295,6 +301,8 @@ macro(check_compiler_platform_flags)
   if(OTB_USE_SSE_FLAGS)
     message(STATUS "SIMD extensions requested with OTB_USE_SSE_FLAGS=${OTB_USE_SSE_FLAGS}")
     include(OTBCheckSSEFeatures)
+# This should be deleted as it can be done with cmake_host_system_information
+# https://cmake.org/cmake/help/v3.10/command/cmake_host_system_information.html?highlight=sse
     check_sse_features(OTB_SSE_FLAGS)
     if(OTB_SSE_FLAGS)
       message(STATUS "Adding '${OTB_SSE_FLAGS}' to OTB_REQUIRED_CXX_FLAGS")
diff --git a/CMake/OTB_CheckCCompilerFlag.cmake b/CMake/OTB_CheckCCompilerFlag.cmake
index 3cb206423609e77b802e4bd442126295a4541f2f..246cbcf258f3df2c99367f9dcfd53d2f6ff2d3c6 100644
--- a/CMake/OTB_CheckCCompilerFlag.cmake
+++ b/CMake/OTB_CheckCCompilerFlag.cmake
@@ -22,6 +22,8 @@
 
 include(CheckCSourceCompiles)
 
+# This could be replaced by a simple check_c_compiler_flag(<flag> <var>)
+# https://cmake.org/cmake/help/v3.10/module/CheckCCompilerFlag.html?highlight=flags
 macro (OTB_CHECK_C_COMPILER_FLAG _FLAG _RESULT)
    set(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}")
    set(CMAKE_REQUIRED_DEFINITIONS "${_FLAG}")
diff --git a/CMake/OTB_CheckCXXCompilerFlag.cmake b/CMake/OTB_CheckCXXCompilerFlag.cmake
index d7eb1260a11357f31f93ecd5c917a2c64748e9ce..26114bd0f2add75b77e3714f7129add67a842ec4 100644
--- a/CMake/OTB_CheckCXXCompilerFlag.cmake
+++ b/CMake/OTB_CheckCXXCompilerFlag.cmake
@@ -42,6 +42,8 @@
 
 include(CheckCXXSourceCompiles)
 
+# This could be replaced by a simple check_cxx_compiler_flag(<flag> <var>)
+# https://cmake.org/cmake/help/v3.10/module/CheckCXXCompilerFlag.html?highlight=checkcxxcompilerflag
 macro (OTB_CHECK_CXX_COMPILER_FLAG _FLAG _RESULT)
    set(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}")
    set(CMAKE_REQUIRED_DEFINITIONS "${_FLAG}")
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 256b63ce38b97cbf568db835ed361fa371d9a004..f2f57de38427ab52b54e3ebf48a777d332253954 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -18,14 +18,9 @@
 # limitations under the License.
 #
 
-cmake_minimum_required(VERSION 3.1.0)
+cmake_minimum_required(VERSION 3.10.2)
 
 foreach(p
-    CMP0025 # CMake 3.0
-    CMP0042 # CMake 3.0
-    CMP0046 # CMake 3.0
-    CMP0054 # CMake 3.1
-    CMP0058 # CMake 3.3
     CMP0072 # CMake 3.11
     )
   if(POLICY ${p})
@@ -59,6 +54,10 @@ include(ExternalProject)
 
 #mantis: 1193
 if(APPLE)
+  # https://cmake.org/cmake/help/v3.10/variable/CMAKE_SYSTEM_FRAMEWORK_PATH.html
+  # By default it contains the standard directories for the current system. It 
+  # is not intended to be modified by the project, use CMAKE_FRAMEWORK_PATH 
+  # for this.
   set(CMAKE_SYSTEM_FRAMEWORK_PATH "" CACHE PATH "" FORCE)
 endif()
 
@@ -88,7 +87,7 @@ mark_as_advanced(OTB_APPLICATIONS_NAME_LIST)
 
 set(OTB_CMAKE_DIR ${OTB_SOURCE_DIR}/CMake)
 set(CMAKE_MODULE_PATH ${OTB_CMAKE_DIR} ${CMAKE_MODULE_PATH})
-include (SourceStatus)
+include(SourceStatus)
 include(PreventInSourceBuilds)
 include(PreventInBuildInstalls)
 include(OTBModuleMacros)
@@ -110,6 +109,8 @@ if ( OTB_WRAP_PYTHON AND ( ${PYTHON_VERSION_MAJOR} EQUAL 2 ) )
     message (WARNING "Python3 not found. There is no longer support of \
     wrapping in python2 in OTB, but it can still be used.")
 endif()
+# Now that we have a python version the addditional versions should only
+# contain the version we have to get the corresponding libs
 set (Python_ADDITIONAL_VERSIONS "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}")
 find_package ( PythonLibs )
 
@@ -179,15 +180,6 @@ endif()
 #convert path to native for reconfiguring otbcli.bat.in
 file(TO_NATIVE_PATH "${OTB_INSTALL_APP_DIR}" OTB_INSTALL_APP_DIR_NATIVE)
 
-# Override CMake's built-in add_* commands: assign LABELS to tests and targets
-# automatically. Depends on the CMake variable otb-module being set to the
-# "current" module when add_* is called.
-macro(verify_otb_module_is_set)
-  if("" STREQUAL "${otb-module}")
-    message(FATAL_ERROR "CMake variable otb-module is not set")
-  endif()
-endmacro()
-
 #-----------------------------------------------------------------------------
 # Set a default build type if none was specified
 if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
@@ -217,10 +209,16 @@ endmacro()
 
 # TODO : handle shared libs on windows
 option(BUILD_SHARED_LIBS "Build OTB with shared libraries." ON)
+mark_as_advanced(BUILD_SHARED_LIBS)
+
+# The following variable can be deleted and replace by BUILD_SHARED_LIBS
+# in otbConfigure.h.in
 set(OTB_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS})
 
+
 if(MSVC)
   option(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS "Build OTB with shared libraries." ON)
+  mark_as_advanced(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS)
   set(OTB_CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ${CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS})
 else()
   set(OTB_CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS OFF)
@@ -235,6 +233,7 @@ endif()
 option(OTB_USE_OPENMP "Add openmp compiler and linker flags" OFF)
 
 option(OTB_USE_SSE_FLAGS "Enable SIMD optimizations (hardware dependent)." ON)
+mark_as_advanced(OTB_USE_SSE_FLAGS)
 
 include(OTBSetStandardCompilerFlags)
 #---------------------------------------------------------------
@@ -268,10 +267,6 @@ if(NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
 endif()
 set(OTB_MODULES_DIR "${OTB_BINARY_DIR}/${OTB_INSTALL_PACKAGE_DIR}/Modules")
 
-#-----------------------------------------------------------------------------
-# OTB uses KWStyle for checking the coding style
-#include(${OTB_SOURCE_DIR}/Utilities/KWStyle/KWStyle.cmake)
-
 #-----------------------------------------------------------------------------
 # By default, OTB does not build the Examples that are illustrated in the Software Guide
 option(BUILD_EXAMPLES "Build the Examples directory." OFF)
@@ -481,18 +476,6 @@ configure_file(
 add_custom_target(uninstall
   COMMAND ${CMAKE_COMMAND} -P ${CMAKE_BINARY_DIR}/cmake_uninstall.cmake)
 
-# #-----------------------------------------------------------------------------
-# # Packaging options for Windows packages
-# if(WIN32 OR CMAKE_CROSSCOMPILING)
-#   option(GENERATE_PACKAGE "Generate OTB package" OFF)
-#   option(GENERATE_XDK "Generate XDK for OTB development" OFF)
-#   if(GENERATE_PACKAGE OR GENERATE_XDK)
-#     set(MXE_TARGET_DIR "" CACHE PATH "path to mxe directory")
-#     set(PACKAGE_OTB_SRC_DIR ${OTB_SOURCE_DIR})
-#     add_subdirectory(${OTB_SOURCE_DIR}/SuperBuild/Packaging ${CMAKE_BINARY_DIR}/Packaging)
-#   endif() # (GENERATE_PACKAGE OR GENERATE_XDK)
-# endif() # (WIN32 OR CMAKE_CROSSCOMPILING)
-
 #-----------------------------------------------------------------------------
 #macro to put a fixed space between key, value  in summary
 macro(get_white_spaces var res)
@@ -538,18 +521,8 @@ foreach(otb_option
   message("${otb_option} ${spaces} = ${${otb_option}}")
 endforeach()
 
-# set(modules_list_for_summary "${OTB_MODULES_ENABLED}")
-# list(SORT modules_list_for_summary)
-# string(REPLACE ";" " " modules_list_for_summary "${modules_list_for_summary}")
-# message("OTB_MODULES_ENABLED      = ${modules_list_for_summary}")
-# unset(modules_list_for_summary)
-
-list(REMOVE_ITEM option_list "OTB_USE_6S" "OTB_USE_SIFTFAST" "OTB_USE_QT")
-foreach(item ${option_list})
-  if(NOT ${item})
-    list(REMOVE_ITEM option_list "${item}" )
-  endif()
-endforeach()
+# Cleaning option_list as we are using a new one now
+unset(option_list)
 
 #To report non-optional dependencies inside summary
 list(APPEND option_list Boost)
diff --git a/CTestConfig.cmake b/CTestConfig.cmake
index d50bf8089915dc328b031b1ee4a5f672895545b2..d8f16549813bfccee2f4a490a76310d90e4ee90a 100644
--- a/CTestConfig.cmake
+++ b/CTestConfig.cmake
@@ -19,8 +19,6 @@
 #
 
 set(CTEST_PROJECT_NAME "OTB")
-set(CTEST_NIGHTLY_START_TIME "20:00:00 CEST")
-
 set(CTEST_DROP_METHOD "https")
 set(CTEST_DROP_SITE "cdash.orfeo-toolbox.org")
 set(CTEST_DROP_LOCATION "/submit.php?project=OTB")
diff --git a/Modules/ThirdParty/GDAL/otb-module-init.cmake b/Modules/ThirdParty/GDAL/otb-module-init.cmake
index 140f5835963031c31b1737bc0b4d616c087eea1e..5c0247dfad8c5fe9b352e44adb8dba950aa32c7c 100644
--- a/Modules/ThirdParty/GDAL/otb-module-init.cmake
+++ b/Modules/ThirdParty/GDAL/otb-module-init.cmake
@@ -51,78 +51,39 @@ macro(error_message m)
   message(FATAL_ERROR "${m}")
 endmacro(error_message)
 
-#------------------- C version ---------------------
-macro(gdal_try_run_c msg_type var source_file)
-message(STATUS "Performing Test ${var}")
-set(${var})
-try_run(RUN_${var} COMPILE_${var} ${CMAKE_CURRENT_BINARY_DIR}
-${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/${source_file}
-CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}"
-COMPILE_DEFINITIONS "-w"
-COMPILE_OUTPUT_VARIABLE COMPILE_OUTPUT_${var}
-RUN_OUTPUT_VARIABLE RUN_OUTPUT_${var}
-ARGS ${ARGN}
-)
-
-if(NOT COMPILE_${var})
-  error_message("Compiling Test ${var} - Failed \n
-COMPILE_OUTPUT_${var}: '${COMPILE_OUTPUT_${var}}'")
-endif()
-if(RUN_${var})
-  set(${var} FALSE)
-  #if msg_type is STATUS (ie "okay" if test is failing),
-  #then we don't need to give an run-output and exit status.
-  if("${msg_type}" STREQUAL "STATUS")
-    message(${msg_type} "Performing Test ${var} - Failed")
-  else()
-    error_message("Performing Test ${var} - Failed \n
-            Exit status: '${RUN_${var}}' \n
-            RUN_OUTPUT_${var}: '${RUN_OUTPUT_${var}}'")
-  endif()
-else()
-  set(${var} TRUE)
-  message(STATUS "Performing Test ${var} - Success")
-endif()
-unset(RUN_OUTPUT_${var})
-unset(COMPILE_OUTPUT_${var})
-unset(COMPILE_${var})
-endmacro()
-
 #------------------- Helper Macro ---------------------
 macro(gdal_try_run msg_type var source_file)
-message(STATUS "Performing Test ${var}")
-set(${var})
-try_run(RUN_${var} COMPILE_${var} ${CMAKE_CURRENT_BINARY_DIR}
-${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/${source_file}
-CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}"
-COMPILE_DEFINITIONS "-std=c++14" "-w"
-COMPILE_OUTPUT_VARIABLE COMPILE_OUTPUT_${var}
-RUN_OUTPUT_VARIABLE RUN_OUTPUT_${var}
-ARGS ${ARGN}
-)
-
-if(NOT COMPILE_${var})
-  error_message("Compiling Test ${var} - Failed \n
-COMPILE_OUTPUT_${var}: '${COMPILE_OUTPUT_${var}}'")
-endif()
-if(RUN_${var})
-  set(${var} FALSE)
-  #if msg_type is STATUS (ie "okay" if test is failing),
-  #then we don't need to give an run-output and exit status.
-  if("${msg_type}" STREQUAL "STATUS")
-    message(${msg_type} "Performing Test ${var} - Failed")
+  message(STATUS "Performing Test ${var}")
+  set(${var})
+  try_run(RUN_${var} COMPILE_${var} ${CMAKE_CURRENT_BINARY_DIR}
+  ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/${source_file}
+  CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}"
+  COMPILE_OUTPUT_VARIABLE COMPILE_OUTPUT_${var}
+  RUN_OUTPUT_VARIABLE RUN_OUTPUT_${var}
+  ARGS ${ARGN}
+  )
+  if(NOT COMPILE_${var})
+    error_message("Compiling Test ${var} - Failed \n"
+                  "COMPILE_OUTPUT_${var}: '${COMPILE_OUTPUT_${var}}'")
+  endif()
+  if(RUN_${var})
+    set(${var} FALSE)
+    #if msg_type is STATUS (ie "okay" if test is failing),
+    #then we don't need to give an run-output and exit status.
+    if("${msg_type}" STREQUAL "STATUS")
+      message(${msg_type} "Performing Test ${var} - Failed")
+    else()
+      error_message("Performing Test ${var} - Failed \n"
+              "Exit status: '${RUN_${var}}' \n"
+              "RUN_OUTPUT_${var}: '${RUN_OUTPUT_${var}}'")
+    endif()
   else()
-    error_message("Performing Test ${var} - Failed \n
-            Exit status: '${RUN_${var}}' \n
-            RUN_OUTPUT_${var}: '${RUN_OUTPUT_${var}}'")
+    set(${var} TRUE)
+    message(STATUS "Performing Test ${var} - Success")
   endif()
-else()
-  set(${var} TRUE)
-  message(STATUS "Performing Test ${var} - Success")
-endif()
-unset(RUN_OUTPUT_${var})
-unset(COMPILE_OUTPUT_${var})
-unset(COMPILE_${var})
+  unset(RUN_OUTPUT_${var})
+  unset(COMPILE_OUTPUT_${var})
+  unset(COMPILE_${var})
 endmacro()
 
 #------------------- TESTS ---------------------
@@ -155,11 +116,11 @@ endif()
 # check formats TIFF, GeoTIFF, JPEG, JPEG2000, HDF5
 # Note : exact format names can be found here http://www.gdal.org/formats_list.html
 
-gdal_try_run_c(STATUS GDAL_FORMATS_LIST gdalFormatsListTest.c ${TEMP}/gdalFormatsList.csv)
+gdal_try_run(STATUS GDAL_FORMATS_LIST gdalFormatsListTest.c ${TEMP}/gdalFormatsList.csv)
 
-gdal_try_run_c(FATAL_ERROR GDAL_HAS_JPEG gdalFormatsTest.c JPEG)
+gdal_try_run(FATAL_ERROR GDAL_HAS_JPEG gdalFormatsTest.c JPEG)
 
-gdal_try_run_c(FATAL_ERROR GDAL_HAS_GTiff gdalFormatsTest.c GTiff)
+gdal_try_run(FATAL_ERROR GDAL_HAS_GTiff gdalFormatsTest.c GTiff)
 
 gdal_try_run(FATAL_ERROR GDAL_CAN_CREATE_GTiff gdalCreateTest.cxx GTiff ${TEMP}/testImage.gtif )
 
@@ -168,39 +129,39 @@ gdal_try_run(FATAL_ERROR GDAL_CAN_CREATE_GTiff_BIGTIFF gdalCreateCopyTest.cxx ${
 gdal_try_run(FATAL_ERROR GDAL_CAN_CREATE_JPEG gdalCreateCopyTest.cxx ${TEMP}/testImage.gtif ${TEMP}/testImage.jpeg JPEG)
 
 set(JPEG2000_DRIVER_USED)
-gdal_try_run_c(STATUS GDAL_HAS_JP2OpenJPEG gdalFormatsTest.c JP2OpenJPEG)
+gdal_try_run(STATUS GDAL_HAS_JP2OpenJPEG gdalFormatsTest.c JP2OpenJPEG)
 if (GDAL_HAS_JP2OpenJPEG)
   set(JPEG2000_DRIVER_USED "OpenJPEG")
   gdal_try_run(STATUS GDAL_CAN_CREATE_JP2OpenJPEG gdalCreateCopyTest.cxx ${TEMP}/testImage.gtif ${TEMP}/testImage.j2k JP2OpenJPEG)
 endif()
 
-gdal_try_run_c(STATUS GDAL_HAS_JP2KAK gdalFormatsTest.c JP2KAK)
+gdal_try_run(STATUS GDAL_HAS_JP2KAK gdalFormatsTest.c JP2KAK)
 if (GDAL_HAS_JP2KAK)
   set(JPEG2000_DRIVER_USED "Kakadu")
   gdal_try_run(STATUS GDAL_CAN_CREATE_JP2KAK gdalCreateCopyTest.cxx ${TEMP}/testImage.gtif ${TEMP}/testImage.j2k JP2KAK)
 endif()
 
-gdal_try_run_c(STATUS GDAL_HAS_JP2ECW gdalFormatsTest.c JP2ECW)
+gdal_try_run(STATUS GDAL_HAS_JP2ECW gdalFormatsTest.c JP2ECW)
 if (GDAL_HAS_JP2ECW)
   set(JPEG2000_DRIVER_USED "ECW")
   gdal_try_run(STATUS GDAL_CAN_CREATE_JP2ECW gdalCreateCopyTest.cxx ${TEMP}/testImage.gtif ${TEMP}/testImage.j2k JP2ECW)
 endif()
 
-gdal_try_run_c(STATUS GDAL_HAS_JPEG2000 gdalFormatsTest.c JPEG2000)
+gdal_try_run(STATUS GDAL_HAS_JPEG2000 gdalFormatsTest.c JPEG2000)
 if (GDAL_HAS_JPEG2000)
     set(JPEG2000_DRIVER_USED "JPEG2000")
   gdal_try_run(STATUS GDAL_CAN_CREATE_JPEG2000 gdalCreateCopyTest.cxx ${TEMP}/testImage.gtif ${TEMP}/testImage.j2k JPEG2000)
 endif()
 
-gdal_try_run_c(STATUS GDAL_HAS_HDF5 gdalFormatsTest.c HDF5)
-gdal_try_run_c(STATUS GDAL_HAS_HDF4 gdalFormatsTest.c HDF4)
+gdal_try_run(STATUS GDAL_HAS_HDF5 gdalFormatsTest.c HDF5)
+gdal_try_run(STATUS GDAL_HAS_HDF4 gdalFormatsTest.c HDF4)
 
 #check some vector formats
 #TODO: fix gdalFormatsTest.c to work with gdal 1.x and 2.x
-# gdal_try_run_c(FATAL_ERROR GDAL_HAS_SQLite gdalFormatsTest.c SQLite)
-# gdal_try_run_c(FATAL_ERROR GDAL_HAS_VRT gdalFormatsTest.c VRT)
-# gdal_try_run_c(FATAL_ERROR GDAL_HAS_KML gdalFormatsTest.c KML)
-# gdal_try_run_c(STATUS GDAL_HAS_LIBKML gdalFormatsTest.c LIBKML)
+# gdal_try_run(FATAL_ERROR GDAL_HAS_SQLite gdalFormatsTest.c SQLite)
+# gdal_try_run(FATAL_ERROR GDAL_HAS_VRT gdalFormatsTest.c VRT)
+# gdal_try_run(FATAL_ERROR GDAL_HAS_KML gdalFormatsTest.c KML)
+# gdal_try_run(STATUS GDAL_HAS_LIBKML gdalFormatsTest.c LIBKML)
 
 #------------------- TESTS (END)---------------------
 
diff --git a/Packaging/CMakeLists.txt b/Packaging/CMakeLists.txt
index 65c599be710007be908128ab79bad5b21f09b85d..a8d5c1658b8e4ee45863b2d50c8c0f2bbb4c8f26 100644
--- a/Packaging/CMakeLists.txt
+++ b/Packaging/CMakeLists.txt
@@ -18,7 +18,7 @@
 # limitations under the License.
 #
 
-cmake_minimum_required(VERSION 3.3.0)
+cmake_minimum_required(VERSION 3.10.2)
 
 project(OTBPackaging)
 
@@ -31,7 +31,7 @@ include(CTest)
 set(PKG_DEBUG OFF)
 #set( PKG_DEBUG 1)
 
-set(CMAKE_BUILD_TYPE    Release)
+set(CMAKE_BUILD_TYPE Release)
 
 #user-defined variables and option
 option(OTB_WRAP_PYTHON "include python bindings in package" ON)
@@ -40,13 +40,12 @@ set(SUPERBUILD_INSTALL_DIR "" CACHE PATH "path to superbuild install directory")
 set(DOWNLOAD_LOCATION "" CACHE PATH "path to superbuild download archives")
 
 #variables based on above user-defined variables
-message( "OTB_BINARY_DIR=${OTB_BINARY_DIR}" )
 if ( NOT OTB_BINARY_DIR )
-  set(OTB_BINARY_DIR            "${SUPERBUILD_BINARY_DIR}/OTB/build")
+  set(OTB_BINARY_DIR "${SUPERBUILD_BINARY_DIR}/OTB/build")
 endif()
-set(QT_TRANSLATIONS_DIR       "${SUPERBUILD_INSTALL_DIR}/translations")
+set(QT_TRANSLATIONS_DIR "${SUPERBUILD_INSTALL_DIR}/translations")
 get_filename_component(PACKAGE_OTB_SRC_DIR ${OTBPackaging_SOURCE_DIR} PATH)
-set(SUPERBUILD_SOURCE_DIR     "${PACKAGE_OTB_SRC_DIR}/SuperBuild")
+set(SUPERBUILD_SOURCE_DIR "${PACKAGE_OTB_SRC_DIR}/SuperBuild")
 
 
 set(LINUX FALSE)
@@ -70,6 +69,8 @@ set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
 include(${SUPERBUILD_SOURCE_DIR}/CMake/SuperBuild_Macro.cmake)
 
 #include superbuild_macro for OTB_TARGET_SYSTEM_ARCH_IS_X64 value
+# This maybe deleted as it might be done with cmake_host_system_information
+# https://cmake.org/cmake/help/v3.10/command/cmake_host_system_information.html?highlight=sse
 include(${PACKAGE_OTB_SRC_DIR}/CMake/OTBCheckTargetSystemArch.cmake)
 
 # get itk version from External_itk.cmake if not on mingw
@@ -221,15 +222,8 @@ if(BUILD_TESTING)
   include(testing.cmake)
 endif()
 
-
-
-
-#TODO: dummy targets. to be removed after merge
-add_custom_target(
-    PACKAGE-OTB
-    COMMAND
-    "${CMAKE_COMMAND}" --build . --target install
-    WORKING_DIRECTORY
-    "${CMAKE_BINARY_DIR}"
-    COMMENT "dummy target PACKAGE-OTB"
-    )
+add_custom_target( PACKAGE-OTB
+      COMMAND "${CMAKE_COMMAND}" --build . --target install
+      WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
+      COMMENT "PACKAGE-OTB"
+      )
\ No newline at end of file
diff --git a/Packaging/CTestConfig.cmake b/Packaging/CTestConfig.cmake
index 8f8b4948dbb685c582affd0f7098023d8ab82f15..a61552e69e4c33320d1b70e4b4669e28a192f3e4 100644
--- a/Packaging/CTestConfig.cmake
+++ b/Packaging/CTestConfig.cmake
@@ -19,7 +19,6 @@
 #
 
 set(CTEST_PROJECT_NAME "OTB")
-set(CTEST_NIGHTLY_START_TIME "20:00:00 CEST")
 set(CTEST_DROP_METHOD "https")
 set(CTEST_DROP_SITE "cdash.orfeo-toolbox.org")
 set(CTEST_DROP_LOCATION "/submit.php?project=OTB")
diff --git a/Packaging/PackageGlobals.cmake b/Packaging/PackageGlobals.cmake
index a2202433bd4731c4606c43eaa51ae69a601bb157..22202d0ddcdec4fc751fbbe7be0e8a7348e68013 100644
--- a/Packaging/PackageGlobals.cmake
+++ b/Packaging/PackageGlobals.cmake
@@ -186,6 +186,4 @@ set(GTK_LIB_LIST_1
 #   libpng12.so.0
 #   )
 
-
-#set(ALLOWED_SYSTEM_DLLS ${GTK_LIB_LIST_1} ${GTK_LIB_LIST_2})
 set(ALLOWED_SYSTEM_DLLS ${GTK_LIB_LIST_1}) # ${GTK_LIB_LIST_2})
diff --git a/Packaging/cleanup_package.cmake b/Packaging/cleanup_package.cmake
index 2df328bf11afefdde73f902b4f1829fc425854f6..a003fa09861b71aa986746961c5dc6b5ab0a61fe 100644
--- a/Packaging/cleanup_package.cmake
+++ b/Packaging/cleanup_package.cmake
@@ -22,36 +22,36 @@ macro(cleanup_package)
 
 if(EXISTS "${CMAKE_INSTALL_PREFIX}/${PKG_STAGE_DIR}")
 
-message(STATUS "Deleting package staging directory: ${CMAKE_INSTALL_PREFIX}/${PKG_STAGE_DIR}")
-execute_process(COMMAND 
-${CMAKE_COMMAND} -E remove_directory
-  "${CMAKE_INSTALL_PREFIX}/${PKG_STAGE_DIR}"
-  RESULT_VARIABLE cleanup_stagedir_rv
-  OUTPUT_VARIABLE cleanup_stagedir_ov
-  ERROR_VARIABLE cleanup_stagedir_ov
-  )
+  message(STATUS "Deleting package staging directory: ${CMAKE_INSTALL_PREFIX}/${PKG_STAGE_DIR}")
+  execute_process(COMMAND 
+  ${CMAKE_COMMAND} -E remove_directory
+    "${CMAKE_INSTALL_PREFIX}/${PKG_STAGE_DIR}"
+    RESULT_VARIABLE cleanup_stagedir_rv
+    OUTPUT_VARIABLE cleanup_stagedir_ov
+    ERROR_VARIABLE cleanup_stagedir_ov
+    )
   
   if(cleanup_stagedir_rv)
-  message(FATAL_ERROR  "Delete ${CMAKE_INSTALL_PREFIX}/${PKG_STAGE_DIR} - FAILED\ncleanup_stagedir_ov=${cleanup_stagedir_ov}")
+    message(FATAL_ERROR  "Delete ${CMAKE_INSTALL_PREFIX}/${PKG_STAGE_DIR} - FAILED\ncleanup_stagedir_ov=${cleanup_stagedir_ov}")
   else()
-  message(STATUS "Delete ${CMAKE_INSTALL_PREFIX}/${PKG_STAGE_DIR} - OK")  
+    message(STATUS "Delete ${CMAKE_INSTALL_PREFIX}/${PKG_STAGE_DIR} - OK")  
   endif()
 endif()
 
 if(EXISTS "${PACKAGE_OUTPUT_FILE}")
-message(STATUS "Remove PACKAGE_OUTPUT_FILE: ${PACKAGE_OUTPUT_FILE}")
-execute_process(COMMAND 
-${CMAKE_COMMAND} -E remove -f "${PACKAGE_OUTPUT_FILE}"
-  RESULT_VARIABLE cleanup_pkgfile_rv
-  OUTPUT_VARIABLE cleanup_pkgfile_ov
-  ERROR_VARIABLE cleanup_pkgfile_ov
-  WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
-  )
+  message(STATUS "Remove PACKAGE_OUTPUT_FILE: ${PACKAGE_OUTPUT_FILE}")
+  execute_process(COMMAND 
+  ${CMAKE_COMMAND} -E remove -f "${PACKAGE_OUTPUT_FILE}"
+    RESULT_VARIABLE cleanup_pkgfile_rv
+    OUTPUT_VARIABLE cleanup_pkgfile_ov
+    ERROR_VARIABLE cleanup_pkgfile_ov
+    WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+    )
   
-    if(cleanup_pkgfile_rv)
-  message(FATAL_ERROR  "Delete ${PACKAGE_OUTPUT_FILE} - FAILED\ncleanup_pkgfile_ov=${cleanup_pkgfile_ov}")
+  if(cleanup_pkgfile_rv)
+    message(FATAL_ERROR  "Delete ${PACKAGE_OUTPUT_FILE} - FAILED\ncleanup_pkgfile_ov=${cleanup_pkgfile_ov}")
   else()
-  message(STATUS "Delete ${PACKAGE_OUTPUT_FILE} - OK")  
+    message(STATUS "Delete ${PACKAGE_OUTPUT_FILE} - OK")  
   endif()
   
 endif()
diff --git a/Packaging/install_rule.cmake b/Packaging/install_rule.cmake
index f18018ccdeab02bd345c4497c846d069bd5d0d6b..f335ad165461d2d4ded0c68aa490a593771f64a5 100644
--- a/Packaging/install_rule.cmake
+++ b/Packaging/install_rule.cmake
@@ -51,7 +51,7 @@ function(install_rule src_file)
       # like MosiacHeaderTest1.exe. This ideally should be
       # fixed in remote modules like OTBMosiacHeaderTest1.exe
       if(PKG_DEBUG)
-	message("SKIP INSTALL for ${sfile_NAME_LOWER}")
+        message("SKIP INSTALL for ${sfile_NAME_LOWER}")
       endif()
       continue()
     elseif(("${sfile_ABS_LOWER}" MATCHES "(\\${LIB_EXT})$") AND (src_file_GNAME STREQUAL "plugins"))
@@ -109,11 +109,11 @@ function(install_rule src_file)
     # This check comes outside the first if-elseif ladder
     # because no matter what extension of file type, otbapp_* must go
     # into lib/otb/applications
-  if("${sfile_NAME_LOWER}" MATCHES "^otbapp_")
-    install_otbapp_wrapper_scripts(${sfile_NAME})
-    set(install_dir "lib/otb/applications")
-    set(install_type PROGRAMS)
-  endif()
+    if("${sfile_NAME_LOWER}" MATCHES "^otbapp_")
+      install_otbapp_wrapper_scripts(${sfile_NAME})
+      set(install_dir "lib/otb/applications")
+      set(install_type PROGRAMS)
+    endif()
   
     if(NOT install_type OR NOT install_dir)
       #throw fatal error and return
diff --git a/Packaging/isfile_symlink.cmake b/Packaging/isfile_symlink.cmake
index 511012b9fc58a708a60f2a74d479191483c1859e..a67cceaff6ec334acf91a941132f59ef745b29b7 100644
--- a/Packaging/isfile_symlink.cmake
+++ b/Packaging/isfile_symlink.cmake
@@ -17,6 +17,18 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
+
+# Two things can replace this whole function :
+# This test if it is a symlink
+# if(IS_SYMLINK file_name)
+  # This resolve the link
+  # get_filename_component(real_name file_name
+                       # REALPATH )
+# endif()
+# We can also just do 
+# get_filename_component(real_name file_name
+                       # REALPATH )
+# and resolve the symlink
 function(isfile_symlink file result_var1 result_var2)
   #
   # A file is not executable until proven otherwise:
diff --git a/Packaging/setif_value_in_list.cmake b/Packaging/setif_value_in_list.cmake
index 673f90b8c2b5bf5a83f215d36a55b7309faa6069..b82650012ce5bbbf603aafcd0cb0eeb7bdd0d880 100644
--- a/Packaging/setif_value_in_list.cmake
+++ b/Packaging/setif_value_in_list.cmake
@@ -17,6 +17,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
+# This is the list( FIND list value matched )
+# To be removed
 function(setif_value_in_list matched VALUE list)
   set(${matched} FALSE  PARENT_SCOPE)
   string(TOLOWER ${VALUE} value)
diff --git a/SuperBuild/CMake/SystemCheckup/CMakeLists.txt b/SuperBuild/CMake/SystemCheckup/CMakeLists.txt
index d62ffda278a110c99fb8c9030aaaf2b03bef3bf3..58ed95c622dbefbf32bf60cb59089d9a9ab55eff 100644
--- a/SuperBuild/CMake/SystemCheckup/CMakeLists.txt
+++ b/SuperBuild/CMake/SystemCheckup/CMakeLists.txt
@@ -19,7 +19,7 @@
 #
 
 # Script to analyse the OTB dependencies already present
-cmake_minimum_required(VERSION 2.8.7)
+cmake_minimum_required(VERSION 3.10.2)
 project(SystemCheckup)
 
 if (EXISTS ${CMAKE_SOURCE_DIR}/../../../CMake)
diff --git a/SuperBuild/CMakeLists.txt b/SuperBuild/CMakeLists.txt
index 54b09d87b881dde45a673b8b670fdb506d9f4a94..fbcf788525b1f568d87a3b913eaaf2e0c77f72fd 100644
--- a/SuperBuild/CMakeLists.txt
+++ b/SuperBuild/CMakeLists.txt
@@ -18,7 +18,7 @@
 # limitations under the License.
 #
 
-cmake_minimum_required(VERSION 3.3.0)
+cmake_minimum_required(VERSION 3.10.2)
 
 project(OTB-SuperBuild)
 
@@ -40,9 +40,6 @@ endif()
 
 include(ExternalProject)
 
-# Not needed as OTB Superbuild requires c++14 since version 6.2
-# include(OTBCheckCpp11Keywords)
-
 include(OTBCheckTargetSystemArch)
 
 set(LINUX FALSE)
@@ -50,17 +47,18 @@ if( "${CMAKE_SYSTEM_NAME}"  MATCHES "Linux")
   set(LINUX TRUE)
 endif()
 
-option(BUILD_SHARED_LIBS "Build OTB with shared libraries." ON)
-option(BUILD_STATIC_LIBS "Build with static libraries." OFF)
+option(BUILD_SHARED_LIBS "Build Superbuild with shared libraries." ON)
+mark_as_advanced(BUILD_SHARED_LIBS)
+option(BUILD_GEOS_STATIC_LIBS "Build GEOS with static libraries." OFF)
+mark_as_advanced(BUILD_GEOS_STATIC_LIBS)
 option(BUILD_ALWAYS "Always build or install OTB." ON)
 option(WITH_REMOTE_MODULES "Build with specific list of remote modules." OFF)
 option(OTB_USE_OPENMP "use openmp" OFF)
-set(OTB_ADDITIONAL_CACHE "" CACHE STRING "Additional cmake options for OTB with the syntax (semi-colon used as a separator): -D<var>:<type>=<value>;-D<var>:<type>=<value>")
+set(OTB_ADDITIONAL_CACHE "" CACHE STRING "Additional cmake options for OTB with "
+  "the syntax (semi-colon used as a separator): "
+  "-D<var>:<type>=<value>;-D<var>:<type>=<value>")
 
 if(APPLE)
-  if(POLICY CMP0042)
-    cmake_policy(SET CMP0042 NEW)
-  endif()
   set(CMAKE_MACOSX_RPATH TRUE)
 endif()
 
@@ -120,6 +118,7 @@ message("OTB version : ${SUPERBUILD_OTB_VERSION}")
 # Special setting for low kernel versions
 if(UNIX)
   option(USE_LOW_KERNEL_VERSION "Try to keep the minimal kernel version as low as possible" ON)
+  mark_as_advanced(USE_LOW_KERNEL_VERSION)
 endif()
 
 
diff --git a/SuperBuild/CTestConfig.cmake b/SuperBuild/CTestConfig.cmake
index 05ffb327e79a85362e54831e3d2c859c59ae7b92..d8f16549813bfccee2f4a490a76310d90e4ee90a 100644
--- a/SuperBuild/CTestConfig.cmake
+++ b/SuperBuild/CTestConfig.cmake
@@ -18,15 +18,7 @@
 # limitations under the License.
 #
 
-## This file should be placed in the root directory of your project.
-## Then modify the CMakeLists.txt file in the root directory of your
-## project to incorporate the testing dashboard.
-## # The following are required to uses Dart and the Cdash dashboard
-##   enable_testing()
-##   include(Dart)
 set(CTEST_PROJECT_NAME "OTB")
-set(CTEST_NIGHTLY_START_TIME "20:00:00 CEST")
-
 set(CTEST_DROP_METHOD "https")
 set(CTEST_DROP_SITE "cdash.orfeo-toolbox.org")
 set(CTEST_DROP_LOCATION "/submit.php?project=OTB")
diff --git a/Utilities/Doxygen/CMakeLists.txt b/Utilities/Doxygen/CMakeLists.txt
index 7680b8f940a3101e176c3e298e820030ea189b9b..c5d5cfa5be967a62842eabc4232fb28ddce03634 100644
--- a/Utilities/Doxygen/CMakeLists.txt
+++ b/Utilities/Doxygen/CMakeLists.txt
@@ -21,10 +21,9 @@
 #
 # Build the documentation
 #
+# This file provides the advanced variable BUILD_DOCUMENTATION
 include (${CMAKE_ROOT}/Modules/Documentation.cmake)
 
-mark_as_advanced(BUILD_DOCUMENTATION)
-
 # -------------------------------------------------------------
 #
 # Generate Doxygen configuration file in all configuration file
diff --git a/i18n/CMakeLists.txt b/i18n/CMakeLists.txt
index efd5fcaf0dd7cc22a4c28773ec9db24bde082c5b..5aa39ee48e0c1fcbce0a7a1ad523641ca45f2af9 100644
--- a/i18n/CMakeLists.txt
+++ b/i18n/CMakeLists.txt
@@ -35,6 +35,7 @@ option( OTB_I18N_MERGE_TS
   "Create/merge .ts source translation files. WARNING: If ON, 'make clean' will delete the .ts files from source directory!"
   OFF
   )
+mark_as_advanced( OTB_I18N_MERGE_TS )
 
 #----------------------------------------------------------------------------
 if( OTBQt_ENABLED )