+find_package(PkgConfig)
+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)
+ 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)
+ add_definitions(${Qt5Gui_DEFINITIONS} ${Qt5Widgets_DEFINITIONS})
+else()
+ find_program(QT_QMAKE_EXECUTABLE NAMES qmake4 qmake-qt4 qmake-mac)
+ find_package(Qt4 REQUIRED)
+endif()
+
+find_package(Boost 1.42 COMPONENTS filesystem system 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")
+
+set(PV_VERSION_MAJOR 0)
+set(PV_VERSION_MINOR 2)
+set(PV_VERSION_MICRO 0)
+set(PV_VERSION_STRING
+ ${PV_VERSION_MAJOR}.${PV_VERSION_MINOR}.${PV_VERSION_MICRO}
+)
+
+configure_file (
+ ${PROJECT_SOURCE_DIR}/config.h.in
+ ${PROJECT_BINARY_DIR}/config.h
+)
+
+#===============================================================================
+#= Sources
+#-------------------------------------------------------------------------------