From a3a747090842f6e604479f38f48d546fbdb56249 Mon Sep 17 00:00:00 2001
From: Guillaume Pasero <guillaume.pasero@c-s.fr>
Date: Fri, 14 Sep 2018 16:08:10 +0200
Subject: [PATCH] ENH: handle deprecated modules and option OTB_USE_DEPRECATED

---
 CMake/OTBModuleEnablement.cmake | 2 ++
 CMake/OTBModuleMacros.cmake     | 4 ++++
 2 files changed, 6 insertions(+)

diff --git a/CMake/OTBModuleEnablement.cmake b/CMake/OTBModuleEnablement.cmake
index 4ec34d94df..453b8213d0 100644
--- a/CMake/OTBModuleEnablement.cmake
+++ b/CMake/OTBModuleEnablement.cmake
@@ -196,6 +196,8 @@ foreach(otb-module ${OTB_MODULES_ALL})
   if(OTB_MODULE_${otb-module}_ACTIVATION_OPTION
      AND NOT ${OTB_MODULE_${otb-module}_ACTIVATION_OPTION})
      otb_module_disable("${otb-module}" "${OTB_MODULE_${otb-module}_ACTIVATION_OPTION}")
+  elseif(OTB_MODULE_${otb-module}_IS_DEPRECATED AND NOT OTB_USE_DEPRECATED)
+     otb_module_disable("${otb-module}" "OTB_USE_DEPRECATED")
   endif()
 endforeach()
 
diff --git a/CMake/OTBModuleMacros.cmake b/CMake/OTBModuleMacros.cmake
index 127ae794a0..095575a4e9 100644
--- a/CMake/OTBModuleMacros.cmake
+++ b/CMake/OTBModuleMacros.cmake
@@ -69,6 +69,9 @@ macro(otb_module _name)
     elseif("${arg}" MATCHES "^ENABLE_SHARED$")
       set(_doing "")
       set(OTB_MODULE_${otb-module}_ENABLE_SHARED 1)
+    elseif("${arg}" MATCHES "^DEPRECATED$")
+      set(_doing "")
+      set(OTB_MODULE_${otb-module}_IS_DEPRECATED 1)
     elseif("${arg}" MATCHES "^[A-Z][A-Z][A-Z]$")
       set(_doing "")
       message(AUTHOR_WARNING "Unknown argument [${arg}]")
@@ -221,6 +224,7 @@ macro(otb_module_impl)
     generate_export_header(${otb-module}
       EXPORT_FILE_NAME ${_export_header_file}
       EXPORT_MACRO_NAME ${otb-module}_EXPORT
+      DEPRECATED_MACRO_NAME ${otb-module}_DEPRECATED
       NO_EXPORT_MACRO_NAME ${otb-module}_HIDDEN
       STATIC_DEFINE OTB_STATIC )
     install(FILES
-- 
GitLab