+pkg_check_modules(PKGDEPS REQUIRED ${PKGDEPS})
+
+if(FORCE_QT4)
+ set(Qt5Core_FOUND FALSE)
+else()
+ find_package(Qt5Core QUIET)
+endif()
+
+if(Qt5Core_FOUND)
+ message("-- Using Qt5")
+ find_package(Qt5Widgets REQUIRED)
+ find_package(Qt5Gui REQUIRED)
+ find_package(Qt5Svg REQUIRED)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
+ set(QT_INCLUDE_DIRS ${Qt5Gui_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS})
+ set(QT_LIBRARIES Qt5::Gui Qt5::Widgets Qt5::Svg)
+ add_definitions(${Qt5Gui_DEFINITIONS} ${Qt5Widgets_DEFINITIONS})
+else()
+ find_program(QT_QMAKE_EXECUTABLE NAMES qmake4 qmake-qt4 qmake-mac)
+ find_package(Qt4 REQUIRED QtCore QtGui QtSvg)
+endif()
+
+if(ENABLE_TESTS)
+ find_package(Boost 1.42 COMPONENTS filesystem system thread unit_test_framework REQUIRED)
+else()
+ find_package(Boost 1.42 COMPONENTS filesystem system thread REQUIRED)
+endif()
+
+# Find the platform's thread library (needed for C++11 threads).
+# This will set ${CMAKE_THREAD_LIBS_INIT} to the correct, OS-specific value.
+find_package(Threads REQUIRED)
+
+#===============================================================================
+#= System Introspection
+#-------------------------------------------------------------------------------
+
+include(memaccess)
+memaccess_check_unaligned_le(HAVE_UNALIGNED_LITTLE_ENDIAN_ACCESS)
+
+#===============================================================================
+#= Config Header
+#-------------------------------------------------------------------------------
+
+set(PV_TITLE PulseView)
+set(PV_DESCRIPTION "A GUI for sigrok")
+
+include(GetGitRevisionDescription)
+git_describe(PV_NAME_VERSION_STRING)
+
+if(NOT PV_NAME_VERSION_STRING)
+ # Read the version from a file that is distributed with
+ # the source package (see writepackageversion.cmake).
+ file(STRINGS "${PROJECT_SOURCE_DIR}/VERSION" PV_NAME_VERSION_STRING LIMIT_COUNT 1)
+endif()
+
+if(PV_NAME_VERSION_STRING MATCHES "^pulseview-([0-9]+)\\.([0-9]+)\\.([0-9]+)(-[-0-9a-z]+)?$")
+ set(PV_VERSION_MAJOR ${CMAKE_MATCH_1})
+ set(PV_VERSION_MINOR ${CMAKE_MATCH_2})
+ set(PV_VERSION_MICRO ${CMAKE_MATCH_3})
+ set(PV_VERSION_SUFFIX ${CMAKE_MATCH_4})
+else()
+ message(FATAL_ERROR "-- Cannot get the ${PV_TITLE} version from anywhere")
+endif()
+
+set(PV_VERSION_STRING
+ ${PV_VERSION_MAJOR}.${PV_VERSION_MINOR}.${PV_VERSION_MICRO}${PV_VERSION_SUFFIX}