diff --git a/CMake/PackageDepends/MITK_VTK_Config.cmake b/CMake/PackageDepends/MITK_VTK_Config.cmake
index f13834dd55..74a9a3be22 100644
--- a/CMake/PackageDepends/MITK_VTK_Config.cmake
+++ b/CMake/PackageDepends/MITK_VTK_Config.cmake
@@ -1,8 +1,9 @@
 find_package(VTK COMPONENTS ${VTK_REQUIRED_COMPONENTS_BY_MODULE} REQUIRED)
 
-if(MITK_USE_Qt5)
-  find_package(Qt5Widgets REQUIRED QUIET)
-endif()
+foreach(vtk_module ${VTK_REQUIRED_COMPONENTS_BY_MODULE})
+  list(APPEND ALL_LIBRARIES "VTK::${vtk_module}")
+endforeach()
 
-list(APPEND ALL_INCLUDE_DIRECTORIES ${VTK_INCLUDE_DIRS})
-list(APPEND ALL_LIBRARIES ${VTK_LIBRARIES})
+if(ALL_LIBRARIES)
+  vtk_module_autoinit(TARGETS ${MODULE_NAME} MODULES ${ALL_LIBRARIES})
+endif()
diff --git a/CMake/PackageDepends/MITK_tinyxml2_Config.cmake b/CMake/PackageDepends/MITK_tinyxml2_Config.cmake
index e69de29bb2..b08632d240 100644
--- a/CMake/PackageDepends/MITK_tinyxml2_Config.cmake
+++ b/CMake/PackageDepends/MITK_tinyxml2_Config.cmake
@@ -0,0 +1 @@
+set(ALL_LIBRARIES "tinyxml2::tinyxml2")
diff --git a/CMake/mitkFunctionUseModules.cmake b/CMake/mitkFunctionUseModules.cmake
index 0654f319be..173e0a5a95 100644
--- a/CMake/mitkFunctionUseModules.cmake
+++ b/CMake/mitkFunctionUseModules.cmake
@@ -1,173 +1,163 @@
 function(_mitk_parse_package_args)
   set(package_list ${ARGN})
 
   set(PUBLIC_PACKAGE_NAMES )
   set(PRIVATE_PACKAGE_NAMES )
   set(INTERFACE_PACKAGE_NAMES )
 
   set(_package_visibility PRIVATE)
   foreach(_package ${package_list})
     if(_package STREQUAL "PUBLIC" OR _package STREQUAL "PRIVATE" OR _package STREQUAL "INTERFACE")
       set(_package_visibility ${_package})
     else()
       list(APPEND packages ${_package})
       set(_package_name )
       set(_package_components_list )
       string(REPLACE "|" ";" _package_list ${_package})
       if("${_package_list}" STREQUAL "${_package}")
         set(_package_name ${_package})
       else()
         list(GET _package_list 0 _package_name)
         list(GET _package_list 1 _package_components)
         string(REPLACE "+" ";" _package_components_list "${_package_components}")
         if(NOT _package_name OR NOT _package_components)
           message(SEND_ERROR "PACKAGE argument syntax wrong. ${_package} is not of the form PACKAGE[|COMPONENT1[+COMPONENT2]...]")
         endif()
       endif()
       list(APPEND ${_package_visibility}_PACKAGE_NAMES ${_package_name})
       list(APPEND ${_package_visibility}_${_package_name}_REQUIRED_COMPONENTS ${_package_components_list})
     endif()
   endforeach()
 
   # remove duplicates and set package components in parent scope
   foreach(_package_visibility PUBLIC PRIVATE INTERFACE)
     foreach(_package_name ${${_package_visibility}_PACKAGE_NAMES})
       if(${_package_visibility}_${_package_name}_REQUIRED_COMPONENTS)
         list(REMOVE_DUPLICATES ${_package_visibility}_${_package_name}_REQUIRED_COMPONENTS)
       endif()
       set(${_package_visibility}_${_package_name}_REQUIRED_COMPONENTS ${${_package_visibility}_${_package_name}_REQUIRED_COMPONENTS} PARENT_SCOPE)
     endforeach()
   endforeach()
 
   set(PUBLIC_PACKAGE_NAMES ${PUBLIC_PACKAGE_NAMES} PARENT_SCOPE)
   set(PRIVATE_PACKAGE_NAMES ${PRIVATE_PACKAGE_NAMES} PARENT_SCOPE)
   set(INTERFACE_PACKAGE_NAMES ${INTERFACE_PACKAGE_NAMES} PARENT_SCOPE)
   set(PACKAGE_NAMES ${PUBLIC_PACKAGE_NAMES} ${PRIVATE_PACKAGE_NAMES} ${INTERFACE_PACKAGE_NAMES} PARENT_SCOPE)
 endfunction()
 
 function(_include_package_config pkg_config_file)
   # wrap the inclusion of the MITK_<pkg>_Config.cmake file in a
   # function to create a scope for its variables; this allows
   # multiple inclusions of the file in the parent scope
   include(${pkg_config_file})
   set(ALL_INCLUDE_DIRECTORIES ${ALL_INCLUDE_DIRECTORIES} PARENT_SCOPE)
   set(ALL_LIBRARIES ${ALL_LIBRARIES} PARENT_SCOPE)
   set(ALL_COMPILE_DEFINITIONS ${ALL_COMPILE_DEFINITIONS} PARENT_SCOPE)
   set(ALL_COMPILE_OPTIONS ${ALL_COMPILE_OPTIONS} PARENT_SCOPE)
 endfunction()
 
 #! This CMake function sets up the necessary include directories,
 #! linker dependencies, and compile flags for a given target which
 #! depends on a set of MITK modules or packages.
 #!
 #! A package argument is of the form
 #!
 #!   [PUBLIC|PRIVATE|INTERFACE] PACKAGE[|COMPONENT1[+COMPONENT2]...]
 #!
 #! where PACKAGE is the package name (e.g. VTK) and components are
 #! the names of required package components or libraries.
 #!
 #! If a dependency is not available, an error is thrown.
 function(mitk_use_modules)
 
   set(_macro_params
       TARGET           # The target name (required)
      )
 
   set(_macro_multiparams
       MODULES          # MITK modules which the given TARGET uses
       PACKAGES         # MITK packages which the given TARGET uses
      )
 
   set(_macro_options )
 
   cmake_parse_arguments(USE "${_macro_options}" "${_macro_params}" "${_macro_multiparams}" ${ARGN})
 
   # Sanity checks
   if(NOT USE_TARGET)
     message(SEND_ERROR "Required TARGET argument missing.")
   elseif(NOT TARGET ${USE_TARGET})
     message(SEND_ERROR "The given TARGET argument ${USE_TARGET} is not a valid target")
   endif()
 
   set(depends ${USE_MODULES})
   set(package_depends ${USE_PACKAGES})
 
   if(depends)
     # Iterate over all module dependencies
     foreach(dependency ${depends})
       if(TARGET ${dependency} AND NOT MODULE_IS_DEPRECATED)
         get_target_property(_is_interface_lib ${dependency} TYPE)
         if(NOT _is_interface_lib)
           get_target_property(_dependency_deprecated_since ${dependency} MITK_MODULE_DEPRECATED_SINCE)
           if(_dependency_deprecated_since)
             message(WARNING "Module ${dependency} is deprecated since ${_dependency_deprecated_since}")
           endif()
         endif()
       endif()
     endforeach()
     target_link_libraries(${USE_TARGET} PUBLIC ${depends})
   endif()
 
   # Parse package dependencies
   if(package_depends)
     _mitk_parse_package_args(${package_depends})
 
     # Some package config files like MITK_Qt5_Config.cmake rely on a
     # properly set "MODULE_NAME" variable for the current target.
     set(MODULE_NAME ${USE_TARGET})
     # Read all package information
     foreach(_package_visibility INTERFACE PUBLIC PRIVATE)
     foreach(_package ${${_package_visibility}_PACKAGE_NAMES})
       set(ALL_INCLUDE_DIRECTORIES)
       set(ALL_LIBRARIES)
       set(ALL_COMPILE_DEFINITIONS)
       set(ALL_COMPILE_OPTIONS)
 
       set(${_package}_REQUIRED_COMPONENTS_BY_MODULE ${${_package_visibility}_${_package}_REQUIRED_COMPONENTS})
       set(_package_found 0)
       foreach(dir ${MODULES_PACKAGE_DEPENDS_DIRS})
         if((NOT DEFINED MITK_USE_${_package} OR MITK_USE_${_package}) AND EXISTS "${dir}/MITK_${_package}_Config.cmake")
           _include_package_config("${dir}/MITK_${_package}_Config.cmake")
           set(_package_found 1)
           break()
         endif()
       endforeach()
       if(_package_found)
         if(ALL_INCLUDE_DIRECTORIES)
           list(REMOVE_DUPLICATES ALL_INCLUDE_DIRECTORIES)
           target_include_directories(${USE_TARGET} SYSTEM ${_package_visibility} ${ALL_INCLUDE_DIRECTORIES})
         endif()
         if(ALL_LIBRARIES)
           # Don't remove "duplicats" because ALL_LIBRARIES may be of the form:
           # "general;bla;debug;blad;general;foo;debug;food"
           target_link_libraries(${USE_TARGET} ${_package_visibility} ${ALL_LIBRARIES})
         endif()
         if(ALL_COMPILE_DEFINITIONS)
           list(REMOVE_DUPLICATES ALL_COMPILE_DEFINITIONS)
           # Compile definitions are always added "PRIVATE" to avoid multiple definitions
           # on the command line due to transitive and direct dependencies adding the
           # same definitions.
           target_compile_definitions(${USE_TARGET} PRIVATE ${ALL_COMPILE_DEFINITIONS})
         endif()
         if(ALL_COMPILE_OPTIONS)
           list(REMOVE_DUPLICATES ALL_COMPILE_OPTIONS)
           target_compile_options(${USE_TARGET} ${_package_visibility} ${ALL_COMPILE_OPTIONS})
         endif()
