diff --git a/CMakeExternals/CTK.cmake b/CMakeExternals/CTK.cmake
index c1a3945745..0f27bfc58c 100644
--- a/CMakeExternals/CTK.cmake
+++ b/CMakeExternals/CTK.cmake
@@ -1,103 +1,104 @@
 #-----------------------------------------------------------------------------
 # CTK
 #-----------------------------------------------------------------------------
 
 if(MITK_USE_CTK)
 
   # Sanity checks
   if(DEFINED CTK_DIR AND NOT EXISTS ${CTK_DIR})
     message(FATAL_ERROR "CTK_DIR variable is defined but corresponds to non-existing directory")
   endif()
 
   set(proj CTK)
   set(proj_DEPENDENCIES DCMTK)
   set(CTK_DEPENDS ${proj})
 
   if(NOT DEFINED CTK_DIR)
 
     set(revision_tag fc06bedc) # Revision currently points to commit in https://github.com/kislinsk/CTK.git
 
     set(ctk_optional_cache_args )
     if(MITK_USE_Python)
       list(APPEND ctk_optional_cache_args
            -DCTK_LIB_Scripting/Python/Widgets:BOOL=ON
            -DCTK_ENABLE_Python_Wrapping:BOOL=ON
            -DCTK_APP_ctkSimplePythonShell:BOOL=ON
            -DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE}
            -DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIR}
            -DPYTHON_INCLUDE_DIR2:PATH=${PYTHON_INCLUDE_DIR2}
            -DPYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARY}
       )
     else()
       list(APPEND ctk_optional_cache_args
            -DCTK_LIB_Scripting/Python/Widgets:BOOL=OFF
            -DCTK_ENABLE_Python_Wrapping:BOOL=OFF
            -DCTK_APP_ctkSimplePythonShell:BOOL=OFF
       )
     endif()
 
     if(NOT MITK_USE_Python)
       list(APPEND ctk_optional_cache_args
         -DDCMTK_CMAKE_DEBUG_POSTFIX:STRING=d
       )
     endif()
 
     if(CTEST_USE_LAUNCHERS)
       list(APPEND ctk_optional_cache_args
         "-DCMAKE_PROJECT_${proj}_INCLUDE:FILEPATH=${CMAKE_ROOT}/Modules/CTestUseLaunchers.cmake"
       )
     endif()
 
     FOREACH(type RUNTIME ARCHIVE LIBRARY)
       IF(DEFINED CTK_PLUGIN_${type}_OUTPUT_DIRECTORY)
         LIST(APPEND mitk_optional_cache_args -DCTK_PLUGIN_${type}_OUTPUT_DIRECTORY:PATH=${CTK_PLUGIN_${type}_OUTPUT_DIRECTORY})
       ENDIF()
     ENDFOREACH()
 
     ExternalProject_Add(${proj}
       LIST_SEPARATOR ${sep}
       URL ${MITK_THIRDPARTY_DOWNLOAD_PREFIX_URL}/CTK_${revision_tag}.tar.gz
       URL_MD5 c500f54dd6d2ce2803d705cbb663d2f2
       # PATCH_COMMAND ${PATCH_COMMAND} -N -p1 -i ${CMAKE_CURRENT_LIST_DIR}/CTK.patch
       UPDATE_COMMAND ""
       INSTALL_COMMAND ""
       CMAKE_GENERATOR ${gen}
       CMAKE_ARGS
         ${ep_common_args}
         ${ctk_optional_cache_args}
         # The CTK PluginFramework cannot cope with
         # a non-empty CMAKE_DEBUG_POSTFIX for the plugin
         # libraries yet.
         -DCMAKE_DEBUG_POSTFIX:STRING=
         -DCTK_QT_VERSION:STRING=5
         -DQt5_DIR=${Qt5_DIR}
         -DGit_EXECUTABLE:FILEPATH=${GIT_EXECUTABLE}
         -DGIT_EXECUTABLE:FILEPATH=${GIT_EXECUTABLE}
+        -DCTK_BUILD_QTDESIGNER_PLUGINS:BOOL=OFF
         -DCTK_LIB_CommandLineModules/Backend/LocalProcess:BOOL=ON
         -DCTK_LIB_CommandLineModules/Frontend/QtGui:BOOL=ON
         -DCTK_LIB_PluginFramework:BOOL=ON
         -DCTK_LIB_DICOM/Widgets:BOOL=ON
         -DCTK_LIB_XNAT/Core:BOOL=ON
         -DCTK_PLUGIN_org.commontk.eventadmin:BOOL=ON
         -DCTK_PLUGIN_org.commontk.configadmin:BOOL=ON
         -DCTK_USE_GIT_PROTOCOL:BOOL=OFF
         -DDCMTK_DIR:PATH=${DCMTK_DIR}
         -DqRestAPI_URL:STRING=${MITK_THIRDPARTY_DOWNLOAD_PREFIX_URL}/qRestAPI_c5e4c2a7_patched.tar.gz
         -DPythonQt_URL:STRING=${MITK_THIRDPARTY_DOWNLOAD_PREFIX_URL}/PythonQt_e39be131.tar.gz # From https://github.com/kislinsk/PythonQt.git
       CMAKE_CACHE_ARGS
         ${ep_common_cache_args}
       CMAKE_CACHE_DEFAULT_ARGS
         ${ep_common_cache_default_args}
       DEPENDS ${proj_DEPENDENCIES}
      )
 
     ExternalProject_Get_Property(${proj} binary_dir)
     set(CTK_DIR ${binary_dir})
 
   else()
 
     mitkMacroEmptyExternalProject(${proj} "${proj_DEPENDENCIES}")
 
   endif()
 
 endif()
