From d71f4c279b09ddeb1953a913f1d45cadf4423e57 Mon Sep 17 00:00:00 2001
From: Albert Astals Cid <aacid@kde.org>
Date: Sun, 19 Jan 2020 17:19:23 +0100
Subject: [PATCH] Drop Qt4 support

---
 CMakeLists.txt                               |  56 +----
 INSTALL                                      |   1 -
 cmake/modules/ECMQt4To5Porting.cmake         | 238 -------------------
 cmake/modules/FindQt5Transitional.cmake      | 125 ----------
 cmake/modules/QcaMacro.cmake                 |  66 +----
 examples/CMakeLists.txt                      |   3 +-
 examples/eventhandlerdemo/CMakeLists.txt     |   2 -
 examples/keyloader/CMakeLists.txt            |   2 -
 examples/saslclient/CMakeLists.txt           |   4 +-
 examples/saslserver/CMakeLists.txt           |   4 +-
 examples/sslservtest/CMakeLists.txt          |   4 +-
 examples/ssltest/CMakeLists.txt              |   4 +-
 examples/tlssocket/CMakeLists.txt            |   9 +-
 include/QtCrypto/qca_basic.h                 |   7 -
 plugins/qca-botan/CMakeLists.txt             |   3 +-
 plugins/qca-cyrus-sasl/CMakeLists.txt        |   3 +-
 plugins/qca-gcrypt/CMakeLists.txt            |   3 +-
 plugins/qca-gnupg/CMakeLists.txt             |  21 +-
 plugins/qca-gnupg/gpgop_p.h                  |   8 +-
 plugins/qca-logger/CMakeLists.txt            |   3 +-
 plugins/qca-nss/CMakeLists.txt               |   3 +-
 plugins/qca-ossl/CMakeLists.txt              |   4 +-
 plugins/qca-pkcs11/CMakeLists.txt            |   3 +-
 plugins/qca-softstore/CMakeLists.txt         |   3 +-
 plugins/qca-wincrypto/CMakeLists.txt         |   4 +-
 src/CMakeLists.txt                           |  31 +--
 src/qca_safeobj.h                            |  26 +-
 tools/CMakeLists.txt                         |   2 -
 tools/qcatool/CMakeLists.txt                 |   6 +-
 unittest/CMakeLists.txt                      |   7 +-
 unittest/base64unittest/CMakeLists.txt       |   2 -
 unittest/bigintunittest/CMakeLists.txt       |   2 -
 unittest/certunittest/CMakeLists.txt         |   2 -
 unittest/cipherunittest/CMakeLists.txt       |   2 -
 unittest/clientplugin/CMakeLists.txt         |   2 -
 unittest/clientplugin/clientplugin.cpp       |  20 +-
 unittest/clientplugin/clientplugin.h         |   4 +-
 unittest/cms/CMakeLists.txt                  |   2 -
 unittest/dsaunittest/CMakeLists.txt          |   2 -
 unittest/filewatchunittest/CMakeLists.txt    |   1 -
 unittest/hashunittest/CMakeLists.txt         |   2 -
 unittest/hexunittest/CMakeLists.txt          |   2 -
 unittest/kdfunittest/CMakeLists.txt          |   2 -
 unittest/keybundle/CMakeLists.txt            |   2 -
 unittest/keygenunittest/CMakeLists.txt       |   2 -
 unittest/keylengthunittest/CMakeLists.txt    |   2 -
 unittest/keystore/CMakeLists.txt             |   2 -
 unittest/logger/CMakeLists.txt               |   6 +-
 unittest/logger/loggerunittest.cpp           |   4 +-
 unittest/macunittest/CMakeLists.txt          |   2 -
 unittest/metatype/CMakeLists.txt             |   2 -
 unittest/pgpunittest/CMakeLists.txt          |   2 -
 unittest/pipeunittest/CMakeLists.txt         |   2 -
 unittest/pkits/CMakeLists.txt                |   2 -
 unittest/rsaunittest/CMakeLists.txt          |   2 -
 unittest/securearrayunittest/CMakeLists.txt  |   2 -
 unittest/staticunittest/CMakeLists.txt       |   2 -
 unittest/symmetrickeyunittest/CMakeLists.txt |   2 -
 unittest/tls/CMakeLists.txt                  |   2 -
 unittest/velox/CMakeLists.txt                |   6 +-
 60 files changed, 68 insertions(+), 676 deletions(-)
 delete mode 100644 cmake/modules/ECMQt4To5Porting.cmake
 delete mode 100644 cmake/modules/FindQt5Transitional.cmake

diff --git a/CMakeLists.txt b/CMakeLists.txt
index d40a2eb4..d89ad65b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -41,51 +41,17 @@ endif(NOT BUILD_PLUGINS)
 
 set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" )
 
-option(QT4_BUILD "Force building with Qt4 even if Qt5 is found")
-if (NOT QT4_BUILD)
-  # Do not automatically link Qt executables to qtmain target on Windows.
-  # QCA exucatables use console mode only. Not need to link against qtmain.lib.
-  set(Qt5_NO_LINK_QTMAIN ON)
-  find_package(Qt5Core QUIET)
-  mark_as_advanced(Qt5Core_DIR)
-endif()
+# Do not automatically link Qt executables to qtmain target on Windows.
+# QCA exucatables use console mode only. Not need to link against qtmain.lib.
+set(Qt5_NO_LINK_QTMAIN ON)
+find_package(Qt5 REQUIRED Core)
+set(CMAKE_AUTOMOC ON)
 
 include(QcaMacro)
-
-if (Qt5Core_FOUND)
-  message(STATUS "Building with Qt5 support")
-  # Got from ECM
-  # Distros have no ECM. So I just copied required cmake modules.
-  if(BUILD_TESTS)
-    find_package(Qt5Transitional REQUIRED Core Network)
-  else()
-    find_package(Qt5Transitional REQUIRED Core)
-  endif()
-  include(ECMQt4To5Porting)
-
-  include(GNUInstallDirs)
-  setup_qt5_dirs()
-  set(QCA_QT_PC_VERSION "Qt5Core")
-  set(QCA_SUFFIX "qt5")
-else()
-  set(QT_MIN_VERSION "4.7.0")
-  set(QT_USE_IMPORTED_TARGETS ON)
-  # Do not automatically link Qt executables to qtmain target on Windows.
-  # QCA exucatables use console mode only. Not need to link against qtmain.lib.
-  set(QT4_NO_LINK_QTMAIN ON)
-  if(BUILD_TESTS)
-    find_package(Qt4 REQUIRED QtCore QtNetwork QtTest)
-  else(BUILD_TESTS)
-    find_package(Qt4 REQUIRED QtCore)
-  endif(BUILD_TESTS)
-  # WORKAROUND: Seems it must be done in Qt4 find module but didn't
-  mark_as_advanced(QT_QMAKE_EXECUTABLE)
-
-  # properly set up compile flags (QT_DEBUG/QT_NO_DEBUG, ...)
-  include(${QT_USE_FILE})
-  setup_qt4_dirs()
-  set(QCA_QT_PC_VERSION "QtCore")
-endif()
+include(GNUInstallDirs)
+setup_qt5_dirs()
+set(QCA_QT_PC_VERSION "Qt5Core")
+set(QCA_SUFFIX "qt5")
 
 # QCA can be shared but plugins will be static
 # if Qt is static.
