[refact] Refact LidarView build system to allow standalone builds
This MR refact LidarView cmake/build architecture. This is a follow-up of !392 (merged)
Main changes:
- Add a Plugins/ directory and CMake uses
paraview_plugin_scanto build automatically requested plugins (LidarCorePluginis still required) - Move
DatasetIOPlugininto the newPlugins/directory and clean-up the plugin - Split
LidarPluginin two parts:-
LidarCorewhich will be located inLVCore/- containing all vtk modules, as our interpreters plugins and ApplicationComponents depends on LidarCore modules, to resolve dependencies build, we needed to extract it fromLidarPlugin. -
LidarCorePluginwhich will be located inLVCore/Plugins/- containing only XML paraview proxy files (it seems we can only add filters and sources in a paraview based-app if it's in a plugin). Note: I added a dummyLidarView::UtilitiesUsedModulesto be able to buildLidarCorePlugin, which optional depends on all othersLidarCoremodules.
-
- Build all LidarView modules and plugins from
LVCore/CMakeLists.txt- Note: to build LidarView-basedapp specific plugins we need to set
lidarview_default_pluginsandlidarview_plugin_directoriesbefore callingadd_subdirectory(LVCore)
- Note: to build LidarView-basedapp specific plugins we need to set
- Rework the python module installer to be standalone build compatible
- Add
CMake/CommonLidarViewOptions.cmaketo regroup all LidarView-based app common options, this file need to be include in the LidarView based app. - Fix
LidarCoretesting and add a way to do UI XML testing in LidarView. - Externalize SLAM plugin, I think it became too complexe to be built inside LidarView, it adds a lot of optional dependencies and flood CMake logs. (We would add it as a project in lidarview-superbuild, it wouldn't change anything from an user point of vue as we cannot currently build LidarView in standalone) See keu-computervision/slam!238 (merged)
Others fixes:
- Remove
FORCE_STATICfromLidarCoremodules. - Fix depencies in
LidarCoremodules that was missing when building python wrapping. - Fix prepended python path to find LidarView python libraries
- Clean-up CMake files that became useless with the module/plugin system.
What's next:
- Make ApplicationComponent a vtk module
- Migrate some python functionalities from LidarView/applogic into LVCore
Related to lidarview!169 (merged)
Edited by Timothée Couble