diff --git a/CMakeExternals/QwtCMakeLists.txt b/CMakeExternals/QwtCMakeLists.txt
index a9b41aecac..e738fcde35 100644
--- a/CMakeExternals/QwtCMakeLists.txt
+++ b/CMakeExternals/QwtCMakeLists.txt
@@ -1,258 +1,264 @@
 cmake_minimum_required(VERSION 3.1)
 
 project(Qwt)
 
 set(${PROJECT_NAME}_MAJOR_VERSION 6)
 set(${PROJECT_NAME}_MINOR_VERSION 1)
 set(${PROJECT_NAME}_PATCH_VERSION 0)
 set(${PROJECT_NAME}_VERSION ${${PROJECT_NAME}_MAJOR_VERSION}.${${PROJECT_NAME}_MINOR_VERSION}.${${PROJECT_NAME}_PATCH_VERSION})
 
 set(QWT_MOC_HEADERS
 
   # General
   qwt_dyngrid_layout.h
   qwt_magnifier.h
   qwt_panner.h
   qwt_picker.h
   qwt_text_label.h
 
   # QwtPlot
   qwt_abstract_legend.h
   qwt_legend.h
   qwt_legend_label.h
   qwt_plot.h
   qwt_plot_renderer.h
   qwt_plot_canvas.h
   qwt_plot_panner.h
   qwt_plot_picker.h
   qwt_plot_zoomer.h
   qwt_plot_magnifier.h
   qwt_sampling_thread.h
   qwt_scale_widget.h
 
   # QwtOpenGL
   qwt_plot_glcanvas.h
 
   # QwtWidgets
   qwt_abstract_slider.h
   qwt_abstract_scale.h
   qwt_analog_clock.h
   qwt_compass.h
   qwt_counter.h
   qwt_dial.h
   qwt_knob.h
   qwt_slider.h
   qwt_thermo.h
   qwt_wheel.h
 )
 
 set(QWT_SOURCES
 
   # General
   qwt_abstract_scale_draw.cpp
   qwt_clipper.cpp
   qwt_color_map.cpp
   qwt_column_symbol.cpp
   qwt_date.cpp
   qwt_date_scale_draw.cpp
   qwt_date_scale_engine.cpp
   qwt_dyngrid_layout.cpp
   qwt_event_pattern.cpp
   qwt_graphic.cpp
   qwt_interval.cpp
   qwt_interval_symbol.cpp
   qwt_math.cpp
   qwt_magnifier.cpp
   qwt_null_paintdevice.cpp
   qwt_painter.cpp
   qwt_painter_command.cpp
   qwt_panner.cpp
   qwt_picker.cpp
   qwt_picker_machine.cpp
   qwt_pixel_matrix.cpp
   qwt_point_3d.cpp
   qwt_point_polar.cpp
   qwt_round_scale_draw.cpp
   qwt_scale_div.cpp
   qwt_scale_draw.cpp
   qwt_scale_map.cpp
   qwt_spline.cpp
   qwt_scale_engine.cpp
   qwt_symbol.cpp
   qwt_system_clock.cpp
   qwt_text_engine.cpp
   qwt_text_label.cpp
   qwt_text.cpp
   qwt_transform.cpp
   qwt_widget_overlay.cpp
 
   # QwtPlot
   qwt_curve_fitter.cpp
   qwt_abstract_legend.cpp
   qwt_legend.cpp
   qwt_legend_data.cpp
   qwt_legend_label.cpp
   qwt_plot.cpp
   qwt_plot_renderer.cpp
   qwt_plot_xml.cpp
   qwt_plot_axis.cpp
   qwt_plot_curve.cpp
   qwt_plot_dict.cpp
   qwt_plot_directpainter.cpp
   qwt_plot_grid.cpp
   qwt_plot_histogram.cpp
   qwt_plot_item.cpp
   qwt_plot_abstract_barchart.cpp
   qwt_plot_barchart.cpp
   qwt_plot_multi_barchart.cpp
   qwt_plot_intervalcurve.cpp
   qwt_plot_zoneitem.cpp
   qwt_plot_tradingcurve.cpp
   qwt_plot_spectrogram.cpp
   qwt_plot_spectrocurve.cpp
   qwt_plot_scaleitem.cpp
   qwt_plot_legenditem.cpp
   qwt_plot_seriesitem.cpp
   qwt_plot_shapeitem.cpp
   qwt_plot_marker.cpp
   qwt_plot_textlabel.cpp
   qwt_plot_layout.cpp
   qwt_plot_canvas.cpp
   qwt_plot_panner.cpp
   qwt_plot_rasteritem.cpp
   qwt_plot_picker.cpp
   qwt_plot_zoomer.cpp
   qwt_plot_magnifier.cpp
   qwt_plot_rescaler.cpp
   qwt_point_mapper.cpp
   qwt_raster_data.cpp
   qwt_matrix_raster_data.cpp
   qwt_sampling_thread.cpp
   qwt_series_data.cpp
   qwt_point_data.cpp
   qwt_scale_widget.cpp
 
   # QwtSvg
   qwt_plot_svgitem.cpp
 
   # QwtOpenGL
   qwt_plot_glcanvas.cpp
 
   # QwtWidgets
   qwt_abstract_slider.cpp
   qwt_abstract_scale.cpp
   qwt_arrow_button.cpp
   qwt_analog_clock.cpp
   qwt_compass.cpp
   qwt_compass_rose.cpp
   qwt_counter.cpp
   qwt_dial.cpp
   qwt_dial_needle.cpp
   qwt_knob.cpp
   qwt_slider.cpp
   qwt_thermo.cpp
   qwt_wheel.cpp
 
 )
 
 set(_qwt_moc_headers )
 foreach(_header ${QWT_MOC_HEADERS})
   list(APPEND _qwt_moc_headers src/${_header})
 endforeach()
 
 set(_qwt_sources )
 foreach(_source ${QWT_SOURCES})
   list(APPEND _qwt_sources src/${_source})
 endforeach()
 
 find_package(Qt5Svg REQUIRED)
 find_package(Qt5OpenGL REQUIRED)
 find_package(Qt5PrintSupport REQUIRED)
 find_package(Qt5Concurrent REQUIRED)
 
 qt5_wrap_cpp(_qwt_sources ${_qwt_moc_headers})
 
 add_library(qwt SHARED ${_qwt_sources})
 target_link_libraries(qwt PUBLIC Qt5::Svg Qt5::OpenGL Qt5::PrintSupport Qt5::Concurrent)
 
 target_compile_definitions(qwt PUBLIC QWT_DLL PRIVATE QWT_MAKEDLL)
 set_target_properties(qwt PROPERTIES
                       SOVERSION ${${PROJECT_NAME}_VERSION}
 )
 
 
 # Build the designer plug-in
 
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src)
+option(QWT_BUILD_DESIGNER_PLUGIN "Build the Qt Designer plugin" OFF)
+  if (QWT_BUILD_DESIGNER_PLUGIN)
 