@@ -356,7 +322,7 @@ set( public_HEADERS
 
 set( qca_HEADERS ${private_HEADERS} ${public_HEADERS} )
 
-include_directories(${QT_QTCORE_INCLUDE_DIR} "${qca_INCLUDEDIR}/QtCrypto")
+include_directories("${qca_INCLUDEDIR}/QtCrypto")
 
 configure_file("crypto.prf.cmake" "${CMAKE_BINARY_DIR}/mkspecs/features/crypto.prf" @ONLY)
 if(NOT DEVELOPER_MODE)
@@ -469,7 +435,7 @@ if(NOT DEVELOPER_MODE)
   message("")
 
   if(UNIX AND NOT APPLE)
-    if(NOT QCA_SUFFIX AND NOT QT4_BUILD)
+    if(NOT QCA_SUFFIX)
 
       message("${ESCAPE}[31mYou don't have QCA_SUFFIX set. Please note that the recommended way of")
       message("building Qt5 version of qca for Linux distributions is to set")
diff --git a/INSTALL b/INSTALL
index 0a1d1042..6944bde7 100644
--- a/INSTALL
+++ b/INSTALL
@@ -17,7 +17,6 @@ Notes
 
   CMAKE_INSTALL_PREFIX - must be defined otherwise QCA will be installed
                          in Qt prefix (by default: "")
-  QT4_BUILD - forced Qt4 building (by default: OFF)
   BUILD_TESTS - build unittests (by default: ON)
   BUILD_TOOLS - build mozcerts and qcatool (by default: ON)
   QCA_SUFFIX - suffix will be used for library, qcatool binary,
diff --git a/cmake/modules/ECMQt4To5Porting.cmake b/cmake/modules/ECMQt4To5Porting.cmake
deleted file mode 100644
index 02b0ef4e..00000000
--- a/cmake/modules/ECMQt4To5Porting.cmake
+++ /dev/null
@@ -1,238 +0,0 @@
-#=============================================================================
-# Copyright 2005-2011 Kitware, Inc.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# * Redistributions of source code must retain the above copyright
-#   notice, this list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-#
-# * Neither the name of Kitware, Inc. nor the names of its
-#   contributors may be used to endorse or promote products derived
-#   from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#=============================================================================
-
-# The automoc_qt4 macro is superceded by CMAKE_AUTOMOC from CMake 2.8.6
-# A Qt 5 version is not provided by CMake or Qt.
-
-include(MacroAddFileDependencies)
-
-MACRO (QT4_GET_MOC_FLAGS _moc_flags)
-  SET(${_moc_flags})
-  GET_DIRECTORY_PROPERTY(_inc_DIRS INCLUDE_DIRECTORIES)
-
-  FOREACH(_current ${_inc_DIRS})
-    IF("${_current}" MATCHES "\\.framework/?$")
-      STRING(REGEX REPLACE "/[^/]+\\.framework" "" framework_path "${_current}")
-      SET(${_moc_flags} ${${_moc_flags}} "-F${framework_path}")
-    ELSE("${_current}" MATCHES "\\.framework/?$")
-      SET(${_moc_flags} ${${_moc_flags}} "-I${_current}")
-    ENDIF("${_current}" MATCHES "\\.framework/?$")
-  ENDFOREACH(_current ${_inc_DIRS})
-
-  GET_DIRECTORY_PROPERTY(_defines COMPILE_DEFINITIONS)
-  FOREACH(_current ${_defines})
-    SET(${_moc_flags} ${${_moc_flags}} "-D${_current}")
-  ENDFOREACH(_current ${_defines})
-
-  IF(Q_WS_WIN)
-    SET(${_moc_flags} ${${_moc_flags}} -DWIN32)
-  ENDIF(Q_WS_WIN)
-
-ENDMACRO(QT4_GET_MOC_FLAGS)
-
-# helper macro to set up a moc rule
-MACRO (QT4_CREATE_MOC_COMMAND infile outfile moc_flags moc_options)
-  # For Windows, create a parameters file to work around command line length limit
-  IF (WIN32)
-    # Pass the parameters in a file.  Set the working directory to
-    # be that containing the parameters file and reference it by
-    # just the file name.  This is necessary because the moc tool on
-    # MinGW builds does not seem to handle spaces in the path to the
-    # file given with the @ syntax.
-    GET_FILENAME_COMPONENT(_moc_outfile_name "${outfile}" NAME)
-    GET_FILENAME_COMPONENT(_moc_outfile_dir "${outfile}" PATH)
-    IF(_moc_outfile_dir)
-      SET(_moc_working_dir WORKING_DIRECTORY ${_moc_outfile_dir})
-    ENDIF(_moc_outfile_dir)
-    SET (_moc_parameters_file ${outfile}_parameters)
-    SET (_moc_parameters ${moc_flags} ${moc_options} -o "${outfile}" "${infile}")
-    STRING (REPLACE ";" "\n" _moc_parameters "${_moc_parameters}")
-    FILE (WRITE ${_moc_parameters_file} "${_moc_parameters}")
-    ADD_CUSTOM_COMMAND(OUTPUT ${outfile}
-                       COMMAND ${QT_MOC_EXECUTABLE} @${_moc_outfile_name}_parameters
-                       DEPENDS ${infile}
-                       ${_moc_working_dir}
-                       VERBATIM)
-  ELSE (WIN32)
-    ADD_CUSTOM_COMMAND(OUTPUT ${outfile}
-                       COMMAND ${QT_MOC_EXECUTABLE}
-                       ARGS ${moc_flags} ${moc_options} -o ${outfile} ${infile}
-                       DEPENDS ${infile} VERBATIM)
-  ENDIF (WIN32)
-ENDMACRO (QT4_CREATE_MOC_COMMAND)
-
-
-MACRO(QT4_AUTOMOC)
-  QT4_GET_MOC_FLAGS(_moc_INCS)
-
-  SET(_matching_FILES )
-  FOREACH (_current_FILE ${ARGN})
-
-    GET_FILENAME_COMPONENT(_abs_FILE ${_current_FILE} ABSOLUTE)
-    # if "SKIP_AUTOMOC" is set to true, we will not handle this file here.
-    # This is required to make uic work correctly:
-    # we need to add generated .cpp files to the sources (to compile them),
-    # but we cannot let automoc handle them, as the .cpp files don't exist yet when
-    # cmake is run for the very first time on them -> however the .cpp files might
-    # exist at a later run. at that time we need to skip them, so that we don't add two
-    # different rules for the same moc file
-    GET_SOURCE_FILE_PROPERTY(_skip ${_abs_FILE} SKIP_AUTOMOC)
-
-    IF ( NOT _skip AND EXISTS ${_abs_FILE} )
-
-      FILE(READ ${_abs_FILE} _contents)
-
-      GET_FILENAME_COMPONENT(_abs_PATH ${_abs_FILE} PATH)
-
-      STRING(REGEX MATCHALL "# *include +[^ ]+\\.moc[\">]" _match "${_contents}")
-      IF(_match)
-        FOREACH (_current_MOC_INC ${_match})
-          STRING(REGEX MATCH "[^ <\"]+\\.moc" _current_MOC "${_current_MOC_INC}")
-
-          GET_FILENAME_COMPONENT(_basename ${_current_MOC} NAME_WE)
-          IF(EXISTS ${_abs_PATH}/${_basename}.hpp)
-            SET(_header ${_abs_PATH}/${_basename}.hpp)
-          ELSE(EXISTS ${_abs_PATH}/${_basename}.hpp)
-            SET(_header ${_abs_PATH}/${_basename}.h)
-          ENDIF(EXISTS ${_abs_PATH}/${_basename}.hpp)
-          SET(_moc    ${CMAKE_CURRENT_BINARY_DIR}/${_current_MOC})
-          QT4_CREATE_MOC_COMMAND(${_header} ${_moc} "${_moc_INCS}" "")
-          MACRO_ADD_FILE_DEPENDENCIES(${_abs_FILE} ${_moc})
-        ENDFOREACH (_current_MOC_INC)
-      ENDIF(_match)
-    ENDIF ( NOT _skip AND EXISTS ${_abs_FILE} )
-  ENDFOREACH (_current_FILE)
-ENDMACRO(QT4_AUTOMOC)
-
-
-# Portability helpers.
-
-set(QT_QTGUI_LIBRARIES
-  ${Qt5Gui_LIBRARIES}
-  ${Qt5Widgets_LIBRARIES}
-  ${Qt5PrintSupport_LIBRARIES}
-  ${Qt5Svg_LIBRARIES}
-)
-
-set(QT_INCLUDES
-    ${Qt5Gui_INCLUDE_DIRS}
-    ${Qt5Widgets_INCLUDE_DIRS}
-    ${Qt5PrintSupport_INCLUDE_DIRS}
-    ${Qt5Svg_INCLUDE_DIRS}
-)
-set(QT_QTGUI_LIBRARY ${QT_QTGUI_LIBRARIES})
-
-set(_qt_modules
-  Core
-  Declarative
-  Widgets
-  Script
-  ScriptTools
-  DBus
-  Network
-  Test
-  Designer
-  Concurrent
-  Xml
-  UiTools
-  Qml
-  Quick1
-  WebKit
-  WebKitWidgets
-  Sql
-  OpenGL
-)
-
-foreach(_module ${_qt_modules})
-    string(TOUPPER ${_module} _module_upper)
-    set(QT_QT${_module_upper}_LIBRARIES ${Qt5${_module}_LIBRARIES})
-    set(QT_QT${_module_upper}_LIBRARY ${QT_QT${_module_upper}_LIBRARIES})
-    list(APPEND QT_INCLUDES ${Qt5${_module}_INCLUDE_DIRS})
-    set(QT_QT${_module_upper}_FOUND ${Qt5${_module}_FOUND})
-endforeach()
-
-list(APPEND QT_QTCORE_LIBRARIES ${Qt5Concurrent_LIBRARIES})
-list(APPEND QT_QTCORE_LIBRARY ${Qt5Concurrent_LIBRARIES})
-
-list(APPEND QT_QTWEBKIT_LIBRARIES ${Qt5WebKitWidgets_LIBRARIES})
-list(APPEND QT_QTWEBKIT_LIBRARY ${Qt5WebKitWidgets_LIBRARIES})
-
-set(QT_QTDECLARATIVE_LIBRARIES ${Qt5Quick1_LIBRARIES})
-set(QT_QTDECLARATIVE_LIBRARY ${Qt5Quick1_LIBRARIES})
-
-get_target_property(QT_QMAKE_EXECUTABLE Qt5::qmake LOCATION)
-get_target_property(QT_RCC_EXECUTABLE Qt5::rcc LOCATION)
-if (TARGET Qt5::uic)
-    get_target_property(QT_UIC_EXECUTABLE Qt5::uic LOCATION)
-endif()
-
-if (TARGET Qt5::qdbuscpp2xml)
-    get_target_property(QT_QDBUSCPP2XML_EXECUTABLE Qt5::qdbuscpp2xml LOCATION)
-endif()
-
-if (TARGET Qt5::qdbusxml2cpp)
-    get_target_property(QT_QDBUSXML2CPP_EXECUTABLE Qt5::qdbusxml2cpp LOCATION)
-endif()
-
-add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0)
-
-macro(qt4_wrap_ui)
-  qt5_wrap_ui(${ARGN})
-endmacro()
-
-macro(qt4_wrap_cpp)
-  qt5_wrap_cpp(${ARGN})
-endmacro()
-
-macro(qt4_generate_moc)
-  qt5_generate_moc(${ARGN})
-endmacro()
-
-macro(qt4_add_dbus_adaptor)
-  qt5_add_dbus_adaptor(${ARGN})
-endmacro()
-
-macro(qt4_add_dbus_interfaces)
-  qt5_add_dbus_interfaces(${ARGN})
-endmacro()
-
-macro(qt4_add_dbus_interface)
-  qt5_add_dbus_interface(${ARGN})
-endmacro()
-
-macro(qt4_generate_dbus_interface)
-  qt5_generate_dbus_interface(${ARGN})
-endmacro()
-
-macro(qt4_add_resources)
-  qt5_add_resources(${ARGN})
-endmacro()
diff --git a/cmake/modules/FindQt5Transitional.cmake b/cmake/modules/FindQt5Transitional.cmake
deleted file mode 100644
index 4f83200e..00000000
--- a/cmake/modules/FindQt5Transitional.cmake
+++ /dev/null
@@ -1,125 +0,0 @@
-
-find_package(Qt5Core QUIET)
-mark_as_advanced(Qt5Core_DIR)
-
-if (Qt5Core_FOUND)
-  if (NOT Qt5Transitional_FIND_COMPONENTS)
-    set(_components
-        Core
-        Gui
-        DBus
-        Designer
-        Declarative
-        Script
-        ScriptTools
-        Network
-        Test
-        Xml
-        Svg
-        Sql
-        Widgets
-        PrintSupport
-        Concurrent
-        UiTools
-        WebKit
-        WebKitWidgets
-        OpenGL
-      )
-    foreach(_component ${_components})
-      find_package(Qt5${_component})
-      mark_as_advanced(Qt5${_component}_DIR)
-      list(APPEND QT_LIBRARIES ${Qt5${_component}_LIBRARIES})
-    endforeach()
-  else()
-    set(_components ${Qt5Transitional_FIND_COMPONENTS})
-    foreach(_component ${Qt5Transitional_FIND_COMPONENTS})
-      find_package(Qt5${_component} REQUIRED)
-      mark_as_advanced(Qt5${_component}_DIR)
-      if ("${_component}" STREQUAL "WebKit")
-        find_package(Qt5WebKitWidgets REQUIRED)
-        mark_as_advanced(Qt5WebKitWidgets_DIR)
-        list(APPEND QT_LIBRARIES ${Qt5WebKitWidgets_LIBRARIES} )
-      endif()
-      if ("${_component}" STREQUAL "Gui")
-        find_package(Qt5Widgets REQUIRED)
-        find_package(Qt5PrintSupport REQUIRED)
-        find_package(Qt5Svg REQUIRED)
-        mark_as_advanced(Qt5Widgets_DIR Qt5PrintSupport_DIR Qt5Svg_DIR)
-        list(APPEND QT_LIBRARIES ${Qt5Widgets_LIBRARIES}
-                                 ${Qt5PrintSupport_LIBRARIES}
-                                 ${Qt5Svg_LIBRARIES} )
-      endif()
-#      Core module was separated to Core and Concurrent in Qt5.
-#      But QCA doesn't use any classes from QtConcurrent.
-#      So QtConcurrent mustn't be used in QCA.
-#      Uncomment this if Concurrent support will be added.
-
-#      if ("${_component}" STREQUAL "Core")
-#        find_package(Qt5Concurrent REQUIRED)
-#        list(APPEND QT_LIBRARIES ${Qt5Concurrent_LIBRARIES} )
-#      endif()
-    endforeach()
-  endif()
-
-  set(Qt5Transitional_FOUND TRUE)
-  set(QT5_BUILD TRUE)
-
-  # Temporary until upstream does this:
-  foreach(_component ${_components})
-    if (TARGET Qt5::${_component})
-      set_property(TARGET Qt5::${_component}
-        APPEND PROPERTY
-          INTERFACE_INCLUDE_DIRECTORIES ${Qt5${_component}_INCLUDE_DIRS})
-      set_property(TARGET Qt5::${_component}
-        APPEND PROPERTY
-          INTERFACE_COMPILE_DEFINITIONS ${Qt5${_component}_COMPILE_DEFINITIONS})
-    endif()
-  endforeach()
-
-  set_property(TARGET Qt5::Core
-        PROPERTY
-          INTERFACE_POSITION_INDEPENDENT_CODE ON
-  )
-
-  if (WIN32 AND NOT Qt5_NO_LINK_QTMAIN)
-      set(_isExe $<STREQUAL:$<TARGET_PROPERTY:TYPE>,EXECUTABLE>)
-      set(_isWin32 $<BOOL:$<TARGET_PROPERTY:WIN32_EXECUTABLE>>)
-      set(_isNotExcluded $<NOT:$<BOOL:$<TARGET_PROPERTY:Qt5_NO_LINK_QTMAIN>>>)
-      get_target_property(_configs Qt5::Core IMPORTED_CONFIGURATIONS)
-      foreach(_config ${_configs})
-          set_property(TARGET Qt5::Core APPEND PROPERTY
-              IMPORTED_LINK_INTERFACE_LIBRARIES_${_config}
-                  $<$<AND:${_isExe},${_isWin32},${_isNotExcluded}>:Qt5::WinMain>
-          )
-      endforeach()
-      unset(_configs)
-      unset(_isExe)
-      unset(_isWin32)
-      unset(_isNotExcluded)
-  endif()
-  # End upstreamed stuff.
-
-  get_filename_component(_modules_dir "${CMAKE_CURRENT_LIST_DIR}/../modules" ABSOLUTE)
-  include("${_modules_dir}/ECMQt4To5Porting.cmake") # TODO: Port away from this.
-  include_directories(${QT_INCLUDES}) # TODO: Port away from this.
-
-  if (Qt5_POSITION_INDEPENDENT_CODE)
-    set(CMAKE_POSITION_INDEPENDENT_CODE ON)
-  endif()
-
-else()
-  foreach(_component ${Qt5Transitional_FIND_COMPONENTS})
-    if("${_component}" STREQUAL "Widgets")  # new in Qt5
-      set(_component Gui)
-    elseif("${_component}" STREQUAL "Concurrent")   # new in Qt5
-      set(_component Core)
-    endif()
-    list(APPEND _components Qt${_component})
-  endforeach()
-  find_package(Qt4 ${QT_MIN_VERSION} REQUIRED ${_components})
-  include_directories(${QT_INCLUDES})
-
-  if(QT4_FOUND)
-    set(Qt5Transitional_FOUND TRUE)
-  endif()
-endif()
diff --git a/cmake/modules/QcaMacro.cmake b/cmake/modules/QcaMacro.cmake
index 88e31213..ecb6a7b0 100644
--- a/cmake/modules/QcaMacro.cmake
+++ b/cmake/modules/QcaMacro.cmake
@@ -1,55 +1,16 @@
 