-        if("VTK" STREQUAL _package)
-          # VTK module autoinit
-          unset(_vtk_modules)
-          foreach(_vtk_module ${VTK_REQUIRED_COMPONENTS_BY_MODULE})
-            list(APPEND _vtk_modules "VTK::${_vtk_module}")
-          endforeach()
-          if(_vtk_modules)
-            vtk_module_autoinit(TARGETS ${USE_TARGET} MODULES ${_vtk_modules})
-          endif()
-        endif()
       else()
         message(SEND_ERROR "Missing package: ${_package}")
       endif()
     endforeach()
     endforeach()
   endif()
 endfunction()
diff --git a/Examples/FirstSteps/NewModule/autoload/IO/CMakeLists.txt b/Examples/FirstSteps/NewModule/autoload/IO/CMakeLists.txt
index 06b8804507..0f1dc85585 100644
--- a/Examples/FirstSteps/NewModule/autoload/IO/CMakeLists.txt
+++ b/Examples/FirstSteps/NewModule/autoload/IO/CMakeLists.txt
@@ -1,14 +1,8 @@
 MITK_CREATE_MODULE( NewModuleIO
   INCLUDE_DIRS
     PRIVATE src/IO
   DEPENDS PUBLIC MitkNewModule MitkSceneSerialization
   PACKAGE_DEPENDS
-    PRIVATE tinyxml2|tinyxml2
+    PRIVATE tinyxml2
   AUTOLOAD_WITH MitkCore
 )