-set(_qwt_designer_sources
-  designer/qwt_designer_plotdialog.cpp
-  designer/qwt_designer_plugin.cpp
-)
+  include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src)
 
-set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/plugins/designer)
-set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/plugins/designer)
-set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/plugins/designer)
+  set(_qwt_designer_sources
+    designer/qwt_designer_plotdialog.cpp
+    designer/qwt_designer_plugin.cpp
+  )
 
-find_package(Qt5Designer REQUIRED)
-include_directories(${Qt5Designer_INCLUDE_DIRS})
-qt5_wrap_cpp(_qwt_designer_sources
-  designer/qwt_designer_plugin.h
-  designer/qwt_designer_plotdialog.h
-)
-qt5_add_resources(_qwt_designer_sources designer/qwt_designer_plugin.qrc)
+  set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/plugins/designer)
+  set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/plugins/designer)
+  set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/plugins/designer)
 
-add_library(qwt_designer_plugin SHARED ${_qwt_designer_sources})
-target_link_libraries(qwt_designer_plugin qwt Qt5::Designer)
+  find_package(Qt5Designer REQUIRED)
+  include_directories(${Qt5Designer_INCLUDE_DIRS})
+  qt5_wrap_cpp(_qwt_designer_sources
+    designer/qwt_designer_plugin.h
+    designer/qwt_designer_plotdialog.h
+  )
+  qt5_add_resources(_qwt_designer_sources designer/qwt_designer_plugin.qrc)
 