-IF (Qt5Core_FOUND)
-  # FindQt4.cmake wasn't used, so define it here
-  MACRO (QT4_GET_MOC_INC_DIRS _moc_INC_DIRS)
-     SET(${_moc_INC_DIRS})
-     GET_DIRECTORY_PROPERTY(_inc_DIRS INCLUDE_DIRECTORIES)
-
-     FOREACH(_current ${_inc_DIRS})
-        SET(${_moc_INC_DIRS} ${${_moc_INC_DIRS}} "-I" ${_current})
-     ENDFOREACH(_current ${_inc_DIRS})
-  ENDMACRO(QT4_GET_MOC_INC_DIRS)
-
-  MACRO(SETUP_QT5_DIRS)
-    GET_TARGET_PROPERTY(QMAKE_EXECUTABLE ${Qt5Core_QMAKE_EXECUTABLE} LOCATION)
-    EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_LIBS" OUTPUT_VARIABLE QT_LIBRARY_DIR )
-    EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_PREFIX" OUTPUT_VARIABLE QT_PREFIX_DIR )
-    EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_PLUGINS" OUTPUT_VARIABLE QT_PLUGINS_DIR )
-    EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_BINS" OUTPUT_VARIABLE QT_BINARY_DIR )
-    EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_HEADERS" OUTPUT_VARIABLE QT_HEADERS_DIR )
-    EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_DOCS" OUTPUT_VARIABLE QT_DOC_DIR )
-    EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_DATA" OUTPUT_VARIABLE QT_DATA_DIR )
-    EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_HOST_DATA" OUTPUT_VARIABLE QT_ARCHDATA_DIR )
-    SET( QT_MKSPECS_DIR "${QT_ARCHDATA_DIR}/mkspecs" )
-  ENDMACRO(SETUP_QT5_DIRS)
-ELSE (Qt5Core_FOUND)
-  # Cmake FindQt4 module doesn't provide QT_INSTALL_PREFIX and QT_INSTALL_DATA vars
-  # It will be done here
-  MACRO(SETUP_QT4_DIRS)
-    _qt4_query_qmake(QT_INSTALL_PREFIX QT_PREFIX_DIR)
-    _qt4_query_qmake(QT_INSTALL_DATA QT_DATA_DIR)
-  ENDMACRO(SETUP_QT4_DIRS)
-ENDIF()
-
-MACRO(MY_AUTOMOC _srcsList)
-  # QT4_GET_MOC_INC_DIRS(_moc_INCS)
-  FOREACH (_current_FILE ${${_srcsList}})
-    GET_FILENAME_COMPONENT(_abs_FILE ${_current_FILE} ABSOLUTE)
-    GET_FILENAME_COMPONENT(_basename ${_current_FILE} NAME_WE)
-    SET(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.moc)
-    # SET(extra_moc_argument)
-    # if(WIN32)
-    #    SET(extra_moc_argument -DWIN32)
-    # endif(WIN32)
-    QT4_GENERATE_MOC(${_abs_FILE} ${_moc})
-    # ADD_CUSTOM_COMMAND(OUTPUT ${_moc}
-    #                    COMMAND ${QT_MOC_EXECUTABLE}
-    #                    ARGS ${extra_moc_argument} ${_moc_INCS} -o ${_moc} ${_abs_FILE}
-    #                    DEPENDS ${_current_FILE}
-    # )
-    LIST(APPEND ${_srcsList} ${_moc})
-  ENDFOREACH (_current_FILE)
-ENDMACRO(MY_AUTOMOC)
+MACRO(SETUP_QT5_DIRS)
+  GET_TARGET_PROPERTY(QMAKE_EXECUTABLE ${Qt5Core_QMAKE_EXECUTABLE} LOCATION)
+  EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_LIBS" OUTPUT_VARIABLE QT_LIBRARY_DIR )
+  EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_PREFIX" OUTPUT_VARIABLE QT_PREFIX_DIR )
+  EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_PLUGINS" OUTPUT_VARIABLE QT_PLUGINS_DIR )
+  EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_BINS" OUTPUT_VARIABLE QT_BINARY_DIR )
+  EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_HEADERS" OUTPUT_VARIABLE QT_HEADERS_DIR )
+  EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_DOCS" OUTPUT_VARIABLE QT_DOC_DIR )
+  EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_DATA" OUTPUT_VARIABLE QT_DATA_DIR )
+  EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_HOST_DATA" OUTPUT_VARIABLE QT_ARCHDATA_DIR )
+  SET( QT_MKSPECS_DIR "${QT_ARCHDATA_DIR}/mkspecs" )
+ENDMACRO(SETUP_QT5_DIRS)
 
 macro(set_enabled_plugin PLUGIN ENABLED)
   # To nice looks
