X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=CMakeLists.txt;h=f4325bf7dcfdb16928a53a1fc62559e3e3342fda;hp=69e62ee5e4dd3bed6757c1e20a1a3756ab66c377;hb=9cc264b4361acc503f156e90139c15cd6c324258;hpb=3a21afa6a5dfc06c17f127960bb0038fd322f213 diff --git a/CMakeLists.txt b/CMakeLists.txt index 69e62ee5..f4325bf7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -81,6 +81,11 @@ if(FORCE_QT4) set(Qt5Core_FOUND FALSE) else() find_package(Qt5Core QUIET) +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) +endif() endif() if(Qt5Core_FOUND) @@ -97,11 +102,11 @@ else() find_package(Qt4 REQUIRED QtCore QtGui QtSvg) endif() +set(BOOSTCOMPS filesystem serialization system thread) if(ENABLE_TESTS) - find_package(Boost 1.53 COMPONENTS filesystem serialization system thread unit_test_framework REQUIRED) -else() - find_package(Boost 1.53 COMPONENTS filesystem serialization system thread REQUIRED) + list(APPEND BOOSTCOMPS unit_test_framework) endif() +find_package(Boost 1.55 COMPONENTS ${BOOSTCOMPS} REQUIRED) # Find the platform's thread library (needed for C++11 threads). # This will set ${CMAKE_THREAD_LIBS_INIT} to the correct, OS-specific value. @@ -205,6 +210,7 @@ set(pulseview_SOURCES main.cpp pv/application.cpp pv/devicemanager.cpp + pv/globalsettings.cpp pv/mainwindow.cpp pv/session.cpp pv/storesession.cpp @@ -224,9 +230,9 @@ set(pulseview_SOURCES pv/devices/hardwaredevice.cpp pv/devices/inputfile.cpp pv/devices/sessionfile.cpp - pv/dialogs/about.cpp pv/dialogs/connect.cpp pv/dialogs/inputoutputoptions.cpp + pv/dialogs/settings.cpp pv/dialogs/storeprogress.cpp pv/popups/deviceoptions.cpp pv/popups/channels.cpp @@ -262,6 +268,8 @@ set(pulseview_SOURCES pv/view/viewitempaintparams.cpp pv/view/viewport.cpp pv/view/viewwidget.cpp + pv/views/viewbase.cpp + pv/views/trace/standardbar.cpp pv/widgets/colourbutton.cpp pv/widgets/colourpopup.cpp pv/widgets/devicetoolbutton.cpp @@ -276,14 +284,19 @@ set(pulseview_SOURCES # This list includes only QObject derived class headers. set(pulseview_HEADERS + pv/globalsettings.hpp pv/mainwindow.hpp pv/session.hpp pv/storesession.hpp pv/binding/device.hpp + pv/data/analog.hpp + pv/data/analogsegment.hpp + pv/data/logic.hpp + pv/data/logicsegment.hpp pv/data/signalbase.hpp - pv/dialogs/about.hpp pv/dialogs/connect.hpp pv/dialogs/inputoutputoptions.hpp + pv/dialogs/settings.hpp pv/dialogs/storeprogress.hpp pv/popups/channels.hpp pv/popups/deviceoptions.hpp @@ -314,6 +327,8 @@ set(pulseview_HEADERS pv/view/viewitem.hpp pv/view/viewport.hpp pv/view/viewwidget.hpp + pv/views/viewbase.hpp + pv/views/trace/standardbar.hpp pv/widgets/colourbutton.hpp pv/widgets/colourpopup.hpp pv/widgets/devicetoolbutton.hpp @@ -326,10 +341,6 @@ set(pulseview_HEADERS pv/widgets/wellarray.hpp ) -set(pulseview_FORMS - pv/dialogs/about.ui -) - set(pulseview_RESOURCES pulseview.qrc ) @@ -376,14 +387,12 @@ endif() if(Qt5Core_FOUND) qt5_wrap_cpp(pulseview_HEADERS_MOC ${pulseview_HEADERS}) - qt5_wrap_ui(pulseview_FORMS_HEADERS ${pulseview_FORMS}) qt5_add_resources(pulseview_RESOURCES_RCC ${pulseview_RESOURCES}) else() # Workaround for QTBUG-22829: -DBOOST_NEXT_PRIOR_HPP_INCLUDED. # https://bugreports.qt.io/browse/QTBUG-22829 qt4_wrap_cpp(pulseview_HEADERS_MOC ${pulseview_HEADERS} OPTIONS -DBOOST_NEXT_PRIOR_HPP_INCLUDED) - qt4_wrap_ui(pulseview_FORMS_HEADERS ${pulseview_FORMS}) qt4_add_resources(pulseview_RESOURCES_RCC ${pulseview_RESOURCES}) include(${QT_USE_FILE}) endif() @@ -396,6 +405,7 @@ add_definitions(${QT_DEFINITIONS} -DQT_NO_KEYWORDS) add_definitions(-D__STDC_LIMIT_MACROS) add_definitions(-Wall -Wextra) add_definitions(-std=c++11) +add_definitions(-DBOOST_MATH_DISABLE_FLOAT128=1) if(ENABLE_DECODE) add_definitions(-DENABLE_DECODE) @@ -441,11 +451,7 @@ set(PULSEVIEW_LINK_LIBS if(STATIC_PKGDEPS_LIBS) link_directories(${PKGDEPS_STATIC_LIBRARY_DIRS}) - list(APPEND PULSEVIEW_LINK_LIBS ${PKGDEPS_STATIC_LIBRARIES}) -if(WIN32) - # Workaround for a MinGW linking issue. - list(APPEND PULSEVIEW_LINK_LIBS "-llzma -llcms2") -endif() + list(APPEND PULSEVIEW_LINK_LIBS ${PKGDEPS_STATIC_LDFLAGS}) else() link_directories(${PKGDEPS_LIBRARY_DIRS}) list(APPEND PULSEVIEW_LINK_LIBS ${PKGDEPS_LIBRARIES}) @@ -454,10 +460,12 @@ endif() 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. add_definitions(-DQT_STATICPLUGIN) - link_directories("${QT_PLUGINS_DIR}/imageformats") - list(APPEND PULSEVIEW_LINK_LIBS "-lqsvg") - list(APPEND PULSEVIEW_LINK_LIBS ${QT_QTSVG_LIBRARY}) + list(APPEND PULSEVIEW_LINK_LIBS Qt5::QSvgPlugin) + list(APPEND PULSEVIEW_LINK_LIBS Qt5::QWindowsIntegrationPlugin) + list(APPEND PULSEVIEW_LINK_LIBS -lQt5PlatformSupport ${QT5ALL_LDFLAGS}) endif() if(ANDROID) @@ -468,14 +476,12 @@ if(ANDROID) add_library(${PROJECT_NAME} SHARED ${pulseview_SOURCES} ${pulseview_HEADERS_MOC} - ${pulseview_FORMS_HEADERS} ${pulseview_RESOURCES_RCC} ) else() add_executable(${PROJECT_NAME} ${pulseview_SOURCES} ${pulseview_HEADERS_MOC} - ${pulseview_FORMS_HEADERS} ${pulseview_RESOURCES_RCC} ) endif()