-
-if(TARGET ${MODULE_TARGET})
-  target_link_libraries(${MODULE_TARGET}
-    PRIVATE tinyxml2::tinyxml2
-  )
-endif()
diff --git a/Modules/Classification/CLUtilities/CMakeLists.txt b/Modules/Classification/CLUtilities/CMakeLists.txt
index 0d441525b8..0fb4431b3c 100644
--- a/Modules/Classification/CLUtilities/CMakeLists.txt
+++ b/Modules/Classification/CLUtilities/CMakeLists.txt
@@ -1,14 +1,14 @@
 mitk_create_module(
   DEPENDS MitkCore MitkCLCore MitkCommandLine MitkDICOM
-  PACKAGE_DEPENDS PUBLIC Eigen PRIVATE tinyxml2|tinyxml2 VTK|FiltersStatistics
+  PACKAGE_DEPENDS PUBLIC Eigen PRIVATE tinyxml2 VTK|FiltersStatistics
 )
 
 if(TARGET ${MODULE_TARGET})
   if(MITK_USE_OpenMP)
-    target_link_libraries(${MODULE_TARGET} PUBLIC OpenMP::OpenMP_CXX PRIVATE tinyxml2::tinyxml2)
+    target_link_libraries(${MODULE_TARGET} PUBLIC OpenMP::OpenMP_CXX)
   endif()
 
   if(BUILD_TESTING)
     add_subdirectory(test)
   endif()
 endif()
diff --git a/Modules/Core/CMakeLists.txt b/Modules/Core/CMakeLists.txt
index 8a143eee99..e3df7b06c1 100644
--- a/Modules/Core/CMakeLists.txt
+++ b/Modules/Core/CMakeLists.txt
@@ -1,70 +1,66 @@
 
 set(TOOL_CPPS "")
 
 # temporary suppress warnings in the following files until image accessors are fully integrated.
 set_source_files_properties( src/DataManagement/mitkImage.cpp COMPILE_FLAGS -DMITK_NO_DEPRECATED_WARNINGS )
 set_source_files_properties( src/Controllers/mitkSliceNavigationController.cpp COMPILE_FLAGS -DMITK_NO_DEPRECATED_WARNINGS )
 
 MITK_CREATE_MODULE(
   INCLUDE_DIRS
     PUBLIC ${MITK_BINARY_DIR}
     PRIVATE src/Algorithms src/Controllers src/DataManagement src/Interactions src/IO src/Rendering ${OPENGL_INCLUDE_DIR}
   DEPENDS PUBLIC mbilog CppMicroServices
   PACKAGE_DEPENDS
-    PRIVATE tinyxml2|tinyxml2 OpenGL
+    PRIVATE tinyxml2 OpenGL
     PUBLIC  ITK|ITKTransform+ITKImageGrid+ITKImageFeature+ITKIOImageBase+ITKIOHDF5+ITKIOLSM+ITKIOMRC+ITKIOBioRad+ITKIOGE+ITKIOStimulate+ITKIOBruker+ITKIOMINC
     # We privately use/link all ITK modules in order to support all IO, Transform, etc.
     # factories from ITK which are registered "automatically" via a factory manager.
     PRIVATE ITK
     PUBLIC  VTK|FiltersTexture+FiltersParallel+ImagingStencil+ImagingMath+InteractionStyle+RenderingOpenGL2+RenderingVolumeOpenGL2+RenderingFreeType+RenderingLabel+InteractionWidgets+IOGeometry+IOXML
     PUBLIC  Boost|boost
   # Do not automatically create CppMicroServices initialization code.
   # Because the VTK 6 "auto-init" functionality injects file-local static
   # initialization code in every cpp file which includes a VTK header,
   # static initialization order becomes an issue again. For the Mitk
   # core library, we need to ensure that the VTK static initialization stuff
   # happens before the CppMicroServices initialization, since the latter
   # might already use VTK code which needs to access VTK object factories.
   # Hence, CppMicroServices initialization code is placed manually within
   # the mitkCoreActivator.cpp file.
   NO_INIT
 )
 if(NOT TARGET ${MODULE_TARGET})
   message(SEND_ERROR "Core target ${MODULE_TARGET} does not exist")
 endif()
 
