From a91c707837d05acb0282ba1f6685222b79a0cd91 Mon Sep 17 00:00:00 2001 From: Danny Edel Date: Mon, 31 Aug 2015 23:02:02 +0200 Subject: [PATCH 1/5] Qt5: Depend on version 5.1.1 --- CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5ba5b0bc..4c9f8e32 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,7 +29,9 @@ option(UseQtFive "Build with Qt5 and libpoppler-qt5" OFF) if(UseQtFive) #qt5 message(STATUS "Using Qt5 and libpoppler-qt5") - find_package(Qt5Core REQUIRED) + find_package(Qt5Core 5.1.1 REQUIRED) + # On lower versions, QTBUG-32100 prevents compilation at least on clang + # https://bugreports.qt.io/browse/QTBUG-32100 find_package(Qt5Gui REQUIRED) find_package(Qt5Widgets REQUIRED) find_library(POPPLER NAMES poppler-qt5) From 7d211d10fcfc31c1fb8e94bd0a40305c5d141ff2 Mon Sep 17 00:00:00 2001 From: Danny Edel Date: Wed, 2 Sep 2015 13:21:53 +0200 Subject: [PATCH 2/5] qt5: Don't allow any more failures When depending on the qt version that actually fixes the bug, builds should not fail during compile anymore. They will either not even start compiling if Qt5 is too old, or any mistake they catch during compile is a legitimate bug. --- .travis.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1f45233f..c86af2f4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,9 +10,6 @@ env: - BUILDSYSTEM=outside matrix: fast_finish: true - allow_failures: - - compiler: clang - env: CMAKE_PARAMETERS="-DUseQtFive=ON" install: - _travis/install_dependencies script: From 671eb1b9d65b9279174504f5ac2999c8e29a02bc Mon Sep 17 00:00:00 2001 From: Danny Edel Date: Thu, 17 Sep 2015 15:34:05 +0200 Subject: [PATCH 3/5] travis: Build on the trusty beta infrastructure --- .travis.yml | 4 ++-- _travis/install_dependencies | 3 --- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index c86af2f4..9503ea1d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,13 +1,13 @@ language: cpp sudo: required +services: + - docker compiler: - clang - gcc env: - CMAKE_PARAMETERS="-DUseQtFive=ON" - CMAKE_PARAMETERS="-DUseQtFive=OFF" - - BUILDSYSTEM=debian DEPSYSTEM=debian - - BUILDSYSTEM=outside matrix: fast_finish: true install: diff --git a/_travis/install_dependencies b/_travis/install_dependencies index fbc6425f..c9025126 100755 --- a/_travis/install_dependencies +++ b/_travis/install_dependencies @@ -20,9 +20,6 @@ if [ "$DEPSYSTEM" = "debian" ] ; then else DEPS="libboost-program-options-dev" if [ "$CMAKE_PARAMETERS" = "-DUseQtFive=ON" ] ; then - echo "Adding dannyedel ppa" - sudo add-apt-repository ppa:dannyedel/libpoppler-qt5-backports -y - sudo add-apt-repository ppa:ubuntu-sdk-team/ppa -y DEPS="${DEPS} libpoppler-qt5-dev qtbase5-dev" else DEPS="${DEPS} libpoppler-qt4-dev" From 006b97b8cca1fc7ccc54346d5f62f6dd7e69cbc1 Mon Sep 17 00:00:00 2001 From: Danny Edel Date: Thu, 17 Sep 2015 16:09:46 +0200 Subject: [PATCH 4/5] pdfviewerwindow: Correct the usage of addMSecs --- pdfviewerwindow.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pdfviewerwindow.cpp b/pdfviewerwindow.cpp index c6a6c1c5..c77b171f 100644 --- a/pdfviewerwindow.cpp +++ b/pdfviewerwindow.cpp @@ -377,9 +377,7 @@ QString PDFViewerWindow::timeToString(const QTime & time) const QString PDFViewerWindow::timeToString(int milliseconds) const { - QTime time; - time.addMSecs(milliseconds); - return timeToString(time); + return timeToString(QTime(0,0).addMSecs(milliseconds)); } From 9b31ca8f72493f2516b883233af8face136e98a9 Mon Sep 17 00:00:00 2001 From: Danny Edel Date: Thu, 17 Sep 2015 16:10:05 +0200 Subject: [PATCH 5/5] Clang: Don't error because of undefined behaviour --- CMakeLists.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0344d222..06cea95d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -111,8 +111,13 @@ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") add_definitions(-Wno-padded) # in release mode: Unrechable code / Macro expansion (these stem from QDEBUG) if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug" ) - add_definitions(-Wno-unreachable-code -Wno-unreachable-code -Wno-disabled-macro-expansion) + add_definitions(-Wno-unreachable-code -Wno-disabled-macro-expansion) endif() + # Qt's moc (Meta Object Compiler) generates code that triggers warnings + # about undefined behaviours. + + # So don't set Werror for it. + add_definitions(-Wno-error=undefined-reinterpret-cast) else() message(WARNING "Compiling with a Non-GNU compiler. A lot less warnings will be output, so more coding errors might go undetected.") endif()