-set_target_properties(qwt_designer_plugin PROPERTIES
-                      SOVERSION ${${PROJECT_NAME}_VERSION}
-                      COMPILE_DEFINITIONS QWT_DLL)
+  add_library(qwt_designer_plugin SHARED ${_qwt_designer_sources})
+  target_link_libraries(qwt_designer_plugin qwt Qt5::Designer)
+
+  set_target_properties(qwt_designer_plugin PROPERTIES
+                        SOVERSION ${${PROJECT_NAME}_VERSION}
+                        COMPILE_DEFINITIONS QWT_DLL)
+endif()
 
 set(${PROJECT_NAME}_LIBRARIES qwt)
 
 # Install support
 
-install(TARGETS qwt_designer_plugin
-  RUNTIME DESTINATION plugins/designer
-  LIBRARY DESTINATION plugins/designer
-)
+if (QWT_BUILD_DESIGNER_PLUGIN)
+  install(TARGETS qwt_designer_plugin
+    RUNTIME DESTINATION plugins/designer
+    LIBRARY DESTINATION plugins/designer
+  )
+endif()
 
 install(TARGETS ${${PROJECT_NAME}_LIBRARIES} EXPORT ${PROJECT_NAME}_TARGETS
   LIBRARY DESTINATION lib
   ARCHIVE DESTINATION lib
   RUNTIME DESTINATION bin
   INCLUDES DESTINATION include/${PROJECT_NAME}
 )
 install(DIRECTORY src/
   DESTINATION include/${PROJECT_NAME}
   FILES_MATCHING PATTERN "*.h"
 )
 
 # Config files
 
 configure_file(
   ${PROJECT_NAME}Config.cmake.in
   ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
   @ONLY
 )
 configure_file(
   ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}ConfigVersion.cmake.in
   ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
   @ONLY
 )
 
 export(EXPORT ${PROJECT_NAME}_TARGETS
   FILE ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Targets.cmake
 )
 
 set(config_package_location lib/cmake/${PROJECT_NAME})
 install(EXPORT ${PROJECT_NAME}_TARGETS
   FILE ${PROJECT_NAME}Targets.cmake
   DESTINATION ${config_package_location}
 )
 install(FILES
     "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
     "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
   DESTINATION ${config_package_location}
 )