X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=CMakeLists.txt;h=f99774659e67d3e574daf41a855ea8b9b172606a;hp=3f9009abf4e7eca49172d75be855bdb13f01d46a;hb=67ef1e478845fc44a8fccba025103c7a4314e369;hpb=1c4c23b87cde3778792caa1400030075b0504129 diff --git a/CMakeLists.txt b/CMakeLists.txt index 3f9009ab..f9977465 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,7 +20,6 @@ cmake_minimum_required(VERSION 2.8.6) -include(FindPkgConfig) include(GNUInstallDirs) project(pulseview) @@ -34,7 +33,7 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMake") option(DISABLE_WERROR "Build without -Werror" FALSE) option(ENABLE_SIGNALS "Build with UNIX signals" TRUE) option(ENABLE_DECODE "Build with libsigrokdecode" TRUE) -option(ENABLE_TESTS "Enable unit tests" FALSE) +option(ENABLE_TESTS "Enable unit tests" TRUE) option(STATIC_PKGDEPS_LIBS "Statically link to (pkg-config) libraries" FALSE) option(FORCE_QT4 "Force use of Qt4 even if Qt5 is available" FALSE) @@ -65,10 +64,10 @@ endif() #= Dependencies #------------------------------------------------------------------------------- -list(APPEND PKGDEPS libsigrokxx>=0.3.0) +list(APPEND PKGDEPS libsigrokcxx>=0.4.0) if(ENABLE_DECODE) - list(APPEND PKGDEPS libsigrokdecode>=0.3.0) + list(APPEND PKGDEPS libsigrokdecode>=0.4.0) endif() if(ANDROID) @@ -99,9 +98,9 @@ else() endif() if(ENABLE_TESTS) - find_package(Boost 1.42 COMPONENTS filesystem system thread unit_test_framework REQUIRED) + find_package(Boost 1.48 COMPONENTS filesystem system thread unit_test_framework REQUIRED) else() - find_package(Boost 1.42 COMPONENTS filesystem system thread REQUIRED) + find_package(Boost 1.48 COMPONENTS filesystem system thread REQUIRED) endif() # Find the platform's thread library (needed for C++11 threads). @@ -121,13 +120,28 @@ memaccess_check_unaligned_le(HAVE_UNALIGNED_LITTLE_ENDIAN_ACCESS) set(PV_TITLE PulseView) set(PV_DESCRIPTION "A GUI for sigrok") +set(PV_VERSION_STRING "0.3.0") + +include(GetGitRevisionDescription) + +# Append the revision hash unless we are exactly on a tagged release. +git_describe(PV_TAG_VERSION_STRING --match "pulseview-${PV_VERSION_STRING}" --exact-match) +if(NOT PV_TAG_VERSION_STRING) + get_git_head_revision(PV_REVSPEC PV_HASH) + if(PV_HASH) + string(SUBSTRING "${PV_HASH}" 0 7 PV_SHORTHASH) + set(PV_VERSION_STRING "${PV_VERSION_STRING}-git-${PV_SHORTHASH}") + endif() +endif() -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} -) +if(PV_VERSION_STRING MATCHES "^([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}) +endif() + +message("-- ${PV_TITLE} version: ${PV_VERSION_STRING}") configure_file ( ${PROJECT_SOURCE_DIR}/config.h.in @@ -146,14 +160,23 @@ set(pulseview_SOURCES pv/session.cpp pv/storesession.cpp pv/util.cpp + pv/binding/binding.cpp + pv/binding/inputoutput.cpp + pv/binding/device.cpp pv/data/analog.cpp pv/data/analogsegment.cpp pv/data/logic.cpp pv/data/logicsegment.cpp pv/data/signaldata.cpp pv/data/segment.cpp + pv/devices/device.cpp + pv/devices/file.cpp + 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/storeprogress.cpp pv/popups/deviceoptions.cpp pv/popups/channels.cpp @@ -163,8 +186,6 @@ set(pulseview_SOURCES pv/prop/int.cpp pv/prop/property.cpp pv/prop/string.cpp - pv/prop/binding/binding.cpp - pv/prop/binding/deviceoptions.cpp pv/toolbars/mainbar.cpp pv/view/analogsignal.cpp pv/view/cursor.cpp @@ -174,26 +195,33 @@ set(pulseview_SOURCES pv/view/marginwidget.cpp pv/view/logicsignal.cpp pv/view/rowitem.cpp - pv/view/rowitemowner.cpp pv/view/ruler.cpp pv/view/signal.cpp + pv/view/signalscalehandle.cpp pv/view/timeitem.cpp pv/view/timemarker.cpp pv/view/trace.cpp pv/view/tracegroup.cpp pv/view/tracepalette.cpp + pv/view/tracetreeitem.cpp + pv/view/tracetreeitemowner.cpp + pv/view/triggermarker.cpp pv/view/view.cpp pv/view/viewitem.cpp + pv/view/viewitemowner.cpp pv/view/viewitempaintparams.cpp pv/view/viewport.cpp pv/view/viewwidget.cpp pv/widgets/colourbutton.cpp pv/widgets/colourpopup.cpp pv/widgets/devicetoolbutton.cpp + pv/widgets/exportmenu.cpp pv/widgets/hidingmenubar.cpp + pv/widgets/importmenu.cpp pv/widgets/popup.cpp pv/widgets/popuptoolbutton.cpp pv/widgets/sweeptimingwidget.cpp + pv/widgets/timestampspinbox.cpp pv/widgets/wellarray.cpp ) @@ -202,8 +230,10 @@ set(pulseview_HEADERS pv/mainwindow.hpp pv/session.hpp pv/storesession.hpp + pv/binding/device.hpp pv/dialogs/about.hpp pv/dialogs/connect.hpp + pv/dialogs/inputoutputoptions.hpp pv/dialogs/storeprogress.hpp pv/popups/channels.hpp pv/popups/deviceoptions.hpp @@ -213,7 +243,6 @@ set(pulseview_HEADERS pv/prop/int.hpp pv/prop/property.hpp pv/prop/string.hpp - pv/prop/binding/deviceoptions.hpp pv/toolbars/mainbar.hpp pv/view/cursor.hpp pv/view/flag.hpp @@ -223,10 +252,13 @@ set(pulseview_HEADERS pv/view/rowitem.hpp pv/view/ruler.hpp pv/view/signal.hpp + pv/view/signalscalehandle.hpp pv/view/timeitem.hpp pv/view/timemarker.hpp pv/view/trace.hpp pv/view/tracegroup.hpp + pv/view/tracetreeitem.hpp + pv/view/triggermarker.hpp pv/view/view.hpp pv/view/viewitem.hpp pv/view/viewport.hpp @@ -234,10 +266,13 @@ set(pulseview_HEADERS pv/widgets/colourbutton.hpp pv/widgets/colourpopup.hpp pv/widgets/devicetoolbutton.hpp + pv/widgets/exportmenu.hpp pv/widgets/hidingmenubar.hpp + pv/widgets/importmenu.hpp pv/widgets/popup.hpp pv/widgets/popuptoolbutton.hpp pv/widgets/sweeptimingwidget.hpp + pv/widgets/timestampspinbox.hpp pv/widgets/wellarray.hpp ) @@ -256,12 +291,12 @@ endif() if(ENABLE_DECODE) list(APPEND pulseview_SOURCES + pv/binding/decoder.cpp pv/data/decoderstack.cpp pv/data/decode/annotation.cpp pv/data/decode/decoder.cpp pv/data/decode/row.cpp pv/data/decode/rowdata.cpp - pv/prop/binding/decoderoptions.cpp pv/view/decodetrace.cpp pv/widgets/decodergroupbox.cpp pv/widgets/decodermenu.cpp @@ -283,7 +318,10 @@ if(WIN32) endif() if(ANDROID) - list(APPEND pulseview_SOURCES android/loghandler.cpp) + list(APPEND pulseview_SOURCES + android/assetreader.cpp + android/loghandler.cpp + ) endif() if(Qt5Core_FOUND) @@ -291,7 +329,10 @@ if(Qt5Core_FOUND) qt5_wrap_ui(pulseview_FORMS_HEADERS ${pulseview_FORMS}) qt5_add_resources(pulseview_RESOURCES_RCC ${pulseview_RESOURCES}) else() - qt4_wrap_cpp(pulseview_HEADERS_MOC ${pulseview_HEADERS}) + # Workaroud 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}) @@ -405,6 +446,9 @@ install(TARGETS ${PROJECT_NAME} DESTINATION bin/) # Install the manpage. install(FILES doc/pulseview.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 COMPONENT doc) +# Generate Windows installer script. +configure_file(contrib/pulseview_cross.nsi.in contrib/pulseview_cross.nsi @ONLY) + #=============================================================================== #= Packaging (handled by CPack) #------------------------------------------------------------------------------- @@ -415,8 +459,7 @@ set(CPACK_PACKAGE_VERSION_PATCH ${PV_VERSION_MICRO}) set(CPACK_PACKAGE_DESCRIPTION_FILE ${CMAKE_CURRENT_SOURCE_DIR}/README) set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/COPYING) set(CPACK_SOURCE_IGNORE_FILES ${CMAKE_CURRENT_BINARY_DIR} ".gitignore" ".git") -set(CPACK_SOURCE_PACKAGE_FILE_NAME - "${CMAKE_PROJECT_NAME}-${PV_VERSION_MAJOR}.${PV_VERSION_MINOR}.${PV_VERSION_MICRO}") +set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${PV_VERSION_STRING}") set(CPACK_SOURCE_GENERATOR "TGZ") include(CPack)