|
|
So you want to deprecate something in OTB? Follow the guide:
|
|
|
|
|
|
#### A C++ class
|
|
|
#### A C++ class (WIP)
|
|
|
|
|
|
In the doxygen documentation of the class, add the `\deprecated` keyword.
|
|
|
|
|
|
In the class declaration, use the `[[deprecated]]` attribute. If the class declaration already has an export macro, use the macro `_DEPRECATED_EXPORT`.
|
|
|
|
|
|
#### A method of a C++ class
|
|
|
#### A method of a C++ class (WIP)
|
|
|
|
|
|
Use the `[[deprecated]]` attribute.
|
|
|
|
|
|
#### A part of the Python API
|
|
|
#### A part of the Python API (WIP)
|
|
|
|
|
|
TODO
|
|
|
|
|
|
#### An OTB application
|
|
|
#### An OTB application (WIP)
|
|
|
|
|
|
Add the tag deprecated:
|
|
|
|
... | ... | @@ -23,8 +22,44 @@ AddDocTag(Tags::Deprecated); |
|
|
```
|
|
|
|
|
|
#### An OTB module
|
|
|
An OTB module can be deprecated thanks to the `otb_module` macro in the `otb-module.cmake`. One just need to add the key word `DEPRECATED` the arguments.
|
|
|
Here is an example of th `otb-module.cmake` of a deprecated module :
|
|
|
```CMake
|
|
|
set(DOCUMENTATION "Some documentation")
|
|
|
otb_module(OTBDeprecatedModuleName
|
|
|
DEPENDS
|
|
|
OTBSomeDependencies
|
|
|
|
|
|
Add the keyword `DEPRECATED` in the call to `otb_module()` macro in file `otb-module.cmake`
|
|
|
TEST_DEPENDS
|
|
|
OTBTestKernel
|
|
|
OTBSomeOtherDependenciesForTest
|
|
|
|
|
|
DEPRECATED
|
|
|
|
|
|
DESCRIPTION
|
|
|
"${DOCUMENTATION}"
|
|
|
)
|
|
|
```
|
|
|
|
|
|
One need to make sure that the deprecated module is not a mandatory dependency of any other module. One can still allow the module to be use thanks to the `OPTIONAL_DEPENDS` key word :
|
|
|
```CMake
|
|
|
set(DOCUMENTATION "Some documentation")
|
|
|
otb_module(OTBDModuleName
|
|
|
DEPENDS
|
|
|
OTBSomeDependencies
|
|
|
|
|
|
OPTIONAL_DEPENDS
|
|
|
OTBSomeOptionalDependencies
|
|
|
OTBSomeDeprecatedModule
|
|
|
|
|
|
TEST_DEPENDS
|
|
|
OTBTestKernel
|
|
|
OTBSomeOtherDependenciesForTest
|
|
|
|
|
|
DESCRIPTION
|
|
|
"${DOCUMENTATION}"
|
|
|
)
|
|
|
```
|
|
|
|
|
|
#### How to disable deprecated features when `OTB_USE_DEPRECATED=OFF`?
|
|
|
|
... | ... | |