option(DISABLE_WERROR "Build without -Werror" FALSE)
option(ENABLE_SIGNALS "Build with UNIX signals" TRUE)
+option(ENABLE_STACKTRACE "Enable stack trace when crashing" FALSE)
option(ENABLE_DECODE "Build with libsigrokdecode" TRUE)
option(ENABLE_TESTS "Enable unit tests" TRUE)
option(STATIC_PKGDEPS_LIBS "Statically link to (pkg-config) libraries" FALSE)
if(WIN32)
# MXE workaround: Use pkg-config to find Qt5 libs.
# https://github.com/mxe/mxe/issues/1642
- pkg_check_modules(QT5ALL REQUIRED Qt5Widgets Qt5Gui Qt5Svg)
+ # Not required (and doesn't work) on MSYS2.
+ if(NOT DEFINED ENV{MSYSTEM})
+ pkg_check_modules(QT5ALL REQUIRED Qt5Widgets Qt5Gui Qt5Svg)
+ endif()
endif()
set(QT_LIBRARIES Qt5::Gui Qt5::Widgets Qt5::Svg)
if(ENABLE_TESTS)
list(APPEND BOOSTCOMPS unit_test_framework)
endif()
-find_package(Boost 1.55 COMPONENTS ${BOOSTCOMPS} REQUIRED)
+
+if(ENABLE_STACKTRACE)
+ find_package(Boost 1.65.1 COMPONENTS ${BOOSTCOMPS} REQUIRED)
+else()
+ find_package(Boost 1.55 COMPONENTS ${BOOSTCOMPS} 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.
pv/application.cpp
pv/devicemanager.cpp
pv/globalsettings.cpp
+ pv/logging.cpp
pv/mainwindow.cpp
pv/session.cpp
pv/storesession.cpp
# This list includes only QObject derived class headers.
set(pulseview_HEADERS
+ pv/logging.hpp
pv/globalsettings.hpp
pv/mainwindow.hpp
pv/session.hpp
add_definitions(-DENABLE_SIGNALS)
endif()
+if(ENABLE_STACKTRACE)
+ add_definitions(-DENABLE_STACKTRACE)
+endif()
+
#===============================================================================
#= Global Include Directories
#-------------------------------------------------------------------------------
if(WIN32)
# On Windows we need to statically link the libqsvg imageformat
# plugin (and the QtSvg component) for SVG graphics/icons to work.
- # We also need QWindowsIntegrationPlugin, Qt5PlatformSupport, and all
- # Qt libs and their dependencies.
+ # We also need QWindowsIntegrationPlugin, Qt5PlatformSupport (only for
+ # Qt < 5.8.0), and all Qt libs and their dependencies.
add_definitions(-DQT_STATICPLUGIN)
list(APPEND PULSEVIEW_LINK_LIBS Qt5::QSvgPlugin)
list(APPEND PULSEVIEW_LINK_LIBS Qt5::QWindowsIntegrationPlugin)
- list(APPEND PULSEVIEW_LINK_LIBS -lQt5PlatformSupport ${QT5ALL_LDFLAGS})
+ if(Qt5Gui_VERSION VERSION_LESS 5.8.0)
+ list(APPEND PULSEVIEW_LINK_LIBS -lQt5PlatformSupport)
+ endif()
+ list(APPEND PULSEVIEW_LINK_LIBS ${QT5ALL_LDFLAGS})
+endif()
+
+if(ENABLE_STACKTRACE)
+ # Needed to resolve dladdr.
+ list(APPEND PULSEVIEW_LINK_LIBS "-ldl")
endif()
if(ANDROID)