NAME in vtk.module files

Dear All,

I wonder if anybody can shed some light on some doubts I have about the NAME field in vtk.module files.

The documentation at vtk.module files says that NAME is the name of the module, and the example uses NAME = VTK::CommonCore

What is the meaning here of the two parts VTK and CommonCore? In the sense, if developing a module external to VTK, should it be named still VTK::MyModule or XXXYYY::MyModule ?

What is the effect of the prefix before “::” ? Does it work like a C++ namespace? In that case does it influence in any manner the source code of the developed new classes?

Thanks for any insight !

Best Regards,


It is only used by CMake in the target name afaik


@ben.boeckel may know more.

Thank you so much Mathieu.

Out of curiosity, is the double colon :: required ? (I will try compiling with and without …)

Best Regards,


No, you can not put any :: in your own module.

If you use it, the part before the :: is the “package”. Since VTK’s CMake package name is “VTK”, it uses that as its prefix and “namespace”.