# Two questions about new module system

**URL:** https://discourse.vtk.org/t/two-questions-about-new-module-system/2864
**Category:** Support
**Created:** [March 22, 2020, 9:52am UTC](https://discourse.vtk.org/t/two-questions-about-new-module-system/2864 "2020-03-22T09:52:18Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![estan](https://discourse.vtk.org/user_avatar/discourse.vtk.org/estan/32/460_2.png) [@estan](https://discourse.vtk.org/u/estan)
#### Post date: [March 22, 2020, 9:52am UTC](https://discourse.vtk.org/t/two-questions-about-new-module-system/2864/1 "2020-03-22T09:52:18Z")

</div>

Hi all,

Having a first look at porting our application to VTK 9.0.0.

First question is about `vtkRenderingContextOpenGL2`. With 9.0.0 it seems we no longer get that library? What should I link against to pick the OpenGL2 backend for context views? Or has the library been removed and they are now using OpenGL2 by default?

Second question: CMake of our project finishes successfully, but `VTK_INCLUDE_DIRS` is now empty. I’m guessing this has to do with the VTK CMake changes/new module system? How do I get the VTK include directories added nowadays? I looked at @ben.boeckel’s post at [https://vtk.org/pipermail/vtk-developers/2019-January/036648.html](https://vtk.org/pipermail/vtk-developers/2019-January/036648.html) under the “For consumers of VTK” section but couldn’t find any info about changes in how to consume VTK include directories.

---

<div class="post-metadata">

### Author: ![estan](https://discourse.vtk.org/user_avatar/discourse.vtk.org/estan/32/460_2.png) [@estan](https://discourse.vtk.org/u/estan)
#### Post date: [March 22, 2020, 9:57am UTC](https://discourse.vtk.org/t/two-questions-about-new-module-system/2864/2 "2020-03-22T09:57:51Z")

</div>

I guess I have a third question 🙂

The mail also mentions

> - For object factories to work, `vtk_module_autoinit` should be used.  
> This generates the proper `-D` flags for getting initialization to  
> work.

Will the CMake machinery still add automatic compile flags like `-DvtkRenderingContext2D_AUTOINIT="1(vtkRenderingContextOpenGL2)"`, or must I do something manually with `vtk_module_autoinit` myself?

---

<div class="post-metadata">

### Author: ![estan](https://discourse.vtk.org/user_avatar/discourse.vtk.org/estan/32/460_2.png) [@estan](https://discourse.vtk.org/u/estan)
#### Post date: [March 22, 2020, 10:10am UTC](https://discourse.vtk.org/t/two-questions-about-new-module-system/2864/3 "2020-03-22T10:10:16Z")

</div>

> [@estan](#):
>
> Will the CMake machinery still add automatic compile flags like `-DvtkRenderingContext2D_AUTOINIT="1(vtkRenderingContextOpenGL2)"` , or must I do something manually with `vtk_module_autoinit` myself?

Nevermind this question, I see I sort of already asked it back in Bill’s ML thread “vtk\_module\_autoinit in new module system” ([[vtk-developers] vtk\_module\_autoinit in new module system](https://vtk.org/pipermail/vtk-developers/2019-January/036796.html)). So I will have to make a call to that function.

---

<div class="post-metadata">

### Author: ![estan](https://discourse.vtk.org/user_avatar/discourse.vtk.org/estan/32/460_2.png) [@estan](https://discourse.vtk.org/u/estan)
#### Post date: [March 22, 2020, 10:28am UTC](https://discourse.vtk.org/t/two-questions-about-new-module-system/2864/4 "2020-03-22T10:28:31Z")

</div>

I should have done some more digging. I got everything working by 1) Adding the `vtk_module_autoinit` calls for our targets. 2) Fixing to use `VTK::Foo` instead of `vtkFoo` in some places.

Or well, I still have uses of deprecated stuff to take care of, but at least now the compile/link lines are all good 🙂

---

<div class="post-metadata">

### Author: ![estan](https://discourse.vtk.org/user_avatar/discourse.vtk.org/estan/32/460_2.png) [@estan](https://discourse.vtk.org/u/estan)
#### Post date: [March 22, 2020, 10:54am UTC](https://discourse.vtk.org/t/two-questions-about-new-module-system/2864/5 "2020-03-22T10:54:48Z")

</div>

> First question is about `vtkRenderingContextOpenGL2` . With 9.0.0 it seems we no longer get that library? What should I link against to pick the OpenGL2 backend for context views? Or has the library been removed and they are now using OpenGL2 by default?

Hm, now that I got the program built, it crashes at runtime with:

```
2020-03-22 11:51:44.120 ( 0,477s) [F002EC40] vtkContextDevice2D.cxx:32 WARN| Error: no override found for 'vtkContextDevice2D'.

```

So I’m guessing there’s something missing after all. In VTK 8 I could link against `vtkRenderingContextOpenGL2` to pick an implementation. What should I link against in VTK 9?

In VTK 8 I had:

```plaintext
estan@edison:~$ ls /opt/VTK8/lib/*OpenGL2*
/opt/VTK8/lib/libvtkDomainsChemistryOpenGL2-8.2.so /opt/VTK8/lib/libvtkRenderingContextOpenGL2-8.2.so /opt/VTK8/lib/libvtkRenderingOpenGL2-8.2.so
/opt/VTK8/lib/libvtkDomainsChemistryOpenGL2-8.2.so.8.2 /opt/VTK8/lib/libvtkRenderingContextOpenGL2-8.2.so.8.2 /opt/VTK8/lib/libvtkRenderingOpenGL2-8.2.so.8.2
/opt/VTK8/lib/libvtkDomainsChemistryOpenGL2-8.2.so.8.2.0 /opt/VTK8/lib/libvtkRenderingContextOpenGL2-8.2.so.8.2.0 /opt/VTK8/lib/libvtkRenderingOpenGL2-8.2.so.8.2.0
/opt/VTK8/lib/libvtkDomainsChemistryOpenGL2Python36D-8.2.so /opt/VTK8/lib/libvtkRenderingContextOpenGL2Python36D-8.2.so /opt/VTK8/lib/libvtkRenderingOpenGL2Python36D-8.2.so
/opt/VTK8/lib/libvtkDomainsChemistryOpenGL2Python36D-8.2.so.8.2 /opt/VTK8/lib/libvtkRenderingContextOpenGL2Python36D-8.2.so.8.2 /opt/VTK8/lib/libvtkRenderingOpenGL2Python36D-8.2.so.8.2
/opt/VTK8/lib/libvtkDomainsChemistryOpenGL2Python36D-8.2.so.8.2.0 /opt/VTK8/lib/libvtkRenderingContextOpenGL2Python36D-8.2.so.8.2.0 /opt/VTK8/lib/libvtkRenderingOpenGL2Python36D-8.2.so.8.2.0
/opt/VTK8/lib/libvtkIOExportOpenGL2-8.2.so /opt/VTK8/lib/libvtkRenderingGL2PSOpenGL2-8.2.so /opt/VTK8/lib/libvtkRenderingVolumeOpenGL2-8.2.so
/opt/VTK8/lib/libvtkIOExportOpenGL2-8.2.so.8.2 /opt/VTK8/lib/libvtkRenderingGL2PSOpenGL2-8.2.so.8.2 /opt/VTK8/lib/libvtkRenderingVolumeOpenGL2-8.2.so.8.2
/opt/VTK8/lib/libvtkIOExportOpenGL2-8.2.so.8.2.0 /opt/VTK8/lib/libvtkRenderingGL2PSOpenGL2-8.2.so.8.2.0 /opt/VTK8/lib/libvtkRenderingVolumeOpenGL2-8.2.so.8.2.0
/opt/VTK8/lib/libvtkIOExportOpenGL2Python36D-8.2.so /opt/VTK8/lib/libvtkRenderingGL2PSOpenGL2Python36D-8.2.so /opt/VTK8/lib/libvtkRenderingVolumeOpenGL2Python36D-8.2.so
/opt/VTK8/lib/libvtkIOExportOpenGL2Python36D-8.2.so.8.2 /opt/VTK8/lib/libvtkRenderingGL2PSOpenGL2Python36D-8.2.so.8.2 /opt/VTK8/lib/libvtkRenderingVolumeOpenGL2Python36D-8.2.so.8.2
/opt/VTK8/lib/libvtkIOExportOpenGL2Python36D-8.2.so.8.2.0 /opt/VTK8/lib/libvtkRenderingGL2PSOpenGL2Python36D-8.2.so.8.2.0 /opt/VTK8/lib/libvtkRenderingVolumeOpenGL2Python36D-8.2.so.8.2.0
estan@edison:~$

```

But in VTK 9 I only have:

```plaintext
estan@edison:~$ ls /opt/VTK9/lib/*OpenGL2*
/opt/VTK9/lib/libvtkRenderingGL2PSOpenGL2.so /opt/VTK9/lib/libvtkRenderingOpenGL2.so /opt/VTK9/lib/libvtkRenderingVolumeOpenGL2.so
/opt/VTK9/lib/libvtkRenderingGL2PSOpenGL2.so.9.0 /opt/VTK9/lib/libvtkRenderingOpenGL2.so.9.0 /opt/VTK9/lib/libvtkRenderingVolumeOpenGL2.so.9.0
/opt/VTK9/lib/libvtkRenderingGL2PSOpenGL2.so.9.0.0 /opt/VTK9/lib/libvtkRenderingOpenGL2.so.9.0.0 /opt/VTK9/lib/libvtkRenderingVolumeOpenGL2.so.9.0.0
estan@edison:~$

```

My CMake line for VTK 8 had:

```plaintext
	-DCMAKE_INSTALL_PREFIX=/opt/VTK8 \
	-DCMAKE_INSTALL_RPATH=/opt/VTK8/lib \
	-DVTK_Group_Qt=ON \
	-DVTK_QT_VERSION=5 \
	-DVTK_Group_Imaging=ON \
	-DVTK_Group_Views=ON \
	-DModule_vtkRenderingFreeTypeFontConfig=ON \
	-DVTK_WRAP_PYTHON=ON \
	-DVTK_PYTHON_VERSION=3 \
	-DPYTHON_EXECUTABLE=/usr/bin/python3 \
	-DPYTHON_INCLUDE_DIR=/usr/include/python3.6 \
	-DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so \
	-DBUILD_TESTING=OFF \
	-DVTK_USE_SYSTEM_LIBRARIES=ON \
	-DVTK_USE_SYSTEM_LIBPROJ4=OFF \
	-DVTK_USE_SYSTEM_GL2PS=OFF \
	-DVTK_USE_SYSTEM_LIBHARU=OFF \
	-DVTK_USE_SYSTEM_PUGIXML=OFF \
	-DCMAKE_BUILD_TYPE=None

```

While my CMake line for VTK 9 had:

```plaintext
	-DCMAKE_INSTALL_PREFIX=/opt/VTK9 \
	-DCMAKE_INSTALL_RPATH=/opt/VTK9/lib \
	-DVTK_GROUP_ENABLE_Qt=YES \
	-DVTK_GROUP_ENABLE_Imaging=YES \
	-DVTK_GROUP_ENABLE_Views=YES \
	-DVTK_WRAP_PYTHON=ON \
	-DVTK_PYTHON_VERSION=3 \
	-DVTK_MODULE_ENABLE_VTK_RenderingFreeTypeFontConfig=YES \
	-DVTK_BUILD_TESTING=OFF \
	-DVTK_USE_EXTERNAL=YES \
	-DVTK_MODULE_USE_EXTERNAL_VTK_gl2ps=OFF \
	-DVTK_MODULE_USE_EXTERNAL_VTK_libharu=OFF \
	-DVTK_MODULE_USE_EXTERNAL_VTK_pugixml=OFF \
	-DVTK_CUSTOM_LIBRARY_SUFFIX="" \
	-DCMAKE_BUILD_TYPE=None

```

---

<div class="post-metadata">

### Author: ![estan](https://discourse.vtk.org/user_avatar/discourse.vtk.org/estan/32/460_2.png) [@estan](https://discourse.vtk.org/u/estan)
#### Post date: [March 22, 2020, 12:16pm UTC](https://discourse.vtk.org/t/two-questions-about-new-module-system/2864/6 "2020-03-22T12:16:47Z")

</div>

I see that, unlike e.g. `VolumeOpenGL2`, the `ContextOpenGL2` module is not part of the `Rendering` group.

I do wonder how come we got that library built when using VTK 8 though, but not with VTK 9. Is VTK 9 in general building less stuff by default?

Must I enable the `ContextOpenGL2` module explicity?

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.vtk.org/u/ben.boeckel)
#### Post date: [March 22, 2020, 1:04pm UTC](https://discourse.vtk.org/t/two-questions-about-new-module-system/2864/7 "2020-03-22T13:04:06Z")

</div>

> [@estan](#):
>
> With 9.0.0 it seems we no longer get that library? What should I link against to pick the OpenGL2 backend for context views?

It’s [still there](https://gitlab.kitware.com/vtk/vtk/-/blob/master/Rendering/ContextOpenGL2/vtk.module). Is it just disabled in your build?

> [@estan](#):
>
> CMake of our project finishes successfully, but `VTK_INCLUDE_DIRS` is now empty.

Yes, this is gone. Use the targets (`VTK::CommonCore`) instead.

> [@estan](#):
>
> Will the CMake machinery still add automatic compile flags like `-DvtkRenderingContext2D_AUTOINIT="1(vtkRenderingContextOpenGL2)"` , or must I do something manually with `vtk_module_autoinit` myself?

It is no longer automatic because that gave you one autoinit set per `find_package`. Now it is done per target. You should do:

```cmake
target_link_libraries(my_vtk_using_lib ${visibility}VTK::CommonCore ${other_vtk_libs})
vtk_module_autoinit(TARGETS my_vtk_using_lib MODULES VTK::CommonCore ${other_vtk_libs})

```

The latter call generates the required `-D` flags for the module set but just for the targets listed.

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.vtk.org/u/ben.boeckel)
#### Post date: [March 22, 2020, 1:05pm UTC](https://discourse.vtk.org/t/two-questions-about-new-module-system/2864/8 "2020-03-22T13:05:07Z")

</div>

> [@estan](#):
>
> Is VTK 9 in general building less stuff by default?

This is possible. I did end up fixing a lot of bogus dependencies when I went through with the build system.

---

<div class="post-metadata">

### Author: ![estan](https://discourse.vtk.org/user_avatar/discourse.vtk.org/estan/32/460_2.png) [@estan](https://discourse.vtk.org/u/estan)
#### Post date: [March 22, 2020, 2:48pm UTC](https://discourse.vtk.org/t/two-questions-about-new-module-system/2864/9 "2020-03-22T14:48:46Z")

</div>

Thanks a lot for all the answers. Makes perfect sense.

I must have gotten the `RenderingContextOpenGL2` by “luck” in my earlier VTK 8 build due to some dependency.

Since `RenderingContextOpenGL2`, unlike e.g. `RenderingVolumeOpenGL2`, is not part of the `Rendering` group (should it be?), I guess I must enable that module explicitly to get it?

Edit: Running a VTK build now with:

```auto
                -DVTK_GROUP_ENABLE_Rendering=YES \
                -DVTK_GROUP_ENABLE_Imaging=YES \
                -DVTK_GROUP_ENABLE_Views=YES \
                -DVTK_GROUP_ENABLE_Qt=YES \
                -DVTK_MODULE_ENABLE_VTK_RenderingContextOpenGL2=YES \
                -DVTK_MODULE_ENABLE_VTK_RenderingFreeTypeFontConfig=YES \

```

to check. Then I think I should get it for sure.

---

<div class="post-metadata">

### Author: ![estan](https://discourse.vtk.org/user_avatar/discourse.vtk.org/estan/32/460_2.png) [@estan](https://discourse.vtk.org/u/estan)
#### Post date: [March 22, 2020, 3:15pm UTC](https://discourse.vtk.org/t/two-questions-about-new-module-system/2864/10 "2020-03-22T15:15:41Z")

</div>

Looking back at the CMake output from my old VTK 8 build, it lists `vtkRenderingContextOpenGL2` under “Backend OpenGL2 modules:”:

```auto
Backend OpenGL2 modules: vtkDomainsChemistryOpenGL2;vtkIOExportOpenGL2;vtkImagingOpenGL2;vtkRenderingContextOpenGL2;vtkRenderingGL2PSOpenGL2;vtkRenderingLICOpenGL2;vtkRenderingOpenGL2;vtkRenderingOpenVR;vtkRenderingVolumeOpenGL2

```

So there seems to have been a mechanism that brought in all these `*OpenGL2` modules in one go according to the chosen backend. I did not specify the `OpenGL2` backend in that CMake run explicitly (I.e. did not pass `-DVTK_RENDERING_BACKEND`), so it was picked by default.

In VTK 9, with the old OpenGL backend gone (right?), should not (for example) `RenderingContext` depend on `RenderingContextOpenGL2`, because it won’t function without it?

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.vtk.org/u/ben.boeckel)
#### Post date: [March 22, 2020, 3:18pm UTC](https://discourse.vtk.org/t/two-questions-about-new-module-system/2864/11 "2020-03-22T15:18:21Z")

</div>

> [@estan](#):
>
> Since `RenderingContextOpenGL2` , unlike e.g. `RenderingVolumeOpenGL2` , is not part of the `Rendering` group (should it be?), I guess I must enable that module explicitly to get it?

Looking at the old `module.cmake` file, it was never part of the `Rendering` group. It was probably dragged in by `IMPLEMENTATION_REQUIRED_BY_BACKEND` (your newest reply seems to confirm that) which is…hairy logic to say the least. It’s tough to say what should be done here because the logic to implement that flag would be extremely difficult to get right.

> [@estan](#):
>
> did not pass `-DVTK_RENDERING_BACKEND`

That’s gone now. Hopefully, the Vulkan backend will be a runtime selection, not a compile-time selection thing.

---

<div class="post-metadata">

### Author: ![estan](https://discourse.vtk.org/user_avatar/discourse.vtk.org/estan/32/460_2.png) [@estan](https://discourse.vtk.org/u/estan)
#### Post date: [March 22, 2020, 3:29pm UTC](https://discourse.vtk.org/t/two-questions-about-new-module-system/2864/12 "2020-03-22T15:29:48Z")

</div>

Alright thanks. I’ll pretend the hairy `IMPLEMENTATION_REQUIRED_BY_BACKEND` never existed and enable the module explicitly 🙂 I wonder though why `RenderingVolumeOpenGL2` is part of the `Rendering` group while `RenderingContextOpenGL2` is not.

---

<div class="post-metadata">

### Author: ![estan](https://discourse.vtk.org/user_avatar/discourse.vtk.org/estan/32/460_2.png) [@estan](https://discourse.vtk.org/u/estan)
#### Post date: [March 22, 2020, 3:44pm UTC](https://discourse.vtk.org/t/two-questions-about-new-module-system/2864/13 "2020-03-22T15:44:32Z")

</div>

Everything works fine now with the flags I used in [Two questions about new module system](https://discourse.vtk.org/t/two-questions-about-new-module-system/2864/9) 👍

---

<div class="post-metadata">

### Author: ![kerim](https://discourse.vtk.org/user_avatar/discourse.vtk.org/kerim/32/1175_2.png) [@kerim](https://discourse.vtk.org/u/kerim)
#### Post date: [April 27, 2020, 10:27pm UTC](https://discourse.vtk.org/t/two-questions-about-new-module-system/2864/14 "2020-04-27T22:27:58Z")

</div>

Hi,

I think I’m asking about something similar so I don’t create new topic.  
With VTK 9.0 and Qt I cannot launch 2D examples from VTK web-site.  
Previously with VTK 8.2 I used to add few lines in my code from [mailing list](http://vtk.1045678.n5.nabble.com/Error-no-override-found-for-vtkContextDevice2D-td5741533.html):

```
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingContextOpenGL2);
VTK_MODULE_INIT(vtkRenderingOpenGL2)
VTK_MODULE_INIT(vtkInteractionStyle)

```

But now I get the error:  
**Error: no override found for 'vtkcontextdevice2d’**  
How to overcome this?

Best regards,  
kerim

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.vtk.org/u/ben.boeckel)
#### Post date: [April 28, 2020, 4:34am UTC](https://discourse.vtk.org/t/two-questions-about-new-module-system/2864/15 "2020-04-28T04:34:14Z")

</div>

Use `vtk_module_autoinit()` function with VTK 9.0 to make this work without needing to call `VTK_MODULE_INIT` manually. See [this section](https://vtk.org/doc/nightly/html/md__home_kitware_dashboards_buildbot_vtk_nightly-master-ike-linux-shared-release_doc_nightly_osm749dd663df9981384f2598c108aac3b0.html#autoinit).

---

<div class="post-metadata">

### Author: ![kerim](https://discourse.vtk.org/user_avatar/discourse.vtk.org/kerim/32/1175_2.png) [@kerim](https://discourse.vtk.org/u/kerim)
#### Post date: [April 29, 2020, 2:28pm UTC](https://discourse.vtk.org/t/two-questions-about-new-module-system/2864/16 "2020-04-29T14:28:24Z")

</div>

Thank you for reply Ben,

Honestly saying I don’t fully understand how to use `vtk_module_autoinit()`  
I have the problems like described [here](https://discourse.vtk.org/t/vtk-module-init-error/1015) but adding:

```
#define vtkRenderingCore_AUTOINIT 2(vtkRenderingOpenGL2,vtkInteractionStyle)
#define vtkRenderingContext2D_AUTOINIT 1(vtkRenderingContextOpenGL2)

```

Doesn’t help. Probably this is because I don’t have `vtkRenderingContextOpenGL2-9.0.lib` in the **lib** folder

I don’t use CMake, I’m working with Qt 5.14.1, QMake, Windows 10, MSVC 2017 x64

 ![image](https://discourse.vtk.org/uploads/default/original/2X/5/551360065c333b111a1bf2ae279457a4c0a49245.png)

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.vtk.org/u/ben.boeckel)
#### Post date: [April 29, 2020, 2:55pm UTC](https://discourse.vtk.org/t/two-questions-about-new-module-system/2864/17 "2020-04-29T14:55:02Z")

</div>

Yeah, without the `vtkRenderingContextOpenGL2` library, you’ll have to drop the `vtkRenderingContext2D_AUTOINIT` line.

If you’re not using CMake, you’ll have to do what `vtk_module_autoinit` is doing for you manually. That is described in [this section](https://vtk.org/doc/nightly/html/group__module.html#module-autoinit).

---

<div class="post-metadata">

### Author: ![kerim](https://discourse.vtk.org/user_avatar/discourse.vtk.org/kerim/32/1175_2.png) [@kerim](https://discourse.vtk.org/u/kerim)
#### Post date: [April 29, 2020, 3:57pm UTC](https://discourse.vtk.org/t/two-questions-about-new-module-system/2864/18 "2020-04-29T15:57:01Z")

</div>

Yes I read these abstracts from the link few times but I can’t say that I understand what it is about. For now I don’t fully understand the problem and the solution as well. I don’t have enough knowledge yet to understand it.  
I would very appreciate if you give something like copy-past example how to launch any of 2D VTK example, maybe [this one](https://lorensen.github.io/VTKExamples/site/Cxx/Plotting/LinePlot/)

By the way is it ok that I don’t have `vtkRenderingContextOpenGL2-9.0.lib` in VTK 9.0 or I should recompile the VTK library?

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.vtk.org/u/ben.boeckel)
#### Post date: [April 29, 2020, 4:13pm UTC](https://discourse.vtk.org/t/two-questions-about-new-module-system/2864/19 "2020-04-29T16:13:25Z")

</div>

It’s only a problem if you want to use a class that has an implementation in that module. Since you’re asking, the answer is probably “yes” though 🙂 . You’ll need to recompile VTK for that.

What you can do is make a small CMake project which links to what you’re linking to, use `vtk_module_autoinit`, and see what the header it ends up generating is. You can put that at the top of whatever file(s) you need it in then.

---

<div class="post-metadata">

### Author: ![kerim](https://discourse.vtk.org/user_avatar/discourse.vtk.org/kerim/32/1175_2.png) [@kerim](https://discourse.vtk.org/u/kerim)
#### Post date: [April 29, 2020, 4:32pm UTC](https://discourse.vtk.org/t/two-questions-about-new-module-system/2864/20 "2020-04-29T16:32:07Z")

</div>

I just reopened VTK in CMake-GUI and I found that module (in the picture).  
I have a feeling that I should postpone the recompilation because there is many “interesting-labeled” modules so this is going to be not the last recompilation 🙂  
Thank you for advices, I hope everything is going to work well.  
 ![image](https://discourse.vtk.org/uploads/default/original/2X/5/5d1928788b641b8e2f4c8ef9bf1749b6e9c396f4.png)

[Next page](https://discourse.vtk.org/t/two-questions-about-new-module-system/2864.md?page=2)