-target_link_libraries(${MODULE_TARGET}
-  PRIVATE tinyxml2::tinyxml2
-)
-
 function(_itk_create_factory_register_manager)
   # In MITK_ITK_Config.cmake, we do *not* include ITK_USE_FILE, which
   # prevents multiple registrations/unregistrations of ITK IO factories
   # during library loading/unloading (of MITK libraries). However, we need
   # "one" place where the IO factories are registered at
   # least once. This could be the application executable, but every executable would
   # need to take care of that itself. Instead, we allow the auto registration in the
   # Mitk Core library.
   set(NO_DIRECTORY_SCOPED_ITK_COMPILE_DEFINITION 1)
   find_package(ITK)
   include(${ITK_USE_FILE})
 
   if(NOT ITK_NO_IO_FACTORY_REGISTER_MANAGER)
     # We manually add the define which will be of target scope. MITK
     # patches ITK_USE_FILE to remove the directory scoped compile
     # definition since it would be propagated to other targets in the
     # same directory scope but these targets might want to *not*
     # use the ITK factory manager stuff.
     target_compile_definitions(${MODULE_TARGET} PRIVATE ITK_IO_FACTORY_REGISTER_MANAGER)
   endif()
 endfunction()
 _itk_create_factory_register_manager()
 
 if(MSVC_IDE OR MSVC_VERSION)
   target_link_libraries(${MODULE_TARGET} PRIVATE psapi.lib)
 endif()
 
 if(BUILD_TESTING)
   add_subdirectory(TestingHelper)
   add_subdirectory(test)
 endif()
diff --git a/Modules/Core/TestingHelper/CMakeLists.txt b/Modules/Core/TestingHelper/CMakeLists.txt
index a317355092..7ecd080976 100644
--- a/Modules/Core/TestingHelper/CMakeLists.txt
+++ b/Modules/Core/TestingHelper/CMakeLists.txt
@@ -1,12 +1,6 @@
 mitk_create_module(
   DEPENDS PUBLIC MitkCore
   PACKAGE_DEPENDS
-    PUBLIC CppUnit tinyxml2|tinyxml2
+    PUBLIC CppUnit tinyxml2
     PRIVATE VTK|IOImage+TestingRendering OpenGL
 )
