Skip to content

Move OpenNI and VTK support from io to their own modules #5798

Open
@jackjansen

Description

@jackjansen

In the https://github.com/cwi-dis/cwipc toolkit that I maintain I depend on libpcl for some features. Specifically for this bug report: I use the ply-file readers from the io package. My toolkit is cross-platform.

But the io package is rather heavy: it also depends on vtk and OpenNI (at least when it is built for the Windows all-in-one installer).

So this means my users have a whole lot of packages they need to install, even though my toolkit doesn't actually need them.

Both of the mentioned dependencies have their own specific problems, especially on Windows:

  • vtk is large and unwieldy and versions seem to follow each other quickly, making it difficult to instal.
  • OpenNI is very sensitive for how it is installed, and how it is added to PATH.

(I have a similar issue with the boost dependency, but I get the impression that the libpcl developers are already moving away from boost as much as possible, so I'm hoping that problem will eventually go away by itself).

Context

See above.

Expected behavior

If the OpenNI and VTK I/O handlers were in their own package, in stead of in io, I wouldn't have to worry about them (because I don't use them).

Current Behavior

Currently all I/O is in a single package io, which means that the only way to disable (or enable) certain features is to build libpcl from source.

Describe the solution you'd like

If the OpenNI and VTK I/O handlers were in their own package, in stead of in io, I wouldn't have to worry about them (because I don't use them).

Describe alternatives you've considered

An alternative is that I build libpcl from source with exactly the options I need, and that I distribute that version with my cwipc package. But that would "lock in" the users of my package to have access only to the libpcl features that I happen to have selected, whereas with the setup where I don't distribute a private copy of libpcl my users have the freedom to use any libpcl feature they want (because I'm linking to the libpcl that they have installed).

Additional context

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions