--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -21,8 +21,9 @@
 ########################################################################
 # Project setup
 ########################################################################
-cmake_minimum_required(VERSION 2.8)
+cmake_minimum_required(VERSION 3.1)
 project(gr-radar CXX C)
+set(CMAKE_CXX_STANDARD 11)
 enable_testing()
 
 #select the release build type by default to get optimization flags
@@ -34,28 +35,6 @@
 
 list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)
 
-# Set C++ standard for all targets
-IF(CMAKE_VERSION VERSION_GREATER 3.1)
-    set(CMAKE_CXX_STANDARD 11)
-ENDIF()
-
-# Set cmake policies.
-# This will suppress developer warnings during the cmake process that can occur
-# if a newer cmake version than the minimum is used.
-
-if(POLICY CMP0026)
-    cmake_policy(SET CMP0026 OLD)
-endif()
-if(POLICY CMP0043)
-    cmake_policy(SET CMP0043 OLD)
-endif()
-if(POLICY CMP0045)
-    cmake_policy(SET CMP0045 OLD)
-endif()
-if(POLICY CMP0046)
-    cmake_policy(SET CMP0046 OLD)
-endif()
-
 ########################################################################
 # Compiler specific setup
 ########################################################################
@@ -128,7 +107,7 @@
 find_package(CppUnit)
 find_package(Doxygen)
 find_package(FFTW3F)
-find_package(Qt4 4.2.0 COMPONENTS QtCore QtGui)
+find_package(Qt5 COMPONENTS Core Widgets REQUIRED)
 find_package(Qwt 6.0.0)
 find_package(UHD)
 find_package(Doxygen)
@@ -145,9 +124,6 @@
     message(FATAL_ERROR "CppUnit required to compile blub")
 endif()
 
-# populate the environment with QT variables
-include(GrSetupQt4)
-
 ########################################################################
 # Setup doxygen option
 ########################################################################
@@ -157,33 +133,6 @@
 	option(ENABLE_DOXYGEN "Build docs using Doxygen" OFF)
 endif(DOXYGEN_FOUND)
 
-########################################################################
-# Setup the include and linker paths
-########################################################################
-include_directories(
-    ${CMAKE_SOURCE_DIR}/lib
-    ${CMAKE_SOURCE_DIR}/include
-    ${CMAKE_BINARY_DIR}/lib
-    ${CMAKE_BINARY_DIR}/include
-    ${Boost_INCLUDE_DIRS}
-    ${CPPUNIT_INCLUDE_DIRS}
-    ${GNURADIO_ALL_INCLUDE_DIRS}
-    ${FFTW3F_INCLUDE_DIRS}
-    ${QWT_INCLUDE_DIRS}
-    ${QT_INCLUDE_DIRS}
-    ${UHD_INCLUDE_DIRS}
-)
-
-link_directories(
-    ${Boost_LIBRARY_DIRS}
-    ${CPPUNIT_LIBRARY_DIRS}
-    ${GNURADIO_RUNTIME_LIBRARY_DIRS}
-    ${FFTW3F_LIBRARY_DIRS}
-    ${QWT_LIBRARY_DIRS}
-    ${QT_LIBRARY_DIRS}
-    ${UHD_LIBRARY_DIRS}
-)
-
 # Set component parameters
 set(GR_RADAR_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include CACHE INTERNAL "" FORCE)
 set(GR_RADAR_SWIG_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/swig CACHE INTERNAL "" FORCE)