-
-if(TARGET ${MODULE_TARGET})
-  target_link_libraries(${MODULE_TARGET}
-    PUBLIC tinyxml2::tinyxml2
-  )
-endif()
diff --git a/Modules/Core/test/CMakeLists.txt b/Modules/Core/test/CMakeLists.txt
index c1758a4f44..c2862dbdf8 100644
--- a/Modules/Core/test/CMakeLists.txt
+++ b/Modules/Core/test/CMakeLists.txt
@@ -1,181 +1,181 @@
 # The core tests need relaxed compiler flags...
 # TODO fix core tests to compile without these additional no-error flags
 if(MSVC_VERSION)
   # disable deprecated warnings (they would lead to errors)
   mitkFunctionCheckCAndCXXCompilerFlags("/wd4996" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
 else()
   mitkFunctionCheckCAndCXXCompilerFlags("-Wno-error=deprecated" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
   mitkFunctionCheckCAndCXXCompilerFlags("-Wno-error=deprecated-declarations" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
 endif()
 
 MITK_CREATE_MODULE_TESTS()
 if(TARGET ${TESTDRIVER})
-  mitk_use_modules(TARGET ${TESTDRIVER} PACKAGES ITK|ITKThresholding+ITKTestKernel VTK|TestingRendering tinyxml2|tinyxml2)
+  mitk_use_modules(TARGET ${TESTDRIVER} PACKAGES ITK|ITKThresholding+ITKTestKernel VTK|TestingRendering tinyxml2)
 
   mitkAddCustomModuleTest(mitkVolumeCalculatorTest_Png2D-bw mitkVolumeCalculatorTest
                           ${MITK_DATA_DIR}/Png2D-bw.png
                           ${MITK_DATA_DIR}/Pic2DplusT.nrrd
   )
 
 
   mitkAddCustomModuleTest(mitkEventConfigTest_CreateObjectInDifferentWays mitkEventConfigTest
                           ${MITK_SOURCE_DIR}/Modules/Core/test/resource/Interactions/StatemachineConfigTest.xml
   )
 
 
   mitkAddCustomModuleTest(mitkDataStorageTest_US4DCyl mitkDataStorageTest
                           ${MITK_DATA_DIR}/US4DCyl.nrrd
   )
 
 
   mitkAddCustomModuleTest(mitkPointSetReaderTest mitkPointSetReaderTest
                           ${MITK_DATA_DIR}/PointSetReaderTestData.mps
   )
 
   mitkAddCustomModuleTest(mitkImageTest_4DImageData mitkImageTest
                           ${MITK_DATA_DIR}/US4DCyl.nrrd
   )
 
   mitkAddCustomModuleTest(mitkImageTest_2D+tImageData mitkImageTest
                           ${MITK_DATA_DIR}/Pic2DplusT.nrrd
   )
 
   mitkAddCustomModuleTest(mitkImageTest_3DImageData mitkImageTest
                           ${MITK_DATA_DIR}/Pic3D.nrrd
   )
 
   mitkAddCustomModuleTest(mitkImageEqualTest mitkImageEqualTest)
 
   mitkAddCustomModuleTest(mitkImageTest_brainImage mitkImageTest
                           ${MITK_DATA_DIR}/brain.mhd
   )
 
   mitkAddCustomModuleTest(mitkLevelWindowManagerTest mitkLevelWindowManagerTest
                           ${MITK_DATA_DIR}/Pic3D.nrrd
   )
 
   mitkAddCustomModuleTest(mitkMultiComponentImageDataComparisonFilterTest mitkMultiComponentImageDataComparisonFilterTest
                           ${MITK_DATA_DIR}/NrrdWritingTestImage.jpg
   )
 
   mitkAddCustomModuleTest(mitkImageToItkTest mitkImageToItkTest
                           ${MITK_DATA_DIR}/Pic3D.nrrd
   )
 
   mitkAddCustomModuleTest(mitkImageSliceSelectorTest mitkImageSliceSelectorTest
                           ${MITK_DATA_DIR}/Pic2DplusT.nrrd
   )
 
   mitkAddCustomModuleTest(mitkRotatedSlice4DTest mitkRotatedSlice4DTest
                           ${MITK_DATA_DIR}/UltrasoundImages/4D_TEE_Data_MV.dcm
   )
 
   mitkAddCustomModuleRenderingTest(mitkImageVtkMapper2D_rgbaImage640x480 mitkImageVtkMapper2DTest
                           ${MITK_DATA_DIR}/RenderingTestData/rgbaImage.png #input image to load in data storage
                           -V ${MITK_DATA_DIR}/RenderingTestData/ReferenceScreenshots/rgbaImage640x480REF.png #corresponding reference screenshot
   )
   mitkAddCustomModuleRenderingTest(mitkImageVtkMapper2D_pic3d640x480 mitkImageVtkMapper2DTest #test for standard Pic3D axial slice
                           ${MITK_DATA_DIR}/Pic3D.nrrd #input image to load in data storage
                           -V ${MITK_DATA_DIR}/RenderingTestData/ReferenceScreenshots/pic3d640x480REF.png #corresponding reference screenshot
   )
   mitkAddCustomModuleRenderingTest(mitkImageVtkMapper2D_pic3dColorBlue640x480 mitkImageVtkMapper2DColorTest #test for color property (=blue) Pic3D sagittal slice
                           ${MITK_DATA_DIR}/Pic3D.nrrd #input image to load in data storage
                           -V ${MITK_DATA_DIR}/RenderingTestData/ReferenceScreenshots/pic3dColorBlue640x480REF.png #corresponding reference screenshot
   )
   mitkAddCustomModuleRenderingTest(mitkImageVtkMapper2D_pic3dLevelWindow640x480 mitkImageVtkMapper2DLevelWindowTest #test for levelwindow property (=blood) #Pic3D sagittal slice
                           ${MITK_DATA_DIR}/Pic3D.nrrd #input image to load in data storage
                           -V ${MITK_DATA_DIR}/RenderingTestData/ReferenceScreenshots/pic3dLevelWindowBlood640x480REF.png #corresponding reference #screenshot
   )
   mitkAddCustomModuleRenderingTest(mitkImageVtkMapper2D_pic3dSwivel640x480 mitkImageVtkMapper2DSwivelTest #test for a randomly chosen Pic3D swivelled slice
                           ${MITK_DATA_DIR}/Pic3D.nrrd #input image to load in data storage
                           -V ${MITK_DATA_DIR}/RenderingTestData/ReferenceScreenshots/pic3dSwivel640x480REF.png #corresponding reference screenshot
   )
   mitkAddCustomModuleRenderingTest(mitkPointSetVtkMapper2D_openMeAlone640x480 mitkPointSetVtkMapper2DTest
                           ${MITK_DATA_DIR}/RenderingTestData/openMeAlone.mps #input point set to load in data storage
                           -V ${MITK_DATA_DIR}/RenderingTestData/ReferenceScreenshots/openMeAlone640x480REF.png #corresponding reference screenshot
   )
   mitkAddCustomModuleRenderingTest(mitkPointSetVtkMapper2D_Pic3DPointSetForPic3D640x480 mitkPointSetVtkMapper2DImageTest
                           ${MITK_DATA_DIR}/Pic3D.nrrd ${MITK_DATA_DIR}/RenderingTestData/PointSetForPic3D.mps #input point set and image to load in data storage
                           -V ${MITK_DATA_DIR}/RenderingTestData/ReferenceScreenshots/Pic3DPointSetForPic3D640x480REF.png #corresponding reference screenshot
   )
   mitkAddCustomModuleRenderingTest(mitkPointSetVtkMapper2D_openMeAloneGlyphType640x480 mitkPointSetVtkMapper2DGlyphTypeTest
                            ${MITK_DATA_DIR}/RenderingTestData/openMeAlone.mps #input point set to load in data storage
                           -V ${MITK_DATA_DIR}/RenderingTestData/ReferenceScreenshots/openMeAloneGlyphType640x480REF.png #corresponding reference screenshot
   )
   mitkAddCustomModuleRenderingTest(mitkPointSetVtkMapper2D_openMeAloneTransformed640x480 mitkPointSetVtkMapper2DTransformedPointsTest
                            ${MITK_DATA_DIR}/RenderingTestData/openMeAlone.mps #input point set to load in data storage
                           -V ${MITK_DATA_DIR}/RenderingTestData/ReferenceScreenshots/openMeAloneTransformedPoints640x480REF.png #corresponding reference screenshot
   )
   # Currently not working on windows because of a rendering timing issue
   # see bug 18083 for details
   if(NOT WIN32)
     mitkAddCustomModuleRenderingTest(mitkSurfaceDepthSortingTransparency_StanfordBunnySTL640x480 mitkSurfaceDepthSortingTest
                             ${MITK_DATA_DIR}/RenderingTestData/Stanford_bunny.stl
                             -V ${MITK_DATA_DIR}/RenderingTestData/ReferenceScreenshots/Stanford_bunnySTLDepthSorting640x480REF.png)
   endif()
 
   # BUG 18695 - tests deactivated, because win 32 bit continuous renders images slightly different. TODO!
   #Test reslice interpolation
   #note: nearest mode is already tested by swivel test
   #mitkAddCustomModuleRenderingTest(ResliceInterpolationIsLinear mitkImageVtkMapper2DResliceInterpolationPropertyTest
   #                        1 #linear
   #                        ${MITK_DATA_DIR}/Pic3D.nrrd
   #                        -V
   #                        ${MITK_DATA_DIR}/RenderingTestData/ReferenceScreenshots/pic3dRefLinear.png #corresponding reference screenshot LINEAR
   #)
 
   #mitkAddCustomModuleRenderingTest(ResliceInterpolationIsCubic mitkImageVtkMapper2DResliceInterpolationPropertyTest
   #                        3 #cubic
   #                        ${MITK_DATA_DIR}/Pic3D.nrrd
   #                        -V
   #                        ${MITK_DATA_DIR}/RenderingTestData/ReferenceScreenshots/pic3dRefCubic.png #corresponding reference screenshot CUBIC
   #)
   #End test reslice interpolation
 
   # Testing of the rendering of binary images
   #mitkAddCustomModuleRenderingTest(mitkImageVtkMapper2D_binaryTestImage640x480 mitkImageVtkMapper2DTest #test for standard Pic3D axial slice
   #                        ${MITK_DATA_DIR}/RenderingTestData/binaryImage.nrrd #input image to load in data storage
   #                        -V ${MITK_DATA_DIR}/RenderingTestData/ReferenceScreenshots/binaryImage640x480REF.png #corresponding reference screenshot
   #)
   #mitkAddCustomModuleRenderingTest(mitkImageVtkMapper2D_binaryTestImageWithRef640x480 mitkImageVtkMapper2DTest #test for standard Pic3D axial slice
   #                        ${MITK_DATA_DIR}/Pic3D.nrrd ${MITK_DATA_DIR}/RenderingTestData/binaryImage.nrrd #input image to load in data storage
   #                        -V ${MITK_DATA_DIR}/RenderingTestData/ReferenceScreenshots/binaryImageWithRef640x480REF.png #corresponding reference screenshot
   #)
   # End of binary image tests
 
   mitkAddCustomModuleRenderingTest(mitkSurfaceVtkMapper3DTest_TextureProperty mitkSurfaceVtkMapper3DTest
                           ${MITK_DATA_DIR}/RenderingTestData/earth.jpg
                           -V ${MITK_DATA_DIR}/RenderingTestData/ReferenceScreenshots/texturedSphere640x480REF.png #corresponding reference screenshot
   )
 
   mitkAddCustomModuleRenderingTest(mitkImageVtkMapper2DTransferFunctionTest_Png2D-bw mitkImageVtkMapper2DTransferFunctionTest
                           ${MITK_DATA_DIR}/Png2D-bw.png
                           -V ${MITK_DATA_DIR}/RenderingTestData/ReferenceScreenshots/Png2D-bw-TransferFunctionRGBImage640x480REF.png #corresponding reference screenshot
   )
 
   mitkAddCustomModuleRenderingTest(mitkImageVtkMapper2DOpacityTransferFunctionTest_Png2D-bw mitkImageVtkMapper2DOpacityTransferFunctionTest
                           ${MITK_DATA_DIR}/Png2D-bw.png
                           -V ${MITK_DATA_DIR}/RenderingTestData/ReferenceScreenshots/Png2D-bw-OpacityTransferFunctionRGBImage640x480REF.png #corresponding reference screenshot
   )
 
   ############################## DISABLED TESTS
 
   mitkAddCustomModuleRenderingTest(mitkImageVtkMapper2DLookupTableTest_Png2D-bw mitkImageVtkMapper2DLookupTableTest
                           ${MITK_DATA_DIR}/Png2D-bw.png
                           -V ${MITK_DATA_DIR}/RenderingTestData/ReferenceScreenshots/Png2D-bw-LookupTableRGBImage640x480REF.png #corresponding reference screenshot
   )
 
   #mitkAddCustomModuleRenderingTest(mitkImageTest_color2DImage mitkImageTest
   #                        ${MITK_DATA_DIR}/NrrdWritingTestImage.jpg
   #)
 
   #mitkAddCustomModuleRenderingTest(mitkNodeDependentPointSetInteractorTest mitkNodeDependentPointSetInteractorTest
   #                        ${MITK_DATA_DIR}/Pic3D.pic.gz ${MITK_DATA_DIR}/BallBinary30x30x30.pic.gz
   #)
 
   mitkAddCustomModuleRenderingTest(mitkPlaneGeometryDataMapper2DTest mitkPlaneGeometryDataMapper2DTest
                           ${MITK_DATA_DIR}/Pic3D.nrrd #input image to load in data storage
                           -V ${MITK_DATA_DIR}/RenderingTestData/ReferenceScreenshots/PlaneGeometryMapper640x480REF.png #corresponding reference screenshot
   )
 
 endif() # TARGET ${TESTDRIVER}
diff --git a/Modules/DICOM/CMakeLists.txt b/Modules/DICOM/CMakeLists.txt
index 2bedc88018..805b323dd5 100644
--- a/Modules/DICOM/CMakeLists.txt
+++ b/Modules/DICOM/CMakeLists.txt
@@ -1,15 +1,9 @@
 MITK_CREATE_MODULE(
   DEPENDS MitkCore
   PACKAGE_DEPENDS
-    PUBLIC tinyxml2|tinyxml2 GDCM
+    PUBLIC tinyxml2 GDCM
     PRIVATE ITK|ITKIOImageBase+ITKIOGDCM DCMTK
 )
 
-if(TARGET ${MODULE_TARGET})
-  target_link_libraries(${MODULE_TARGET}
-    PUBLIC tinyxml2::tinyxml2
-  )
-endif()
-
 add_subdirectory(test)
 add_subdirectory(autoload/DICOMImageIO)
diff --git a/Modules/IGT/CMakeLists.txt b/Modules/IGT/CMakeLists.txt
index a9eca5afcc..f598212e28 100644
--- a/Modules/IGT/CMakeLists.txt
+++ b/Modules/IGT/CMakeLists.txt
@@ -1,69 +1,63 @@
 include(MITKIGTHardware.cmake)
 
 if(MITK_USE_MICRON_TRACKER)
   set(ADDITIONAL_INCLUDE_DIRS ${ADDITIONAL_INCLUDE_DIRS} ${MITK_MICRON_TRACKER_INCLUDE_DIR})
   set(ADDITIONAL_LIBS ${ADDITIONAL_LIBS} ${MITK_MICRON_TRACKER_LIB})
 endif(MITK_USE_MICRON_TRACKER)
 
 if(MITK_USE_OPTITRACK_TRACKER)
   set(ADDITIONAL_INCLUDE_DIRS ${ADDITIONAL_INCLUDE_DIRS} ${MITK_OPTITRACK_TRACKER_INCLUDE_DIR})
   set(ADDITIONAL_LIBS ${ADDITIONAL_LIBS} ${MITK_OPTITRACK_TRACKER_LIB})
   add_definitions( -DMITK_USE_OPTITRACK_TRACKER )
 endif(MITK_USE_OPTITRACK_TRACKER)
 
 if(MITK_USE_MICROBIRD_TRACKER)
   set(ADDITIONAL_INCLUDE_DIRS ${ADDITIONAL_INCLUDE_DIRS} ${MITK_USE_MICROBIRD_TRACKER_INCLUDE_DIR})
   set(ADDITIONAL_LIBS ${ADDITIONAL_LIBS} ${MITK_USE_MICROBIRD_TRACKER_LIB})
 endif(MITK_USE_MICROBIRD_TRACKER)
 
 if(MITK_USE_POLHEMUS_TRACKER)
   set(ADDITIONAL_INCLUDE_DIRS ${ADDITIONAL_INCLUDE_DIRS} ${MITK_POLHEMUS_TRACKER_INCLUDE_DIR})
   set(ADDITIONAL_LIBS ${ADDITIONAL_LIBS} ${MITK_POLHEMUS_TRACKER_LIB})
 endif(MITK_USE_POLHEMUS_TRACKER)
 
 MITK_CREATE_MODULE(
   INCLUDE_DIRS
     PUBLIC Algorithms Common DataManagement ExceptionHandling IO Rendering TrackingDevices TestingHelper
     PRIVATE ${ADDITIONAL_INCLUDE_DIRS}
   DEPENDS PUBLIC MitkImageStatistics MitkSceneSerialization MitkIGTBase MitkOpenIGTLink
-  PACKAGE_DEPENDS ITK|ITKRegistrationCommon tinyxml2|tinyxml2 OpenIGTLink
+  PACKAGE_DEPENDS ITK|ITKRegistrationCommon tinyxml2 OpenIGTLink
   ADDITIONAL_LIBS "${ADDITIONAL_LIBS}"
 )
 
-if(TARGET ${MODULE_TARGET})
-  target_link_libraries(${MODULE_TARGET}
-    PRIVATE tinyxml2::tinyxml2
-  )
-endif()
-
 if(MitkIGT_IS_ENABLED)
   MITK_INSTALL(FILES ${MITK_SOURCE_DIR}/Modules/IGT/Resources/ClaronMicron.stl )
   MITK_INSTALL(FILES ${MITK_SOURCE_DIR}/Modules/IGT/Resources/IntuitiveDaVinci.stl )
   MITK_INSTALL(FILES ${MITK_SOURCE_DIR}/Modules/IGT/Resources/NDIAurora.stl )
   MITK_INSTALL(FILES ${MITK_SOURCE_DIR}/Modules/IGT/Resources/NDIAurora_Dome.stl )
   MITK_INSTALL(FILES ${MITK_SOURCE_DIR}/Modules/IGT/Resources/NDIAuroraCompactFG_Dome.stl )
   MITK_INSTALL(FILES ${MITK_SOURCE_DIR}/Modules/IGT/Resources/NDIAuroraPlanarFG_Dome.stl )
   MITK_INSTALL(FILES ${MITK_SOURCE_DIR}/Modules/IGT/Resources/NDIAuroraTabletopFG_Dome.stl )
   MITK_INSTALL(FILES ${MITK_SOURCE_DIR}/Modules/IGT/Resources/NDIAuroraTabletopFG_Prototype_Dome.stl )
   MITK_INSTALL(FILES ${MITK_SOURCE_DIR}/Modules/IGT/Resources/NDIPolarisOldModel.stl )
   MITK_INSTALL(FILES ${MITK_SOURCE_DIR}/Modules/IGT/Resources/NDIPolarisSpectra.stl )
   MITK_INSTALL(FILES ${MITK_SOURCE_DIR}/Modules/IGT/Resources/NDIPolarisSpectraExtendedPyramid.stl )
   MITK_INSTALL(FILES ${MITK_SOURCE_DIR}/Modules/IGT/Resources/NDIPolarisVicra.stl )
 endif()
 
 if(NOT MODULE_IS_ENABLED)
   message(STATUS "IGTTutorialStep1 won't be built. Missing: ${_RESULT}")
 else()
 ## create IGT config
 configure_file(mitkIGTConfig.h.in ${PROJECT_BINARY_DIR}/mitkIGTConfig.h @ONLY)
 
 # add test programm for serial communication classADD_EXECUTABLE(SerialCommunicationTest IGTTrackingDevices/mitkSerialCommunicationTest.cpp)target_link_libraries(SerialCommunicationTest mitkIGT Mitk tinyxml PocoXML)
 
 add_subdirectory(autoload/DeviceRegistry)
 
 add_subdirectory(Tutorial)
 
 add_subdirectory(Testing)
 
 endif()
 
diff --git a/Modules/IGTBase/autoload/IO/CMakeLists.txt b/Modules/IGTBase/autoload/IO/CMakeLists.txt
index cd58ef13ea..cdda327e30 100644
--- a/Modules/IGTBase/autoload/IO/CMakeLists.txt
+++ b/Modules/IGTBase/autoload/IO/CMakeLists.txt
@@ -1,11 +1,5 @@
 MITK_CREATE_MODULE(IGTIO
                    DEPENDS MitkIGTBase
-                   PACKAGE_DEPENDS tinyxml2|tinyxml2
+                   PACKAGE_DEPENDS tinyxml2
                    AUTOLOAD_WITH MitkCore
                   )
-
-if(TARGET ${MODULE_TARGET})
-  target_link_libraries(${MODULE_TARGET}
-    PRIVATE tinyxml2::tinyxml2
-  )
-endif()
diff --git a/Modules/LegacyIO/CMakeLists.txt b/Modules/LegacyIO/CMakeLists.txt
index dfa9b7c754..67e39c448f 100644
--- a/Modules/LegacyIO/CMakeLists.txt
+++ b/Modules/LegacyIO/CMakeLists.txt
@@ -1,14 +1,8 @@
 mitkFunctionCheckCompilerFlags("/wd4996" CMAKE_CXX_FLAGS)
 mitkFunctionCheckCompilerFlags("-Wno-deprecated-declarations" CMAKE_CXX_FLAGS)
 
 MITK_CREATE_MODULE(
   DEPENDS MitkCore
-  PACKAGE_DEPENDS PRIVATE ITK|ITKIOGDCM+ITKIORAW tinyxml2|tinyxml2
+  PACKAGE_DEPENDS PRIVATE ITK|ITKIOGDCM+ITKIORAW tinyxml2
   DEPRECATED_SINCE 2014.10
 )
-
-if(TARGET ${MODULE_TARGET})
-  target_link_libraries(${MODULE_TARGET}
-    PRIVATE tinyxml2::tinyxml2
-  )
-endif()
diff --git a/Modules/SceneSerializationBase/CMakeLists.txt b/Modules/SceneSerializationBase/CMakeLists.txt
index b27950475d..e5ff608f40 100644
--- a/Modules/SceneSerializationBase/CMakeLists.txt
+++ b/Modules/SceneSerializationBase/CMakeLists.txt
@@ -1,11 +1,6 @@
 MITK_CREATE_MODULE(
   DEPENDS MitkCore
-  PACKAGE_DEPENDS PUBLIC tinyxml2|tinyxml2
+  PACKAGE_DEPENDS PUBLIC tinyxml2
 )
 
-if(TARGET ${MODULE_TARGET})
-  target_link_libraries(${MODULE_TARGET} PUBLIC tinyxml2::tinyxml2)
-endif()
-
 add_subdirectory(test)
-
diff --git a/Modules/US/CMakeLists.txt b/Modules/US/CMakeLists.txt
index 8b5a15cfe0..ce97594129 100644
--- a/Modules/US/CMakeLists.txt
+++ b/Modules/US/CMakeLists.txt
@@ -1,20 +1,14 @@
 MITK_CREATE_MODULE(
   INCLUDE_DIRS USControlInterfaces USFilters USModel
   INTERNAL_INCLUDE_DIRS ${INCLUDE_DIRS_INTERNAL}
-  PACKAGE_DEPENDS Poco PRIVATE tinyxml2|tinyxml2
+  PACKAGE_DEPENDS Poco PRIVATE tinyxml2
   DEPENDS MitkOpenCVVideoSupport MitkQtWidgetsExt MitkIGTBase MitkOpenIGTLink
 )
 
-if(TARGET ${MODULE_TARGET})
-  target_link_libraries(${MODULE_TARGET}
-    PRIVATE tinyxml2::tinyxml2
-  )
-endif()
-
 ## create US config
 #CONFIGURE_FILE(mitkUSConfig.h.in ${PROJECT_BINARY_DIR}/mitkUSConfig.h @ONLY)
 
 ADD_SUBDIRECTORY(USHardwareTelemed)
 ADD_SUBDIRECTORY(USNavigation)
 
 ADD_SUBDIRECTORY(Testing)