Over the weekend, I started updating vtk-dicom to the new VTK 9 build system.
For previous versions of VTK, it was possible to build vtk-dicom either as part of the VTK build (i.e. as a remote module, thanks to Bill Lorensen), or as an external package against an existing VTK build. External builds have always been challenging due to the fact that, historically, the VTK cmake commands for wrapping are neither streamlined nor stable between VTK versions.
I plan to continue supporting both remote and external builds of vtk-dicom for VTK 9. But there seems to be a hitch. For remote modules,
vtk.module must be in the base directory of the repository, but for external packages,
vtk.module must be in a subdirectory (so that it can be found by the main
CMakeLists.txt for the package). I can solve this problem by having two identical copies of
vtk.module, one in the base directory and another in the directory that contains the source code for the module. But it’s a rather ugly solution.
The best solution would probably be to expand the idea of “remote module” to also allow for “remote packages”, where a package can contain one or more modules (e.g. as subdirectories). For vtk-dicom, at least, I think it would make it easier for me to maintain things moving forward.
Does anyone have opinions on this?