Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • otb otb
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 214
    • Issues 214
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 13
    • Merge requests 13
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
    • Model experiments
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Main Repositories
  • otbotb
  • Issues
  • #2254

Removing dependencies to Qt (and OpenGL)

What changes will be made and why they would make a better Orfeo ToolBox?

As explained in the roadmap for OTB 9 (#2248), we propose to remove Qt from the dependencies of OTB. With this change, we will be able to provide a lighter OTB package, more suitable for usages where a GUI is not required. Users will still have the possibility to use OTB through GUI with the QGIS plugin which was greatly improve in OTB8.

High level description

  • Removal of the "Visualization" module (Ice, Mapla, Monteverdi)
  • Removal of the QtAdapters and QTWidget
  • Removal of the third party modules (OpenGL, Glew, Glut, GLFW, Qwt, Qt)
  • Removal of the "i18n" directory
  • Cleaning of the CMake files
  • Updating the Continuous Integration Platform
  • Updating the documentation

Risks and benefits

Risks

An unseen dependency to the Qt/OpenGL libraries in OTB core. I haven't seen any. But it it happens, we may have remove the functionality that requires it.

Benefits
  • Lighter package
  • Faster compilation
  • Less work for the maintenance

Who will be developing the proposed changes?

The OTB team

Implementation details

Removal of the "Visualization" module (Ice, Mapla, Monteverdi)

Delete the "Modules/Visualization" directory.

Removal of the QtAdapters and QTWidget

Delete the "Modules/Adapters/QtAdapters" and "Modules/Wrappers/QtWidget" directories.

Removal of the third party modules (OpenGL, Glew, Glut, GLFW, Qwt, Qt)

Delete the "Modules/ThirdParty/Glew", "Modules/ThirdParty/GLFW", "Modules/ThirdParty/Glut", "Modules/ThirdParty/OpenGL", "Modules/ThirdParty/Qt" and "Modules/ThirdParty/Qwt" directories.

Removal of the "i18n" directory

Delete the "i18n" directory. Remove references to i18n in the main CMakeList.txt (lines 98, 100, 628 and 629).

Cleaning of the CMake files

Delete the "Superbuild/CMake/External_glew.cmake", "Superbuild/CMake/External_glfw.cmake", "Superbuild/CMake/External_glut.cmake", "Superbuild/CMake/External_qt.cmake" and "Superbuild/CMake/External_qwt.cmake".

Delete the "CMake/FindGLFW.cmake", "CMake/FindQwt.cmake", "CMake/i18n_qt.cmake", "CMake/MonteverdiApplicationMacros.cmake", "CMake/otbgui.bat.in" and "CMake/otbgui.sh.in".

Remove references to Qt etc in "Superbuild/CmakeLists.txt" (lines 295-299, 320 and 322-334) and in "Superbuild/Cmake/External_otb.cmake" (lines 93-121, 212 and 214-218).

Updating the Continuous Integration Platform

In the repository https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb-build-env, make a copy of the existing dockerfiles, call them "...-headless", remove the installation of the packages related to Qt, Glew, GLFW, Glut, OpenGL, etc.

In ".gitlab-ci.yml", use the dockers names "...-headless".

Updating the documentation

Delete the "Documentation/Cookbook/rst/GraphicalInterface.rst" and "Documentation/Cookbook/rst/Monteverdi.rst" files. Remove the "System dependencies" paragraph in "Documentation/Cookbook/rst/Installation.rst". Update the "Notes", "FAQ" and "Other packages" paragraphs in "Documentation/Cookbook/rst/Installation.rst". Update the "Documentation/Cookbook/rst/CompilingOTBFromSource.rst" file.

Edited May 06, 2022 by Julien Osman
Assignee
Assign to
Time tracking