@@ -72,7 +33,6 @@ endmacro(disable_plugin)
 # it used to build examples and tools
 macro(target_link_qca_libraries TARGET)
   # Link with QCA library
-  target_link_libraries(${TARGET} ${QT_QTCORE_LIBRARY})
   target_link_libraries(${TARGET} ${QCA_LIB_NAME})
 
   # Statically link with all enabled QCA plugins
@@ -90,7 +50,7 @@ endmacro(target_link_qca_libraries)
 # it used to build unittests
 macro(target_link_qca_test_libraries TARGET)
   target_link_qca_libraries(${TARGET})
-  target_link_libraries(${TARGET} ${QT_QTTEST_LIBRARY})
+  target_link_libraries(${TARGET} Qt5::Test)
 endmacro(target_link_qca_test_libraries)
 
 # it used to build unittests
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index d3f3586a..a8b16041 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -1,6 +1,5 @@
-if(Qt5Core_FOUND)
 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Core_EXECUTABLE_COMPILE_FLAGS}")
-endif()
+find_package(Qt5 REQUIRED Network)
 add_subdirectory(aes-cmac)
 add_subdirectory(base64test)
 add_subdirectory(certtest)
diff --git a/examples/eventhandlerdemo/CMakeLists.txt b/examples/eventhandlerdemo/CMakeLists.txt
index 07ad1ace..0458dedf 100644
--- a/examples/eventhandlerdemo/CMakeLists.txt
+++ b/examples/eventhandlerdemo/CMakeLists.txt
@@ -1,7 +1,5 @@
 set(eventhandlerdemo_bin_SRCS eventhandlerdemo.cpp)  
 
-MY_AUTOMOC( eventhandlerdemo_bin_SRCS)
-
 add_executable(eventhandlerdemo ${eventhandlerdemo_bin_SRCS})
 
 target_link_qca_libraries(eventhandlerdemo)
diff --git a/examples/keyloader/CMakeLists.txt b/examples/keyloader/CMakeLists.txt
index 38ec7aff..2865a79b 100644
--- a/examples/keyloader/CMakeLists.txt
+++ b/examples/keyloader/CMakeLists.txt
@@ -1,7 +1,5 @@
 set(keyloader_bin_SRCS keyloader.cpp)  
 
-MY_AUTOMOC( keyloader_bin_SRCS )
-
 add_executable(keyloader ${keyloader_bin_SRCS})
 
 target_link_qca_libraries(keyloader)
diff --git a/examples/saslclient/CMakeLists.txt b/examples/saslclient/CMakeLists.txt
index b6929fad..958a242f 100644
--- a/examples/saslclient/CMakeLists.txt
+++ b/examples/saslclient/CMakeLists.txt
@@ -1,8 +1,6 @@
 set(saslclient_bin_SRCS saslclient.cpp)  
 
-MY_AUTOMOC( saslclient_bin_SRCS)
-
 add_executable(saslclient ${saslclient_bin_SRCS})
 
 target_link_qca_libraries(saslclient)
-target_link_libraries(saslclient ${QT_QTNETWORK_LIBRARY})
+target_link_libraries(saslclient Qt5::Network)
diff --git a/examples/saslserver/CMakeLists.txt b/examples/saslserver/CMakeLists.txt
index c929c9d2..f4e871d5 100644
--- a/examples/saslserver/CMakeLists.txt
+++ b/examples/saslserver/CMakeLists.txt
@@ -1,8 +1,6 @@
 set(saslserver_bin_SRCS saslserver.cpp)  
 
-MY_AUTOMOC( saslserver_bin_SRCS)
-
 add_executable(saslserver ${saslserver_bin_SRCS})
 
 target_link_qca_libraries(saslserver)
-target_link_libraries(saslserver ${QT_QTNETWORK_LIBRARY})
+target_link_libraries(saslserver Qt5::Network)
diff --git a/examples/sslservtest/CMakeLists.txt b/examples/sslservtest/CMakeLists.txt
index 1172222b..a65b5484 100644
--- a/examples/sslservtest/CMakeLists.txt
+++ b/examples/sslservtest/CMakeLists.txt
@@ -1,8 +1,6 @@
 set(sslservtest_bin_SRCS sslservtest.cpp)  
 
-MY_AUTOMOC( sslservtest_bin_SRCS )
-
 add_executable(sslservtest ${sslservtest_bin_SRCS})
 
 target_link_qca_libraries(sslservtest)
-target_link_libraries(sslservtest ${QT_QTNETWORK_LIBRARY})
+target_link_libraries(sslservtest Qt5::Network)
diff --git a/examples/ssltest/CMakeLists.txt b/examples/ssltest/CMakeLists.txt
index 12da844f..c3fececa 100644
--- a/examples/ssltest/CMakeLists.txt
+++ b/examples/ssltest/CMakeLists.txt
@@ -1,8 +1,6 @@
 set(ssltest_bin_SRCS ssltest.cpp)  
 
-MY_AUTOMOC( ssltest_bin_SRCS)
-
 add_executable(ssltest ${ssltest_bin_SRCS})
 
 target_link_qca_libraries(ssltest)
-target_link_libraries(ssltest ${QT_QTNETWORK_LIBRARY})
+target_link_libraries(ssltest Qt5::Network)
diff --git a/examples/tlssocket/CMakeLists.txt b/examples/tlssocket/CMakeLists.txt
index 66216b05..e3f40220 100644
--- a/examples/tlssocket/CMakeLists.txt
+++ b/examples/tlssocket/CMakeLists.txt
@@ -1,9 +1,4 @@
-set(tlssocket_bin_moc_SRCS tlssocket.cpp)
-set(tlssocket_bin_nonmoc_SRCS  main.cpp)
-
-MY_AUTOMOC( tlssocket_bin_moc_SRCS)
-
-add_executable(tlssocket ${tlssocket_bin_moc_SRCS} ${tlssocket_bin_nonmoc_SRCS})
+add_executable(tlssocket tlssocket.cpp main.cpp)
 
 target_link_qca_libraries(tlssocket)
-target_link_libraries(tlssocket ${QT_QTNETWORK_LIBRARY})
+target_link_libraries(tlssocket Qt5::Network)
diff --git a/include/QtCrypto/qca_basic.h b/include/QtCrypto/qca_basic.h
index 772dc06c..244b5e65 100644
--- a/include/QtCrypto/qca_basic.h
+++ b/include/QtCrypto/qca_basic.h
@@ -38,13 +38,6 @@
 
 #include <QIODevice>
 
