diff --git a/Imaging/General/CMakeLists.txt b/Imaging/General/CMakeLists.txt
index 363ec9f4c9c20aaa680e34ba1006d889af6059fc..20d4b8709a58c5d2559af4118485c966dd0f929b 100644
--- a/Imaging/General/CMakeLists.txt
+++ b/Imaging/General/CMakeLists.txt
@@ -1,28 +1,28 @@
-set(Module_SRCS
-  vtkImageAnisotropicDiffusion2D.cxx
-  vtkImageAnisotropicDiffusion3D.cxx
-  vtkImageCheckerboard.cxx
-  vtkImageCityBlockDistance.cxx
-  vtkImageConvolve.cxx
-  vtkImageCorrelation.cxx
-  vtkImageEuclideanDistance.cxx
-  vtkImageEuclideanToPolar.cxx
-  vtkImageGaussianSmooth.cxx
-  vtkImageGradient.cxx
-  vtkImageGradientMagnitude.cxx
-  vtkImageHybridMedian2D.cxx
-  vtkImageLaplacian.cxx
-  vtkImageMedian3D.cxx
-  vtkImageNormalize.cxx
-  vtkImageRange3D.cxx
-  vtkImageSeparableConvolution.cxx
-  vtkImageSobel2D.cxx
-  vtkImageSobel3D.cxx
-  vtkImageSpatialAlgorithm.cxx
-  vtkImageVariance3D.cxx
-  vtkSimpleImageFilterExample.cxx
-  vtkImageSlab.cxx
-  vtkImageSlabReslice.cxx
-  )
+set(classes
+  vtkImageAnisotropicDiffusion2D
+  vtkImageAnisotropicDiffusion3D
+  vtkImageCheckerboard
+  vtkImageCityBlockDistance
+  vtkImageConvolve
+  vtkImageCorrelation
+  vtkImageEuclideanDistance
+  vtkImageEuclideanToPolar
+  vtkImageGaussianSmooth
+  vtkImageGradient
+  vtkImageGradientMagnitude
+  vtkImageHybridMedian2D
+  vtkImageLaplacian
+  vtkImageMedian3D
+  vtkImageNormalize
+  vtkImageRange3D
+  vtkImageSeparableConvolution
+  vtkImageSobel2D
+  vtkImageSobel3D
+  vtkImageSpatialAlgorithm
+  vtkImageVariance3D
+  vtkSimpleImageFilterExample
+  vtkImageSlab
+  vtkImageSlabReslice)
 
-vtk_module_library(${vtk-module} ${Module_SRCS})
+vtk_module_add_module(VTK::ImagingGeneral
+  CLASSES ${classes})
diff --git a/Imaging/General/module.cmake b/Imaging/General/module.cmake
deleted file mode 100644
index 1eb8465a0167843ad49dfd26b862c408deb7aaa2..0000000000000000000000000000000000000000
--- a/Imaging/General/module.cmake
+++ /dev/null
@@ -1,14 +0,0 @@
-vtk_module(vtkImagingGeneral
-  GROUPS
-    Imaging
-    StandAlone
-  KIT
-    vtkImaging
-  DEPENDS
-    vtkCommonExecutionModel
-    vtkImagingCore
-  PRIVATE_DEPENDS
-    vtkCommonCore
-    vtkCommonDataModel
-    vtkImagingSources
-  )
\ No newline at end of file
diff --git a/Imaging/General/vtk.module b/Imaging/General/vtk.module
new file mode 100644
index 0000000000000000000000000000000000000000..f6f1f19a46fcffed54213c06989fbb0396198804
--- /dev/null
+++ b/Imaging/General/vtk.module
@@ -0,0 +1,16 @@
+NAME
+  VTK::ImagingGeneral
+LIBRARY_NAME
+  vtkImagingGeneral
+KIT
+  VTK::Imaging
+GROUPS
+  Imaging
+  StandAlone
+DEPENDS
+  VTK::CommonExecutionModel
+  VTK::ImagingCore
+PRIVATE_DEPENDS
+  VTK::CommonCore
+  VTK::CommonDataModel
+  VTK::ImagingSources