--- a/cmake/Modules/FindQwt.cmake
+++ b/cmake/Modules/FindQwt.cmake
@@ -21,7 +21,7 @@
 )
 
 find_library (QWT_LIBRARIES
-  NAMES qwt6 qwt qwt-qt4
+  NAMES qwt-qt5 qwt6 qwt qwt-qt4
   HINTS
   ${CMAKE_INSTALL_PREFIX}/lib
   ${CMAKE_INSTALL_PREFIX}/lib64
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright 2011,2012 Free Software Foundation, Inc.
+# Copyright 2011,2012,2018 Free Software Foundation, Inc.
 #
 # This file is part of GNU Radio
 #
@@ -20,64 +20,64 @@
 ########################################################################
 # QT GUI file generation stuff (Q_OBJECT)
 ########################################################################
-set(QTGUI_MOC_HEADERS
-	scatter_plot.h
-	time_plot.h
-	spectrogram_plot.h)
-QT4_WRAP_CPP(QTGUI_MOC_OUTFILES ${QTGUI_MOC_HEADERS})
+# Find includes in corresponding build directories
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+# Instruct CMake to run moc automatically when needed
+set(CMAKE_AUTOMOC ON)
+# Create code from a list of Qt designer ui files
+set(CMAKE_AUTOUIC ON)
 
 ########################################################################
 # Setup library
 ########################################################################
 include(GrPlatform) #define LIB_SUFFIX
 
-include_directories(${Boost_INCLUDE_DIR})
-link_directories(${Boost_LIBRARY_DIRS})
-list(APPEND radar_sources
-	${QTGUI_MOC_OUTFILES}
-	scatter_plot.cc
-	time_plot.cc
-	spectrogram_plot.cc
-    signal_generator_cw_c_impl.cc
-    signal_generator_fmcw_c_impl.cc
-    split_cc_impl.cc
-    os_cfar_c_impl.cc
-    ts_fft_cc_impl.cc
-    estimator_cw_impl.cc
-    print_results_impl.cc
-    static_target_simulator_cc_impl.cc
-    signal_generator_fsk_c_impl.cc
-    split_fsk_cc_impl.cc
-    estimator_fsk_impl.cc
-    usrp_echotimer_cc_impl.cc
-    estimator_fmcw_impl.cc
-    signal_generator_sync_pulse_c_impl.cc
-    estimator_sync_pulse_c_impl.cc
-    find_max_peak_c_impl.cc
-    qtgui_scatter_plot_impl.cc
-    qtgui_time_plot_impl.cc
-    tracking_singletarget_impl.cc
-    msg_gate_impl.cc
-    msg_manipulator_impl.cc
-    ofdm_cyclic_prefix_remover_cvc_impl.cc
-    transpose_matrix_vcvc_impl.cc
-    qtgui_spectrogram_plot_impl.cc
-    crop_matrix_vcvc_impl.cc
-    ofdm_divide_vcvc_impl.cc
-    os_cfar_2d_vc_impl.cc
-    estimator_ofdm_impl.cc
-    estimator_rcs_impl.cc
-    trigger_command_impl.cc
-    )
-
-set(radar_sources "${radar_sources}" PARENT_SCOPE)
-if(NOT radar_sources)
-	MESSAGE(STATUS "No C++ sources... skipping lib/")
-	return()
-endif(NOT radar_sources)
-
-add_library(gnuradio-radar SHARED ${radar_sources})
-target_link_libraries(gnuradio-radar ${Boost_LIBRARIES} ${GNURADIO_ALL_LIBRARIES} ${FFTW3F_LIBRARIES} ${QWT_LIBRARIES} ${QT_LIBRARIES} ${UHD_LIBRARIES})
+add_library(gnuradio-radar SHARED
+  ${QTGUI_MOC_OUTFILES}
+  scatter_plot.cc
+  time_plot.cc
+  spectrogram_plot.cc
+  signal_generator_cw_c_impl.cc
+  signal_generator_fmcw_c_impl.cc
+  split_cc_impl.cc
+  os_cfar_c_impl.cc
+  ts_fft_cc_impl.cc
+  estimator_cw_impl.cc
+  print_results_impl.cc
+  static_target_simulator_cc_impl.cc
+  signal_generator_fsk_c_impl.cc
+  split_fsk_cc_impl.cc
+  estimator_fsk_impl.cc
+  usrp_echotimer_cc_impl.cc
+  estimator_fmcw_impl.cc
+  signal_generator_sync_pulse_c_impl.cc
+  estimator_sync_pulse_c_impl.cc
+  find_max_peak_c_impl.cc
+  qtgui_scatter_plot_impl.cc
+  qtgui_time_plot_impl.cc
+  tracking_singletarget_impl.cc
+  msg_gate_impl.cc
+  msg_manipulator_impl.cc
+  ofdm_cyclic_prefix_remover_cvc_impl.cc
+  transpose_matrix_vcvc_impl.cc
+  qtgui_spectrogram_plot_impl.cc
+  crop_matrix_vcvc_impl.cc
+  ofdm_divide_vcvc_impl.cc
+  os_cfar_2d_vc_impl.cc
+  estimator_ofdm_impl.cc
+  estimator_rcs_impl.cc
+  trigger_command_impl.cc
+  )
+target_include_directories(gnuradio-radar PUBLIC
+  ${Qt5Widgets_INCLUDE_DIRS} ${GNURADIO_ALL_INCLUDE_DIRS} ${FFTW3F_INCLUDE_DIRS}
+  ${QWT_INCLUDE_DIRS} ${QT_INCLUDE_DIRS} ${UHD_INCLUDE_DIRS}
+  $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/include>
+  $<INSTALL_INTERFACE:include/radar>)
+target_include_directories(gnuradio-radar PRIVATE
+  $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/lib>)
+target_link_libraries(gnuradio-radar
+  Boost::filesystem Boost::system ${GNURADIO_ALL_LIBRARIES} ${FFTW3F_LIBRARIES}
+  ${QWT_LIBRARIES} ${QT_LIBRARIES} ${UHD_LIBRARIES})
 set_target_properties(gnuradio-radar PROPERTIES DEFINE_SYMBOL "gnuradio_radar_EXPORTS")
 set_target_properties(gnuradio-radar PROPERTIES OUTPUT_NAME gnuradio-radar)
 set_target_properties(gnuradio-radar PROPERTIES SOVERSION 3.7 VERSION 3.7)
@@ -102,25 +102,19 @@
 ########################################################################
 include(GrTest)
 
-include_directories(${CPPUNIT_INCLUDE_DIRS})
-
-list(APPEND test_radar_sources
-    ${CMAKE_CURRENT_SOURCE_DIR}/test_radar.cc
-    ${CMAKE_CURRENT_SOURCE_DIR}/qa_radar.cc
-)
-
-add_executable(test-radar ${test_radar_sources})
-
+add_executable(test-radar test_radar.cc qa_radar.cc)
+target_include_directories(test-radar PRIVATE ${CPPUNIT_INCLUDE_DIRS})
 target_link_libraries(
   test-radar
   ${GNURADIO_RUNTIME_LIBRARIES}
-  ${Boost_LIBRARIES}
   ${CPPUNIT_LIBRARIES}
   ${FFTW3F_LIBRARY_DIRS}
   ${QWT_LIBRARIES}
   ${QT_LIBRARIES}
   ${UHD_LIBRARY_DIRS}
   gnuradio-radar
+  Boost::filesystem
+  Boost::system
 )
 
 GR_ADD_TEST(test_radar test-radar)
--- a/swig/CMakeLists.txt
+++ b/swig/CMakeLists.txt
@@ -18,14 +18,6 @@
 # Boston, MA 02110-1301, USA.
 
 ########################################################################
-# Check if there is C++ code at all
-########################################################################
-if(NOT radar_sources)
-	MESSAGE(STATUS "No C++ sources... skipping swig/")
-	return()
-endif(NOT radar_sources)
-
-########################################################################
 # Include swig generation macros
 ########################################################################
 find_package(SWIG)
@@ -43,6 +35,12 @@
     list(APPEND GR_SWIG_INCLUDE_DIRS ${incdir}/gnuradio/swig)
 endforeach(incdir)
 
+list(APPEND GR_SWIG_INCLUDE_DIRS
+  ${CMAKE_SOURCE_DIR}/include
+  ${CMAKE_SOURCE_DIR}/lib
+  ${CMAKE_BINARY_DIR}/include
+  ${CMAKE_BINARY_DIR}/lib
+  ${GNURADIO_ALL_INCLUDE_DIRS})
 set(GR_SWIG_LIBRARIES gnuradio-radar)
 set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/radar_swig_doc.i)
 set(GR_SWIG_DOC_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/../include)