-// Qt5 comes with QStringLiteral for wrapping string literals, which Qt4 does
-// not have. It is needed if the headers are built with QT_NO_CAST_FROM_ASCII.
-// Defining it here as QString::fromUtf8 for convenience.
-#ifndef QStringLiteral
-#define QStringLiteral(str) QString::fromUtf8(str)
-#endif
-
 namespace QCA {
 
 /**
diff --git a/plugins/qca-botan/CMakeLists.txt b/plugins/qca-botan/CMakeLists.txt
index 43529c77..f3fccd79 100644
--- a/plugins/qca-botan/CMakeLists.txt
+++ b/plugins/qca-botan/CMakeLists.txt
@@ -9,14 +9,13 @@ if(BOTAN_FOUND)
 
   set(QCA_BOTAN_SOURCES qca-botan.cpp)
   add_definitions(${BOTAN_CFLAGS})
-  my_automoc(QCA_BOTAN_SOURCES)
   add_library(qca-botan ${PLUGIN_TYPE} ${QCA_BOTAN_SOURCES})
 
   if(APPLE AND ${PLUGIN_TYPE} STREQUAL "MODULE")
     set_property(TARGET qca-botan  PROPERTY SUFFIX ".dylib")
   endif()
 
-  target_link_libraries(qca-botan ${QT_QTCORE_LIBRARY} ${QCA_LIB_NAME} ${BOTAN_LIBRARIES})
+  target_link_libraries(qca-botan Qt5::Core ${QCA_LIB_NAME} ${BOTAN_LIBRARIES})
 
   if(NOT DEVELOPER_MODE)
     install(TARGETS qca-botan
diff --git a/plugins/qca-cyrus-sasl/CMakeLists.txt b/plugins/qca-cyrus-sasl/CMakeLists.txt
index efc9ed84..d7321c0b 100644
--- a/plugins/qca-cyrus-sasl/CMakeLists.txt
+++ b/plugins/qca-cyrus-sasl/CMakeLists.txt
@@ -9,14 +9,13 @@ if(SASL2_FOUND)
 
   set(QCA_SASL_SOURCES qca-cyrus-sasl.cpp)
   include_directories( ${SASL2_INCLUDE_DIR} )
-  my_automoc( QCA_SASL_SOURCES )
   add_library(qca-cyrus-sasl ${PLUGIN_TYPE} ${QCA_SASL_SOURCES})
 
   if(APPLE AND ${PLUGIN_TYPE} STREQUAL "MODULE")
     set_property(TARGET qca-cyrus-sasl PROPERTY SUFFIX ".dylib")
   endif()
 
-  target_link_libraries(qca-cyrus-sasl ${QT_QTCORE_LIBRARY} ${QCA_LIB_NAME} ${SASL2_LIBRARIES})
+  target_link_libraries(qca-cyrus-sasl Qt5::Core ${QCA_LIB_NAME} ${SASL2_LIBRARIES})
 
   if(NOT DEVELOPER_MODE)
     install(TARGETS qca-cyrus-sasl
diff --git a/plugins/qca-gcrypt/CMakeLists.txt b/plugins/qca-gcrypt/CMakeLists.txt
index f7358a25..585f0063 100644
--- a/plugins/qca-gcrypt/CMakeLists.txt
+++ b/plugins/qca-gcrypt/CMakeLists.txt
@@ -19,14 +19,13 @@ if(LIBGCRYPT_FOUND)
 
     set(QCA_GCRYPT_SOURCES qca-gcrypt.cpp)
     add_definitions(${LIBGCRYPT_CFLAGS})
-    my_automoc(QCA_GCRYPT_SOURCES)
     add_library(qca-gcrypt ${PLUGIN_TYPE} ${QCA_GCRYPT_SOURCES})
 
     if(APPLE AND ${PLUGIN_TYPE} STREQUAL "MODULE")
       set_property(TARGET qca-gcrypt PROPERTY SUFFIX ".dylib")
     endif()
 
-    target_link_libraries(qca-gcrypt ${QT_QTCORE_LIBRARY} ${QCA_LIB_NAME} ${LIBGCRYPT_LIBRARIES})
+    target_link_libraries(qca-gcrypt Qt5::Core ${QCA_LIB_NAME} ${LIBGCRYPT_LIBRARIES})
 
     if(NOT DEVELOPER_MODE)
       install(TARGETS qca-gcrypt
diff --git a/plugins/qca-gnupg/CMakeLists.txt b/plugins/qca-gnupg/CMakeLists.txt
index 1ed8e215..d402daee 100644
--- a/plugins/qca-gnupg/CMakeLists.txt
+++ b/plugins/qca-gnupg/CMakeLists.txt
@@ -2,11 +2,8 @@
 
 enable_plugin("gnupg")
 
-set(QCA_GNUPG_MOC_SOURCES
+set(QCA_GNUPG_SOURCES
   qca-gnupg.cpp
-)
-
-set(QCA_GNUPG_NONMOC_SOURCES
   gpgop.cpp
   utils.cpp
   gpgproc/sprocess.cpp
@@ -38,26 +35,14 @@ set(QCA_GNUPG_HEADERS
   myopenpgpcontext.h
 )
 
-my_automoc(QCA_GNUPG_MOC_SOURCES)
-
-qt4_wrap_cpp(EXTRA_GNUPG_SOURCES gpgop.h)
-qt4_wrap_cpp(EXTRA_GNUPG_SOURCES gpgop_p.h)
-qt4_wrap_cpp(EXTRA_GNUPG_SOURCES gpgproc/gpgproc.h)
-qt4_wrap_cpp(EXTRA_GNUPG_SOURCES gpgproc/gpgproc_p.h)
-qt4_wrap_cpp(EXTRA_GNUPG_SOURCES gpgproc/sprocess.h)
-qt4_wrap_cpp(EXTRA_GNUPG_SOURCES ringwatch.h)
-qt4_wrap_cpp(EXTRA_GNUPG_SOURCES mykeystorelist.h)
-qt4_wrap_cpp(EXTRA_GNUPG_SOURCES mymessagecontext.h)
-qt4_wrap_cpp(EXTRA_GNUPG_SOURCES gpgaction.h)
-
-add_library(qca-gnupg ${PLUGIN_TYPE} ${QCA_GNUPG_MOC_SOURCES} ${QCA_GNUPG_NONMOC_SOURCES} ${EXTRA_GNUPG_SOURCES} ${QCA_GNUPG_HEADERS})
+add_library(qca-gnupg ${PLUGIN_TYPE} ${QCA_GNUPG_SOURCES} ${EXTRA_GNUPG_SOURCES} ${QCA_GNUPG_HEADERS})
 
 if(APPLE AND ${PLUGIN_TYPE} STREQUAL "MODULE")
   set_property(TARGET qca-gnupg PROPERTY SUFFIX ".dylib")
 endif()
 
 include_directories(gpgproc)
-target_link_libraries(qca-gnupg ${QT_QTCORE_LIBRARY} ${QCA_LIB_NAME})
+target_link_libraries(qca-gnupg Qt5::Core ${QCA_LIB_NAME})
 
 if (WIN32)
   target_link_libraries(qca-gnupg advapi32)
diff --git a/plugins/qca-gnupg/gpgop_p.h b/plugins/qca-gnupg/gpgop_p.h
index 541f5947..19e20f24 100644
--- a/plugins/qca-gnupg/gpgop_p.h
+++ b/plugins/qca-gnupg/gpgop_p.h
@@ -21,17 +21,11 @@
 
 #include "gpgop.h"
 #include "gpgaction.h"
+#include "gpgproc_p.h"
 #include <QObject>
 
 namespace gpgQCAPlugin {
 
-enum ResetMode
-{
-	ResetSession        = 0,
-	ResetSessionAndData = 1,
-	ResetAll            = 2
-};
-
 class GpgOp::Private : public QObject
 {
 	Q_OBJECT
diff --git a/plugins/qca-logger/CMakeLists.txt b/plugins/qca-logger/CMakeLists.txt
index ba6926e6..9f8b4349 100644
--- a/plugins/qca-logger/CMakeLists.txt
+++ b/plugins/qca-logger/CMakeLists.txt
@@ -2,7 +2,6 @@
 
 enable_plugin("logger")
 set(QCA_LOGGER_SOURCES qca-logger.cpp)
-my_automoc( QCA_LOGGER_SOURCES )
 
 add_library(qca-logger ${PLUGIN_TYPE} ${QCA_LOGGER_SOURCES})
 
@@ -12,7 +11,7 @@ endif()
 
 add_definitions(${LOGGERH_DEFINITIONS})
 include_directories(${LOGGERH_INCLUDE_DIR})
-target_link_libraries(qca-logger ${QT_QTCORE_LIBRARY})
+target_link_libraries(qca-logger Qt5::Core)
 target_link_libraries(qca-logger ${QCA_LIB_NAME})
 
 if(NOT DEVELOPER_MODE)
diff --git a/plugins/qca-nss/CMakeLists.txt b/plugins/qca-nss/CMakeLists.txt
index 23ea29a6..a1d694c7 100644
--- a/plugins/qca-nss/CMakeLists.txt
+++ b/plugins/qca-nss/CMakeLists.txt
@@ -10,9 +10,8 @@ if(NSS_FOUND)
   set(QCA_NSS_SOURCES qca-nss.cpp)
   add_definitions(${NSS_CFLAGS_OTHER})
   include_directories(${NSS_INCLUDE_DIRS})
-  my_automoc( QCA_NSS_SOURCES )
   add_library(qca-nss ${PLUGIN_TYPE} ${QCA_NSS_SOURCES})
-  target_link_libraries(qca-nss ${QT_QTCORE_LIBRARY} ${QCA_LIB_NAME} ${NSS_LDFLAGS})
+  target_link_libraries(qca-nss Qt5::Core ${QCA_LIB_NAME} ${NSS_LDFLAGS})
 
   if(APPLE AND ${PLUGIN_TYPE} STREQUAL "MODULE")
     set_property(TARGET qca-nss PROPERTY SUFFIX ".dylib")
diff --git a/plugins/qca-ossl/CMakeLists.txt b/plugins/qca-ossl/CMakeLists.txt
index af3d7560..a091399b 100644
--- a/plugins/qca-ossl/CMakeLists.txt
+++ b/plugins/qca-ossl/CMakeLists.txt
@@ -48,15 +48,13 @@ if(OPENSSL_FOUND)
 
   set(QCA_OSSL_SOURCES qca-ossl.cpp)
 
-  my_automoc( QCA_OSSL_SOURCES )
-
   add_library(qca-ossl ${PLUGIN_TYPE} ${QCA_OSSL_SOURCES})
 
   if(APPLE AND ${PLUGIN_TYPE} STREQUAL "MODULE")
     set_property(TARGET qca-ossl PROPERTY SUFFIX ".dylib")
   endif()
 
-  target_link_libraries(qca-ossl ${QT_QTCORE_LIBRARY})
+  target_link_libraries(qca-ossl Qt5::Core)
   target_link_libraries(qca-ossl ${QCA_LIB_NAME})
   target_link_libraries(qca-ossl OpenSSL::SSL OpenSSL::Crypto)
 
diff --git a/plugins/qca-pkcs11/CMakeLists.txt b/plugins/qca-pkcs11/CMakeLists.txt
index a6eb9b6e..3b2f5bee 100644
--- a/plugins/qca-pkcs11/CMakeLists.txt
+++ b/plugins/qca-pkcs11/CMakeLists.txt
@@ -11,7 +11,6 @@ endif(WITH_pkcs11_PLUGIN STREQUAL "yes")
 if(OPENSSL_FOUND AND PKCS11H_FOUND)
   enable_plugin("pkcs11")
   set(QCA_PKCS11_SOURCES qca-pkcs11.cpp)
-  my_automoc( QCA_PKCS11_SOURCES )
 
   add_library(qca-pkcs11 ${PLUGIN_TYPE} ${QCA_PKCS11_SOURCES})
 
@@ -21,7 +20,7 @@ if(OPENSSL_FOUND AND PKCS11H_FOUND)
 
   add_definitions(${PKCS11H_CFLAGS_OTHER})
   include_directories(${PKCS11H_INCLUDE_DIRS})
-  target_link_libraries(qca-pkcs11 ${QT_QTCORE_LIBRARY})
+  target_link_libraries(qca-pkcs11 Qt5::Core)
   target_link_libraries(qca-pkcs11 ${QCA_LIB_NAME})
   target_link_libraries(qca-pkcs11 ${PKCS11H_LDFLAGS})
   if (WIN32)
diff --git a/plugins/qca-softstore/CMakeLists.txt b/plugins/qca-softstore/CMakeLists.txt
index d7af0727..0896801e 100644
--- a/plugins/qca-softstore/CMakeLists.txt
+++ b/plugins/qca-softstore/CMakeLists.txt
@@ -2,7 +2,6 @@
 
 enable_plugin("softstore")
 set(QCA_SOFTSTORE_SOURCES qca-softstore.cpp)
-my_automoc( QCA_SOFTSTORE_SOURCES )
 
 add_library(qca-softstore ${PLUGIN_TYPE} ${QCA_SOFTSTORE_SOURCES})
 
@@ -12,7 +11,7 @@ endif()
 
 add_definitions(${SOFTSTOREH_DEFINITIONS})
 include_directories(${SOFTSTOREH_INCLUDE_DIR})
-target_link_libraries(qca-softstore ${QT_QTCORE_LIBRARY})
+target_link_libraries(qca-softstore Qt5::Core)
 target_link_libraries(qca-softstore ${QCA_LIB_NAME})
 
 if(NOT DEVELOPER_MODE)
diff --git a/plugins/qca-wincrypto/CMakeLists.txt b/plugins/qca-wincrypto/CMakeLists.txt
index e9b3ce12..150cfd05 100644
--- a/plugins/qca-wincrypto/CMakeLists.txt
+++ b/plugins/qca-wincrypto/CMakeLists.txt
@@ -3,11 +3,9 @@
 IF (WIN32)
    SET (QCA_WINCRYPTO_SOURCES qca-wincrypto.cpp)
 
-   MY_AUTOMOC (QCA_WINCRYPTO_SOURCES)
-
    ADD_LIBRARY (qca-wincrypto MODULE ${QCA_WINCRYPTO_SOURCES})
    # use win32 includes
-   TARGET_LINK_LIBRARIES (qca-wincrypto ${QT_QTCORE_LIBRARY})
+   TARGET_LINK_LIBRARIES (qca-wincrypto Qt5::core)
    TARGET_LINK_LIBRARIES (qca-wincrypto ${QCA_LIB_NAME})
    TARGET_LINK_LIBRARIES (qca-wincrypto advapi32)
 
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 6c721e56..702fbc03 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -28,20 +28,18 @@ endif()
 # base source files
 
 
-SET( nonmoc_SOURCES
+SET( SOURCES
 	qca_tools.cpp
 	qca_plugin.cpp
 	qca_textfilter.cpp
 	qca_basic.cpp
 	support/logger.cpp
-)
-
-SET( moc_SOURCES
 	qca_cert.cpp
 	qca_core.cpp
 	qca_default.cpp
 	qca_keystore.cpp
 	qca_publickey.cpp
+	qca_safeobj.cpp
 	qca_safetimer.cpp
 	qca_securelayer.cpp
 	qca_securemessage.cpp
@@ -53,11 +51,11 @@ SET( moc_SOURCES
 )
 
 IF (WIN32)
-  SET( nonmoc_SOURCES ${nonmoc_SOURCES} qca_systemstore_win.cpp )
+  SET( SOURCES ${SOURCES} qca_systemstore_win.cpp )
 elseif(APPLE)
-  set( nonmoc_SOURCES ${nonmoc_SOURCES} qca_systemstore_mac.cpp)
+  set( SOURCES ${SOURCES} qca_systemstore_mac.cpp)
 else()
-  SET( nonmoc_SOURCES ${nonmoc_SOURCES} qca_systemstore_flatfile.cpp )
+  SET( SOURCES ${SOURCES} qca_systemstore_flatfile.cpp )
 endif()
 
 # Support files
@@ -67,7 +65,7 @@ endif()
 SET( botan_BASE botantools/botan )
 
 
-INCLUDE_DIRECTORIES(${QT_QTCORE_INCLUDE_DIR} support ${botan_BASE} )
+INCLUDE_DIRECTORIES(support ${botan_BASE} )
 
 ADD_DEFINITIONS(
 	-DBOTAN_TYPES_QT
@@ -123,25 +121,10 @@ IF(WIN32)
   SET( botan_SOURCES ${botan_SOURCES} ${botan_BASE}/ml_win32/mlock.cpp)
 ENDIF(WIN32)
 
-MY_AUTOMOC( moc_SOURCES )
-SET( SOURCES ${SOURCES} ${moc_SOURCES} ${nonmoc_SOURCES} )
-
 SET( SOURCES ${SOURCES} ${botan_SOURCES})
 
-qt4_wrap_cpp( SOURCES "${qca_INCLUDEDIR}/QtCrypto/qca_core.h")
-qt4_wrap_cpp( SOURCES "${qca_INCLUDEDIR}/QtCrypto/qca_cert.h")
-qt4_wrap_cpp( SOURCES "${qca_INCLUDEDIR}/QtCrypto/qca_keystore.h")
-qt4_wrap_cpp( SOURCES "${qca_INCLUDEDIR}/QtCrypto/qcaprovider.h")
-qt4_wrap_cpp( SOURCES "${qca_INCLUDEDIR}/QtCrypto/qca_publickey.h")
-qt4_wrap_cpp( SOURCES "${qca_INCLUDEDIR}/QtCrypto/qca_securelayer.h")
-qt4_wrap_cpp( SOURCES "${qca_INCLUDEDIR}/QtCrypto/qca_securemessage.h")
-qt4_wrap_cpp( SOURCES "${qca_INCLUDEDIR}/QtCrypto/qca_support.h")
-qt4_wrap_cpp( SOURCES "${qca_INCLUDEDIR}/QtCrypto/qpipe.h")
-qt4_wrap_cpp( SOURCES "qca_safeobj.h")
-qt4_wrap_cpp( SOURCES "${qca_INCLUDEDIR}/QtCrypto/qca_safetimer.h")
-
 add_library(${QCA_LIB_NAME} ${SOURCES}  ${public_HEADERS})
-TARGET_LINK_LIBRARIES(${QCA_LIB_NAME} ${QT_QTCORE_LIBRARY})
+TARGET_LINK_LIBRARIES(${QCA_LIB_NAME} Qt5::Core)
 
 if(WIN32)
 	TARGET_LINK_LIBRARIES(${QCA_LIB_NAME} crypt32 ws2_32)
diff --git a/src/qca_safeobj.h b/src/qca_safeobj.h
index 5e0ff146..0d7efdad 100644
--- a/src/qca_safeobj.h
+++ b/src/qca_safeobj.h
@@ -29,36 +29,14 @@
 
 namespace QCA {
 
-// This function performs the following steps:
-//   obj->disconnect(owner); // to prevent future signals to owner
-//   obj->setParent(0);      // to prevent delete if parent is deleted
-//   obj->deleteLater();     // now we can forget about the object
-inline void releaseAndDeleteLater(QObject *owner, QObject *obj)
-{
-	obj->disconnect(owner);
-	obj->setParent(0);
-	obj->deleteLater();
-}
-
-
-
 class SafeSocketNotifier : public QObject
 {
 	Q_OBJECT
 public:
 	SafeSocketNotifier(int socket, QSocketNotifier::Type type,
-		QObject *parent = 0) :
-		QObject(parent)
-	{
-		sn = new QSocketNotifier(socket, type, this);
-		connect(sn, SIGNAL(activated(int)), SIGNAL(activated(int)));
-	}
+		QObject *parent = 0);
 
-	~SafeSocketNotifier()
-	{
-		sn->setEnabled(false);
-		releaseAndDeleteLater(this, sn);
-	}
+	~SafeSocketNotifier();
 
 	bool isEnabled() const             { return sn->isEnabled(); }
 	int socket() const                 { return sn->socket(); }
diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
index 7e773e3b..a3bc38a7 100644
--- a/tools/CMakeLists.txt
+++ b/tools/CMakeLists.txt
@@ -1,5 +1,3 @@
-if(Qt5Core_FOUND)
 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Core_EXECUTABLE_COMPILE_FLAGS}")
-endif()
 add_subdirectory(mozcerts)
 add_subdirectory(qcatool)
diff --git a/tools/qcatool/CMakeLists.txt b/tools/qcatool/CMakeLists.txt
index 0a0bc567..47cc79ce 100644
--- a/tools/qcatool/CMakeLists.txt
+++ b/tools/qcatool/CMakeLists.txt
@@ -1,10 +1,6 @@
 project(qcatool)
 
-set(qcatool_moc_SRCS main.cpp)
-
-MY_AUTOMOC( qcatool_moc_SRCS )
-
-set(qcatool_bin_SRCS ${qcatool_moc_SRCS})
+set(qcatool_bin_SRCS main.cpp)
 
 add_executable(${QCA_TOOL_NAME} ${qcatool_bin_SRCS})
 
diff --git a/unittest/CMakeLists.txt b/unittest/CMakeLists.txt
index f4d9eb97..a511e483 100644
--- a/unittest/CMakeLists.txt
+++ b/unittest/CMakeLists.txt
@@ -1,10 +1,8 @@
 ENABLE_TESTING()
+find_package(Qt5 REQUIRED Test)
 # QTEST_MAIN is using QApplication when QT_GUI_LIB is defined
 remove_definitions(-DQT_GUI_LIB)
-if(Qt5Core_FOUND)
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Core_EXECUTABLE_COMPILE_FLAGS}")
-  find_package(Qt5Transitional REQUIRED Test)
-endif(Qt5Core_FOUND)
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Core_EXECUTABLE_COMPILE_FLAGS}")
 
 add_subdirectory(base64unittest)
 add_subdirectory(bigintunittest)
@@ -21,6 +19,7 @@ add_subdirectory(keybundle)
 add_subdirectory(keygenunittest)
 add_subdirectory(keylengthunittest)
 add_subdirectory(keystore)
+add_subdirectory(logger)
 add_subdirectory(macunittest)
 add_subdirectory(metatype)
 add_subdirectory(pgpunittest)
diff --git a/unittest/base64unittest/CMakeLists.txt b/unittest/base64unittest/CMakeLists.txt
index 512fe705..d14cf37e 100644
--- a/unittest/base64unittest/CMakeLists.txt
+++ b/unittest/base64unittest/CMakeLists.txt
@@ -2,8 +2,6 @@ ENABLE_TESTING()
 
 set(base64unittest_bin_SRCS base64unittest.cpp)  
 
-MY_AUTOMOC( base64unittest_bin_SRCS )
-
 add_executable(base64unittest ${base64unittest_bin_SRCS} )
 
 target_link_qca_test_libraries(base64unittest)
diff --git a/unittest/bigintunittest/CMakeLists.txt b/unittest/bigintunittest/CMakeLists.txt
index d4330ad6..1ecc93de 100644
--- a/unittest/bigintunittest/CMakeLists.txt
+++ b/unittest/bigintunittest/CMakeLists.txt
@@ -2,8 +2,6 @@ ENABLE_TESTING()
 
 set(bigintunittest_bin_SRCS bigintunittest.cpp)  
 
-MY_AUTOMOC( bigintunittest_bin_SRCS )
-
 add_executable(bigintunittest ${bigintunittest_bin_SRCS} )
 
 target_link_qca_test_libraries(bigintunittest)
diff --git a/unittest/certunittest/CMakeLists.txt b/unittest/certunittest/CMakeLists.txt
index 278fcd82..2ee40600 100644
--- a/unittest/certunittest/CMakeLists.txt
+++ b/unittest/certunittest/CMakeLists.txt
@@ -2,8 +2,6 @@ ENABLE_TESTING()
 
 set(certunittest_bin_SRCS certunittest.cpp)
 
-MY_AUTOMOC( certunittest_bin_SRCS )
-
 add_executable(certunittest ${certunittest_bin_SRCS} )
 
 target_link_qca_test_libraries(certunittest)
diff --git a/unittest/cipherunittest/CMakeLists.txt b/unittest/cipherunittest/CMakeLists.txt
index a6c775dd..5986735c 100644
--- a/unittest/cipherunittest/CMakeLists.txt
+++ b/unittest/cipherunittest/CMakeLists.txt
@@ -3,8 +3,6 @@ enable_testing()
 set(cipherunittest_bin_HDRS cipherunittest.h)
 set(cipherunittest_bin_SRCS cipherunittest.cpp)
 
-qt4_wrap_cpp(EXTRA_SRCS cipherunittest.h)
-
 add_executable(cipherunittest ${cipherunittest_bin_SRCS} ${EXTRA_SRCS} ${cipherunittest_bin_HDRS})
 
 target_link_qca_test_libraries(cipherunittest)
diff --git a/unittest/clientplugin/CMakeLists.txt b/unittest/clientplugin/CMakeLists.txt
index dcfb1b4f..686e4d48 100644
--- a/unittest/clientplugin/CMakeLists.txt
+++ b/unittest/clientplugin/CMakeLists.txt
@@ -2,8 +2,6 @@ ENABLE_TESTING()
 
 set( clientplugin_bin_SRCS clientplugin.cpp )
 
-MY_AUTOMOC( clientplugin_bin_SRCS )
-
 add_executable(clientplugin ${clientplugin_bin_SRCS} )
 
 target_link_qca_test_libraries(clientplugin)
diff --git a/unittest/clientplugin/clientplugin.cpp b/unittest/clientplugin/clientplugin.cpp
index a4362417..73cdb0f2 100644
--- a/unittest/clientplugin/clientplugin.cpp
+++ b/unittest/clientplugin/clientplugin.cpp
@@ -23,6 +23,8 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+#include "clientplugin.h"
+
 #include <QtCrypto>
 #include <QtCore/QPointer>
 #include <QtTest/QtTest>
@@ -31,20 +33,6 @@
 #include "import_plugins.h"
 #endif
 
-class ClientPlugin : public QObject
-{
-    Q_OBJECT
-
-private slots:
-    void initTestCase();
-    void cleanupTestCase();
-    void testInsertRemovePlugin();
-
-private:
-    QCA::Initializer* m_init;
-
-};
-
 void ClientPlugin::initTestCase()
 {
     m_init = new QCA::Initializer;
@@ -59,8 +47,7 @@ const QString providerName = "testClientSideProvider";
 
 class TestClientProvider : public QObject, public QCA::Provider
 {
-        Q_OBJECT
-
+    Q_OBJECT
 public:
         int qcaVersion() const override
         {
@@ -109,4 +96,3 @@ void ClientPlugin::testInsertRemovePlugin()
 QTEST_MAIN(ClientPlugin)
 
 #include "clientplugin.moc"
-
diff --git a/unittest/clientplugin/clientplugin.h b/unittest/clientplugin/clientplugin.h
index b3a39555..5b73d41f 100644
--- a/unittest/clientplugin/clientplugin.h
+++ b/unittest/clientplugin/clientplugin.h
@@ -31,10 +31,10 @@
 class ClientPlugin : public QObject
 {
     Q_OBJECT
-
-private Q_SLOTS:
+private slots:
     void initTestCase();
     void cleanupTestCase();
+    void testInsertRemovePlugin();
 
 private:
     QCA::Initializer* m_init;
diff --git a/unittest/cms/CMakeLists.txt b/unittest/cms/CMakeLists.txt
index 935da978..93c674ab 100644
--- a/unittest/cms/CMakeLists.txt
+++ b/unittest/cms/CMakeLists.txt
@@ -2,8 +2,6 @@ ENABLE_TESTING()
 
 set(cms_bin_SRCS cms.cpp)
 
-MY_AUTOMOC( cms_bin_SRCS )
-
 add_executable(cms ${cms_bin_SRCS} )
 
 target_link_qca_test_libraries(cms)
diff --git a/unittest/dsaunittest/CMakeLists.txt b/unittest/dsaunittest/CMakeLists.txt
index 759ea6bf..5f2c11d3 100644
--- a/unittest/dsaunittest/CMakeLists.txt
+++ b/unittest/dsaunittest/CMakeLists.txt
@@ -2,8 +2,6 @@ ENABLE_TESTING()
 
 set( dsaunittest_bin_SRCS dsaunittest.cpp)  
 
-MY_AUTOMOC( dsaunittest_bin_SRCS )
-
 add_executable( dsaunittest ${dsaunittest_bin_SRCS} )
 
 target_link_qca_test_libraries(dsaunittest)
diff --git a/unittest/filewatchunittest/CMakeLists.txt b/unittest/filewatchunittest/CMakeLists.txt
index 7a6b6c77..50b28a2c 100644
--- a/unittest/filewatchunittest/CMakeLists.txt
+++ b/unittest/filewatchunittest/CMakeLists.txt
@@ -1,7 +1,6 @@
 ENABLE_TESTING()
 
 set(SOURCES "filewatchunittest.cpp")
-qt4_wrap_cpp(SOURCES "filewatchunittest.h")
 
 add_executable( filewatchunittest ${SOURCES})
 
diff --git a/unittest/hashunittest/CMakeLists.txt b/unittest/hashunittest/CMakeLists.txt
index 116eb80a..191e11fc 100644
--- a/unittest/hashunittest/CMakeLists.txt
+++ b/unittest/hashunittest/CMakeLists.txt
@@ -2,8 +2,6 @@ ENABLE_TESTING()
 
 set(hashunittest_bin_SRCS hashunittest.cpp)  
 
-MY_AUTOMOC( hashunittest_bin_SRCS )
-
 add_executable( hashunittest ${hashunittest_bin_SRCS} )
 
 target_link_qca_test_libraries(hashunittest)
diff --git a/unittest/hexunittest/CMakeLists.txt b/unittest/hexunittest/CMakeLists.txt
index cbdd34c9..6dff3499 100644
--- a/unittest/hexunittest/CMakeLists.txt
+++ b/unittest/hexunittest/CMakeLists.txt
@@ -2,8 +2,6 @@ ENABLE_TESTING()
 
 set(hexunittest_bin_SRCS hexunittest.cpp)  
 
-MY_AUTOMOC( hexunittest_bin_SRCS )
-
 add_executable( hexunittest ${hexunittest_bin_SRCS} )
 
 target_link_qca_test_libraries(hexunittest)
diff --git a/unittest/kdfunittest/CMakeLists.txt b/unittest/kdfunittest/CMakeLists.txt
index d4451d6e..0438c1a6 100644
--- a/unittest/kdfunittest/CMakeLists.txt
+++ b/unittest/kdfunittest/CMakeLists.txt
@@ -2,8 +2,6 @@ ENABLE_TESTING()
 
 set( kdfunittest_bin_SRCS kdfunittest.cpp)  
 
-MY_AUTOMOC( kdfunittest_bin_SRCS )
-
 add_executable( kdfunittest ${kdfunittest_bin_SRCS} )
 
 target_link_qca_test_libraries(kdfunittest)
diff --git a/unittest/keybundle/CMakeLists.txt b/unittest/keybundle/CMakeLists.txt
index 4d8fa637..1c4690e7 100644
--- a/unittest/keybundle/CMakeLists.txt
+++ b/unittest/keybundle/CMakeLists.txt
@@ -2,8 +2,6 @@ ENABLE_TESTING()
 
 set(keybundleunittest_bin_SRCS keybundle.cpp)  
 
-MY_AUTOMOC( keybundleunittest_bin_SRCS )
-
 add_executable( keybundle ${keybundleunittest_bin_SRCS} )
 
 target_link_qca_test_libraries(keybundle)
diff --git a/unittest/keygenunittest/CMakeLists.txt b/unittest/keygenunittest/CMakeLists.txt
index 16621817..3f1e681a 100644
--- a/unittest/keygenunittest/CMakeLists.txt
+++ b/unittest/keygenunittest/CMakeLists.txt
@@ -2,8 +2,6 @@ ENABLE_TESTING()
 
 set( keygenunittest_bin_SRCS keygenunittest.cpp)  
 
-MY_AUTOMOC( keygenunittest_bin_SRCS )
-
 add_executable( keygenunittest ${keygenunittest_bin_SRCS} )
 
 target_link_qca_test_libraries(keygenunittest)
diff --git a/unittest/keylengthunittest/CMakeLists.txt b/unittest/keylengthunittest/CMakeLists.txt
index 121e08dd..275f20d9 100644
--- a/unittest/keylengthunittest/CMakeLists.txt
+++ b/unittest/keylengthunittest/CMakeLists.txt
@@ -2,8 +2,6 @@ ENABLE_TESTING()
 
 set(keylengthunittest_bin_SRCS keylengthunittest.cpp)  
 
-MY_AUTOMOC( keylengthunittest_bin_SRCS )
-
 add_executable( keylengthunittest ${keylengthunittest_bin_SRCS} )
 
 target_link_qca_test_libraries(keylengthunittest)
diff --git a/unittest/keystore/CMakeLists.txt b/unittest/keystore/CMakeLists.txt
index 533ee875..18cccd89 100644
--- a/unittest/keystore/CMakeLists.txt
+++ b/unittest/keystore/CMakeLists.txt
@@ -2,8 +2,6 @@ ENABLE_TESTING()
 
 set(keystoreunittest_bin_SRCS keystore.cpp)  
 
-MY_AUTOMOC( keystoreunittest_bin_SRCS )
-
 add_executable( keystore ${keystoreunittest_bin_SRCS} )
 
 target_link_qca_test_libraries(keystore)
diff --git a/unittest/logger/CMakeLists.txt b/unittest/logger/CMakeLists.txt
index 1380c9b2..7e215ef3 100644
--- a/unittest/logger/CMakeLists.txt
+++ b/unittest/logger/CMakeLists.txt
@@ -1,10 +1,6 @@
 ENABLE_TESTING()
 
-set(loggerunittest_bin_SRCS loggerunittest.cpp)  
-
-MY_AUTOMOC( loggerunittest_bin_SRCS )
-
-add_executable(loggerunittest ${loggerunittest_bin_SRCS} )
+add_executable(loggerunittest loggerunittest.cpp )
 
 target_link_qca_test_libraries(loggerunittest)
 
diff --git a/unittest/logger/loggerunittest.cpp b/unittest/logger/loggerunittest.cpp
index 26f9d96a..82dd966e 100644
--- a/unittest/logger/loggerunittest.cpp
+++ b/unittest/logger/loggerunittest.cpp
@@ -65,7 +65,7 @@ public:
     ~LastLogger()
     {}
 
-    void logTextMessage( const QString &message, enum QCA::Logger::Severity severity )
+    void logTextMessage( const QString &message, enum QCA::Logger::Severity severity ) override
     {
         m_lastMessage = message;
         m_messageSeverity = severity;
@@ -76,7 +76,7 @@ public:
         return m_lastMessage;
     }
 
-    void logBinaryMessage( const QByteArray &blob, enum QCA::Logger::Severity severity )
+    void logBinaryMessage( const QByteArray &blob, enum QCA::Logger::Severity severity ) override
     {
         m_lastBlob = blob;
         m_blobSeverity = severity;
diff --git a/unittest/macunittest/CMakeLists.txt b/unittest/macunittest/CMakeLists.txt
index c44b691b..5b255fc0 100644
--- a/unittest/macunittest/CMakeLists.txt
+++ b/unittest/macunittest/CMakeLists.txt
@@ -2,8 +2,6 @@ ENABLE_TESTING()
 
 set(macunittest_bin_SRCS macunittest.cpp)  
 
-MY_AUTOMOC( macunittest_bin_SRCS )
-
 add_executable( macunittest ${macunittest_bin_SRCS} )
 
 target_link_qca_test_libraries(macunittest)
diff --git a/unittest/metatype/CMakeLists.txt b/unittest/metatype/CMakeLists.txt
index 38a03ef3..466f7656 100644
--- a/unittest/metatype/CMakeLists.txt
+++ b/unittest/metatype/CMakeLists.txt
@@ -2,8 +2,6 @@ ENABLE_TESTING()
 
 set(metatype_bin_SRCS metatype.cpp)  
 
-MY_AUTOMOC( metatype_bin_SRCS )
-
 add_executable( metatypeunittest ${metatype_bin_SRCS} )
 
 target_link_qca_test_libraries(metatypeunittest)
diff --git a/unittest/pgpunittest/CMakeLists.txt b/unittest/pgpunittest/CMakeLists.txt
index 4e3b3df5..7429d6a3 100644
--- a/unittest/pgpunittest/CMakeLists.txt
+++ b/unittest/pgpunittest/CMakeLists.txt
@@ -2,8 +2,6 @@ ENABLE_TESTING()
 
 set(pgpunittest_bin_SRCS pgpunittest.cpp)  
 
-MY_AUTOMOC( pgpunittest_bin_SRCS )
-
 add_executable(pgpunittest ${pgpunittest_bin_SRCS} )
 
 target_link_qca_test_libraries(pgpunittest)
diff --git a/unittest/pipeunittest/CMakeLists.txt b/unittest/pipeunittest/CMakeLists.txt
index 06b1da3a..d6baea57 100644
--- a/unittest/pipeunittest/CMakeLists.txt
+++ b/unittest/pipeunittest/CMakeLists.txt
@@ -2,8 +2,6 @@ ENABLE_TESTING()
 
 set(pipeunittest_bin_SRCS pipeunittest.cpp)  
 
-MY_AUTOMOC( pipeunittest_bin_SRCS )
-
 add_executable( pipeunittest ${pipeunittest_bin_SRCS} )
 
 target_link_qca_test_libraries(pipeunittest)
diff --git a/unittest/pkits/CMakeLists.txt b/unittest/pkits/CMakeLists.txt
index e7ed757f..d9b7181a 100644
--- a/unittest/pkits/CMakeLists.txt
+++ b/unittest/pkits/CMakeLists.txt
@@ -2,8 +2,6 @@ ENABLE_TESTING()
 
 set(pkits_bin_SRCS pkits.cpp)
 
-MY_AUTOMOC( pkits_bin_SRCS )
-
 add_executable(pkits ${pkits_bin_SRCS} )
 
 target_link_qca_test_libraries(pkits)
diff --git a/unittest/rsaunittest/CMakeLists.txt b/unittest/rsaunittest/CMakeLists.txt
index 6be49ba0..708c7785 100644
--- a/unittest/rsaunittest/CMakeLists.txt
+++ b/unittest/rsaunittest/CMakeLists.txt
@@ -2,8 +2,6 @@ ENABLE_TESTING()
 
 set(rsaunittest_bin_SRCS rsaunittest.cpp)  
 
-MY_AUTOMOC( rsaunittest_bin_SRCS )
-
 add_executable(rsaunittest ${rsaunittest_bin_SRCS} )
 
 target_link_qca_test_libraries(rsaunittest)
diff --git a/unittest/securearrayunittest/CMakeLists.txt b/unittest/securearrayunittest/CMakeLists.txt
index d3ea73ed..2d088f05 100644
--- a/unittest/securearrayunittest/CMakeLists.txt
+++ b/unittest/securearrayunittest/CMakeLists.txt
@@ -2,8 +2,6 @@ ENABLE_TESTING()
 
 set(securearrayunittest_bin_SRCS securearrayunittest.cpp)  
 
-MY_AUTOMOC( securearrayunittest_bin_SRCS )
-
 add_executable( securearrayunittest ${securearrayunittest_bin_SRCS} )
 
 target_link_qca_test_libraries(securearrayunittest)
diff --git a/unittest/staticunittest/CMakeLists.txt b/unittest/staticunittest/CMakeLists.txt
index 0bc9e7ae..027e4d03 100644
--- a/unittest/staticunittest/CMakeLists.txt
+++ b/unittest/staticunittest/CMakeLists.txt
@@ -2,8 +2,6 @@ ENABLE_TESTING()
 
 set(staticunittest_bin_SRCS staticunittest.cpp)  
 
-MY_AUTOMOC( staticunittest_bin_SRCS )
-
 add_executable( staticunittest ${staticunittest_bin_SRCS} )
 
 target_link_qca_test_libraries(staticunittest)
diff --git a/unittest/symmetrickeyunittest/CMakeLists.txt b/unittest/symmetrickeyunittest/CMakeLists.txt
index 517fc1a3..f7d1f527 100644
--- a/unittest/symmetrickeyunittest/CMakeLists.txt
+++ b/unittest/symmetrickeyunittest/CMakeLists.txt
@@ -2,8 +2,6 @@ ENABLE_TESTING()
 
 set(symmetrickeyunittest_bin_SRCS symmetrickeyunittest.cpp)  
 
-MY_AUTOMOC( symmetrickeyunittest_bin_SRCS )
-
 add_executable( symmetrickeyunittest ${symmetrickeyunittest_bin_SRCS} )
 
 target_link_qca_test_libraries(symmetrickeyunittest)
diff --git a/unittest/tls/CMakeLists.txt b/unittest/tls/CMakeLists.txt
index 585649d7..b4f621ac 100644
--- a/unittest/tls/CMakeLists.txt
+++ b/unittest/tls/CMakeLists.txt
@@ -2,8 +2,6 @@ ENABLE_TESTING()
 
 set(tlsunittest_bin_SRCS tlsunittest.cpp)  
 
-MY_AUTOMOC( tlsunittest_bin_SRCS )
-
 add_executable(tlsunittest ${tlsunittest_bin_SRCS} )
 
 target_link_qca_test_libraries(tlsunittest)
diff --git a/unittest/velox/CMakeLists.txt b/unittest/velox/CMakeLists.txt
index fb0c324b..f555bb77 100644
--- a/unittest/velox/CMakeLists.txt
+++ b/unittest/velox/CMakeLists.txt
@@ -1,13 +1,13 @@
+find_package(Qt5 REQUIRED Network)
+
 ENABLE_TESTING()
 
 set(veloxunittest_bin_SRCS veloxunittest.cpp)  
 
-MY_AUTOMOC( veloxunittest_bin_SRCS )
-
 add_executable(veloxunittest ${veloxunittest_bin_SRCS} )
 
 target_link_qca_test_libraries(veloxunittest)
-target_link_libraries(veloxunittest ${QT_QTNETWORK_LIBRARY})
+target_link_libraries(veloxunittest Qt5::Network)
 
 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/root.crt ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/root.crt COPYONLY)