diff --git a/CodeGenerator/CodeGenerator.pro b/CodeGenerator/CodeGenerator.pro index 21f91e6..e126d81 100644 --- a/CodeGenerator/CodeGenerator.pro +++ b/CodeGenerator/CodeGenerator.pro @@ -17,8 +17,6 @@ QT += core gui xml widgets -CONFIG += c++11 - # The following define makes your compiler emit warnings if you use # any Qt feature that has been marked deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the @@ -30,7 +28,7 @@ DEFINES += QT_DEPRECATED_WARNINGS # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 -QMAKE_CXXFLAGS += /std:c++latest /utf-8 +include(../Pdf4Qt.pri) DESTDIR = $$OUT_PWD/.. diff --git a/JBIG2_Viewer/JBIG2_Viewer.pro b/JBIG2_Viewer/JBIG2_Viewer.pro index fcaa889..cb58567 100644 --- a/JBIG2_Viewer/JBIG2_Viewer.pro +++ b/JBIG2_Viewer/JBIG2_Viewer.pro @@ -2,8 +2,6 @@ QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets -CONFIG += c++11 - # The following define makes your compiler emit warnings if you use # any Qt feature that has been marked deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the @@ -15,7 +13,7 @@ DEFINES += QT_DEPRECATED_WARNINGS # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 -QMAKE_CXXFLAGS += /std:c++latest /utf-8 +include(../Pdf4Qt.pri) INCLUDEPATH += $$PWD/../PDF4QtLib/Sources diff --git a/Pdf4Qt.pri b/Pdf4Qt.pri new file mode 100644 index 0000000..7598c49 --- /dev/null +++ b/Pdf4Qt.pri @@ -0,0 +1,34 @@ +# Copyright (C) 2018-2022 Jakub Melka +# +# This file is part of PDF4QT. +# +# PDF4QT is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# with the written consent of the copyright owner, any later version. +# +# PDF4QT is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PDF4QT. If not, see . + +win32-msvc*: { + QMAKE_CXXFLAGS += /std:c++latest /utf-8 /bigobj +} + +win32-*g++|unix: { + CONFIG += link_pkgconfig + QMAKE_CXXFLAGS += -std=c++20 + win32: { + QMAKE_CXXFLAGS += -Wa,-mbig-obj + } +} + +win32 { + CONFIG += skip_target_version_ext +} else { + CONFIG += unversioned_libname +} diff --git a/Pdf4QtDocDiff/Pdf4QtDocDiff.pro b/Pdf4QtDocDiff/Pdf4QtDocDiff.pro index c85d6c3..16e64ac 100644 --- a/Pdf4QtDocDiff/Pdf4QtDocDiff.pro +++ b/Pdf4QtDocDiff/Pdf4QtDocDiff.pro @@ -20,6 +20,8 @@ QT += core gui widgets winextras TARGET = Pdf4QtDocDiff TEMPLATE = app +include(../Pdf4Qt.pri) + VERSION = 1.1.0 RC_ICONS = $$PWD/app-icon.ico @@ -28,7 +30,6 @@ QMAKE_TARGET_DESCRIPTION = "PDF Document Diff" QMAKE_TARGET_COPYRIGHT = "(c) Jakub Melka 2018-2021" DEFINES += QT_DEPRECATED_WARNINGS -QMAKE_CXXFLAGS += /std:c++latest /utf-8 INCLUDEPATH += $$PWD/../PDF4QtLib/Sources DESTDIR = $$OUT_PWD/.. diff --git a/Pdf4QtDocPageOrganizer/Pdf4QtDocPageOrganizer.pro b/Pdf4QtDocPageOrganizer/Pdf4QtDocPageOrganizer.pro index c3acf4b..bc717e1 100644 --- a/Pdf4QtDocPageOrganizer/Pdf4QtDocPageOrganizer.pro +++ b/Pdf4QtDocPageOrganizer/Pdf4QtDocPageOrganizer.pro @@ -20,6 +20,8 @@ QT += core gui widgets winextras TARGET = Pdf4QtDocPageOrganizer TEMPLATE = app +include(../Pdf4Qt.pri) + VERSION = 1.1.0 RC_ICONS = $$PWD/app-icon.ico @@ -28,7 +30,6 @@ QMAKE_TARGET_DESCRIPTION = "PDF Document Page Organizer" QMAKE_TARGET_COPYRIGHT = "(c) Jakub Melka 2018-2021" DEFINES += QT_DEPRECATED_WARNINGS -QMAKE_CXXFLAGS += /std:c++latest /utf-8 INCLUDEPATH += $$PWD/../PDF4QtLib/Sources DESTDIR = $$OUT_PWD/.. diff --git a/Pdf4QtDocPageOrganizer/pageitemmodel.cpp b/Pdf4QtDocPageOrganizer/pageitemmodel.cpp index c666e63..55e0a89 100644 --- a/Pdf4QtDocPageOrganizer/pageitemmodel.cpp +++ b/Pdf4QtDocPageOrganizer/pageitemmodel.cpp @@ -1075,7 +1075,7 @@ bool PageItemModel::dropMimeData(const QMimeData* data, Qt::DropAction action, i rows.push_back(row); } - qSort(rows); + std::sort(rows.begin(), rows.end()); // Sanity checks on rows if (rows.empty()) diff --git a/Pdf4QtLib/Pdf4QtLib.pro b/Pdf4QtLib/Pdf4QtLib.pro index 3ebfe48..7df0cd0 100644 --- a/Pdf4QtLib/Pdf4QtLib.pro +++ b/Pdf4QtLib/Pdf4QtLib.pro @@ -20,7 +20,8 @@ QT += gui widgets xml TARGET = Pdf4QtLib TEMPLATE = lib -win32:TARGET_EXT = .dll +include(../Pdf4Qt.pri) + VERSION = 1.1.0 QMAKE_TARGET_DESCRIPTION = "PDF rendering / editing library for Qt" @@ -205,46 +206,56 @@ CONFIG(debug, debug|release) { SUFFIX = d } -# Link to freetype library -LIBS += -L$$Pdf4Qt_DEPENDENCIES_PATH/FreeType/ -lfreetype$${SUFFIX} -INCLUDEPATH += $$Pdf4Qt_DEPENDENCIES_PATH/FreeType/include -DEPENDPATH += $$Pdf4Qt_DEPENDENCIES_PATH/FreeType/include +win32-msvc*: { + # Link to freetype library + LIBS += -L$$Pdf4Qt_DEPENDENCIES_PATH/FreeType/ -lfreetype$${SUFFIX} + INCLUDEPATH += $$Pdf4Qt_DEPENDENCIES_PATH/FreeType/include + DEPENDPATH += $$Pdf4Qt_DEPENDENCIES_PATH/FreeType/include -# Link to OpenJPEG library -LIBS += -L$$Pdf4Qt_DEPENDENCIES_PATH/OpenJPEG/lib/ -lopenjp2$${SUFFIX} -INCLUDEPATH += $$Pdf4Qt_DEPENDENCIES_PATH/OpenJPEG/include/openjpeg-2.3 -DEPENDPATH += $$Pdf4Qt_DEPENDENCIES_PATH/OpenJPEG/include/openjpeg-2.3 -DEFINES += OPJ_STATIC + # Link to OpenJPEG library + LIBS += -L$$Pdf4Qt_DEPENDENCIES_PATH/OpenJPEG/lib/ -lopenjp2$${SUFFIX} + INCLUDEPATH += $$Pdf4Qt_DEPENDENCIES_PATH/OpenJPEG/include/openjpeg-2.3 + DEPENDPATH += $$Pdf4Qt_DEPENDENCIES_PATH/OpenJPEG/include/openjpeg-2.3 + DEFINES += OPJ_STATIC -# Link to Independent JPEG Groups libjpeg -LIBS += -L$$Pdf4Qt_DEPENDENCIES_PATH/libjpeg/bin/ -ljpeg$${SUFFIX} -INCLUDEPATH += $$Pdf4Qt_DEPENDENCIES_PATH/libjpeg/include -DEPENDPATH += $$Pdf4Qt_DEPENDENCIES_PATH/libjpeg/include + # Link to Independent JPEG Groups libjpeg + LIBS += -L$$Pdf4Qt_DEPENDENCIES_PATH/libjpeg/bin/ -ljpeg$${SUFFIX} + INCLUDEPATH += $$Pdf4Qt_DEPENDENCIES_PATH/libjpeg/include + DEPENDPATH += $$Pdf4Qt_DEPENDENCIES_PATH/libjpeg/include -# Link OpenSSL -LIBS += -L$$Pdf4Qt_OPENSSL_PATH/OpenSSL/Win_x64/bin -L$$Pdf4Qt_OPENSSL_PATH/OpenSSL/Win_x64/lib -llibcrypto -llibssl -INCLUDEPATH += $$Pdf4Qt_OPENSSL_PATH/OpenSSL/Win_x64/include -DEPENDPATH += $$Pdf4Qt_OPENSSL_PATH/OpenSSL/Win_x64/include + # Link OpenSSL + LIBS += -L$$Pdf4Qt_OPENSSL_PATH/OpenSSL/Win_x64/bin -L$$Pdf4Qt_OPENSSL_PATH/OpenSSL/Win_x64/lib -llibcrypto -llibssl + INCLUDEPATH += $$Pdf4Qt_OPENSSL_PATH/OpenSSL/Win_x64/include + DEPENDPATH += $$Pdf4Qt_OPENSSL_PATH/OpenSSL/Win_x64/include -# Add OpenSSL to installations -openssl_lib.files = $$Pdf4Qt_OPENSSL_PATH/OpenSSL/Win_x64/bin/libcrypto-1_1-x64.dll $$Pdf4Qt_OPENSSL_PATH/OpenSSL/Win_x64/bin/libssl-1_1-x64.dll -openssl_lib.path = $$DESTDIR/install -INSTALLS += openssl_lib + # Add OpenSSL to installations + openssl_lib.files = $$Pdf4Qt_OPENSSL_PATH/OpenSSL/Win_x64/bin/libcrypto-1_1-x64.dll $$Pdf4Qt_OPENSSL_PATH/OpenSSL/Win_x64/bin/libssl-1_1-x64.dll + openssl_lib.path = $$DESTDIR/install + INSTALLS += openssl_lib -# Link zlib -LIBS += -L$$Pdf4Qt_DEPENDENCIES_PATH/zlib/bin/ -lzlibstatic$${SUFFIX} -INCLUDEPATH += $$Pdf4Qt_DEPENDENCIES_PATH/zlib/include -DEPENDPATH += $$Pdf4Qt_DEPENDENCIES_PATH/zlib/include + # Link zlib + LIBS += -L$$Pdf4Qt_DEPENDENCIES_PATH/zlib/bin/ -lzlibstatic$${SUFFIX} + INCLUDEPATH += $$Pdf4Qt_DEPENDENCIES_PATH/zlib/include + DEPENDPATH += $$Pdf4Qt_DEPENDENCIES_PATH/zlib/include -# Link lcms2 -LIBS += -L$$Pdf4Qt_DEPENDENCIES_PATH/lcms2/bin$${SUFFIX}/ -llcms2_static -INCLUDEPATH += $$Pdf4Qt_DEPENDENCIES_PATH/lcms2/include -DEPENDPATH += $$Pdf4Qt_DEPENDENCIES_PATH/lcms2/include + # Link lcms2 + LIBS += -L$$Pdf4Qt_DEPENDENCIES_PATH/lcms2/bin$${SUFFIX}/ -llcms2_static + INCLUDEPATH += $$Pdf4Qt_DEPENDENCIES_PATH/lcms2/include + DEPENDPATH += $$Pdf4Qt_DEPENDENCIES_PATH/lcms2/include +} + +win32-*g++|unix: { + PKGCONFIG += freetype2 libopenjp2 libjpeg lcms2 libssl libcrypto zlib + LIBS += -ltbb + win32: { + LIBS += -lmscms -lcrypt32 -lsecur32 + } +} # ensure debug info even for RELEASE build CONFIG += force_debug_info -QMAKE_CXXFLAGS += /std:c++latest /utf-8 /bigobj + QMAKE_RESOURCE_FLAGS += -threshold 0 -compress 9 PdfforQt_library.files = $$DESTDIR/Pdf4QtLib.dll diff --git a/Pdf4QtLib/sources/pdfannotation.cpp b/Pdf4QtLib/sources/pdfannotation.cpp index 40e43d8..07459be 100644 --- a/Pdf4QtLib/sources/pdfannotation.cpp +++ b/Pdf4QtLib/sources/pdfannotation.cpp @@ -1415,7 +1415,7 @@ void PDFAnnotationManager::drawAnnotation(const PageAnnotation& annotation, { errors.push_back(PDFRenderError(RenderErrorType::Error, exception.getMessage())); } - catch (PDFRendererException exception) + catch (const PDFRendererException &exception) { errors.push_back(exception.getError()); } diff --git a/Pdf4QtLib/sources/pdfcolorspaces.cpp b/Pdf4QtLib/sources/pdfcolorspaces.cpp index 8059842..7a08e08 100644 --- a/Pdf4QtLib/sources/pdfcolorspaces.cpp +++ b/Pdf4QtLib/sources/pdfcolorspaces.cpp @@ -293,7 +293,7 @@ QImage PDFAbstractColorSpace::getImage(const PDFImageData& imageData, fillRGBBuffer(inputColors, outputLine, intent, cms, reporter); } - catch (PDFException lineException) + catch (const PDFException &lineException) { QMutexLocker lock(&exceptionMutex); if (!exception) @@ -396,7 +396,7 @@ QImage PDFAbstractColorSpace::getImage(const PDFImageData& imageData, *outputLine++ = *alphaLine++; } } - catch (PDFException lineException) + catch (const PDFException &lineException) { QMutexLocker lock(&exceptionMutex); if (!exception) diff --git a/Pdf4QtLib/sources/pdfdocumentreader.cpp b/Pdf4QtLib/sources/pdfdocumentreader.cpp index 7caef45..85fbfee 100644 --- a/Pdf4QtLib/sources/pdfdocumentreader.cpp +++ b/Pdf4QtLib/sources/pdfdocumentreader.cpp @@ -585,7 +585,7 @@ PDFDocument PDFDocumentReader::readFromBuffer(const QByteArray& buffer) PDFObjectStorage storage(std::move(objects), PDFObject(xrefTable.getTrailerDictionary()), qMove(m_securityHandler)); return PDFDocument(std::move(storage), m_version); } - catch (PDFException parserException) + catch (const PDFException &parserException) { m_result = Result::Failed; m_errorMessage = parserException.getMessage(); @@ -770,7 +770,7 @@ PDFDocument PDFDocumentReader::readDamagedDocumentFromBuffer(const QByteArray& b PDFObjectStorage storage(std::move(objects), PDFObject(trailerDictionaryObject), qMove(m_securityHandler)); return PDFDocument(std::move(storage), m_version); } - catch (PDFException parserException) + catch (const PDFException &parserException) { m_result = Result::Failed; m_warnings << parserException.getMessage(); diff --git a/Pdf4QtLib/sources/pdfdocumenttextflow.cpp b/Pdf4QtLib/sources/pdfdocumenttextflow.cpp index 4a35f54..69257ae 100644 --- a/Pdf4QtLib/sources/pdfdocumenttextflow.cpp +++ b/Pdf4QtLib/sources/pdfdocumenttextflow.cpp @@ -548,9 +548,9 @@ private: void PDFStructureTreeTextFlowCollector::visitStructureTree(const PDFStructureTree* structureTree) { - m_items->push_back(PDFDocumentTextFlow::Item{ QRectF(), -1, QString(), PDFDocumentTextFlow::StructureItemStart}); + m_items->push_back(PDFDocumentTextFlow::Item{ QRectF(), -1, QString(), PDFDocumentTextFlow::StructureItemStart, {} }); acceptChildren(structureTree); - m_items->push_back(PDFDocumentTextFlow::Item{ QRectF(), -1, QString(), PDFDocumentTextFlow::StructureItemEnd}); + m_items->push_back(PDFDocumentTextFlow::Item{ QRectF(), -1, QString(), PDFDocumentTextFlow::StructureItemEnd, {} }); } void PDFStructureTreeTextFlowCollector::markHasContent() @@ -564,7 +564,7 @@ void PDFStructureTreeTextFlowCollector::markHasContent() void PDFStructureTreeTextFlowCollector::visitStructureElement(const PDFStructureElement* structureElement) { size_t index = m_items->size(); - m_items->push_back(PDFDocumentTextFlow::Item{ QRectF(), -1, QString(), PDFDocumentTextFlow::StructureItemStart}); + m_items->push_back(PDFDocumentTextFlow::Item{ QRectF(), -1, QString(), PDFDocumentTextFlow::StructureItemStart, {} }); // Mark stack so we can delete unused items m_hasContentStack.push_back(false); @@ -579,37 +579,37 @@ void PDFStructureTreeTextFlowCollector::visitStructureElement(const PDFStructure if (!title.isEmpty()) { markHasContent(); - m_items->push_back(PDFDocumentTextFlow::Item{ QRectF(), -1, QString(), PDFDocumentTextFlow::StructureTitle}); + m_items->push_back(PDFDocumentTextFlow::Item{ QRectF(), -1, QString(), PDFDocumentTextFlow::StructureTitle, {} }); } if (!language.isEmpty()) { markHasContent(); - m_items->push_back(PDFDocumentTextFlow::Item{ QRectF(), -1, language, PDFDocumentTextFlow::StructureLanguage }); + m_items->push_back(PDFDocumentTextFlow::Item{ QRectF(), -1, language, PDFDocumentTextFlow::StructureLanguage, {} }); } if (!alternativeDescription.isEmpty()) { markHasContent(); - m_items->push_back(PDFDocumentTextFlow::Item{ QRectF(), -1, alternativeDescription, PDFDocumentTextFlow::StructureAlternativeDescription }); + m_items->push_back(PDFDocumentTextFlow::Item{ QRectF(), -1, alternativeDescription, PDFDocumentTextFlow::StructureAlternativeDescription, {} }); } if (!expandedForm.isEmpty()) { markHasContent(); - m_items->push_back(PDFDocumentTextFlow::Item{ QRectF(), -1, expandedForm, PDFDocumentTextFlow::StructureExpandedForm }); + m_items->push_back(PDFDocumentTextFlow::Item{ QRectF(), -1, expandedForm, PDFDocumentTextFlow::StructureExpandedForm, {} }); } if (!actualText.isEmpty()) { markHasContent(); - m_items->push_back(PDFDocumentTextFlow::Item{ QRectF(), -1, actualText, PDFDocumentTextFlow::StructureActualText }); + m_items->push_back(PDFDocumentTextFlow::Item{ QRectF(), -1, actualText, PDFDocumentTextFlow::StructureActualText, {} }); } if (!phoneme.isEmpty()) { markHasContent(); - m_items->push_back(PDFDocumentTextFlow::Item{ QRectF(), -1, phoneme, PDFDocumentTextFlow::StructurePhoneme }); + m_items->push_back(PDFDocumentTextFlow::Item{ QRectF(), -1, phoneme, PDFDocumentTextFlow::StructurePhoneme, {} }); } for (const auto& textItem : m_extractor->getText(structureElement)) @@ -623,7 +623,7 @@ void PDFStructureTreeTextFlowCollector::visitStructureElement(const PDFStructure const bool hasContent = m_hasContentStack.back(); m_hasContentStack.pop_back(); - m_items->push_back(PDFDocumentTextFlow::Item{ QRectF(), -1, QString(), PDFDocumentTextFlow::StructureItemEnd }); + m_items->push_back(PDFDocumentTextFlow::Item{ QRectF(), -1, QString(), PDFDocumentTextFlow::StructureItemEnd, {} }); if (!hasContent) { @@ -702,12 +702,12 @@ PDFDocumentTextFlow PDFDocumentTextFlowFactory::create(const PDFDocument* docume PDFTextFlows textFlows = PDFTextFlow::createTextFlows(textLayout, PDFTextFlow::FlowFlags(PDFTextFlow::SeparateBlocks) | PDFTextFlow::RemoveSoftHyphen, pageIndex); PDFDocumentTextFlow::Items flowItems; - flowItems.emplace_back(PDFDocumentTextFlow::Item{ QRectF(), pageIndex, PDFTranslationContext::tr("Page %1").arg(pageIndex + 1), PDFDocumentTextFlow::PageStart }); + flowItems.emplace_back(PDFDocumentTextFlow::Item{ QRectF(), pageIndex, PDFTranslationContext::tr("Page %1").arg(pageIndex + 1), PDFDocumentTextFlow::PageStart, {} }); for (const PDFTextFlow& textFlow : textFlows) { flowItems.emplace_back(PDFDocumentTextFlow::Item{ textFlow.getBoundingBox(), pageIndex, textFlow.getText(), PDFDocumentTextFlow::Text, textFlow.getBoundingBoxes() }); } - flowItems.emplace_back(PDFDocumentTextFlow::Item{ QRectF(), pageIndex, QString(), PDFDocumentTextFlow::PageEnd }); + flowItems.emplace_back(PDFDocumentTextFlow::Item{ QRectF(), pageIndex, QString(), PDFDocumentTextFlow::PageEnd, {} }); QMutexLocker lock(&mutex); items[pageIndex] = qMove(flowItems); @@ -760,7 +760,7 @@ PDFDocumentTextFlow PDFDocumentTextFlowFactory::create(const PDFDocument* docume PDFDocumentTextFlow::Items flowItems; for (PDFInteger pageIndex : pageIndices) { - flowItems.emplace_back(PDFDocumentTextFlow::Item{ QRectF(), pageIndex, PDFTranslationContext::tr("Page %1").arg(pageIndex + 1), PDFDocumentTextFlow::PageStart }); + flowItems.emplace_back(PDFDocumentTextFlow::Item{ QRectF(), pageIndex, PDFTranslationContext::tr("Page %1").arg(pageIndex + 1), PDFDocumentTextFlow::PageStart, {} }); for (const PDFStructureTreeTextItem& sequenceItem : extractor.getTextSequence(pageIndex)) { if (sequenceItem.type == PDFStructureTreeTextItem::Type::Text) @@ -768,7 +768,7 @@ PDFDocumentTextFlow PDFDocumentTextFlowFactory::create(const PDFDocument* docume flowItems.emplace_back(PDFDocumentTextFlow::Item{ sequenceItem.boundingRect, pageIndex, sequenceItem.text, PDFDocumentTextFlow::Text, sequenceItem.characterBoundingRects }); } } - flowItems.emplace_back(PDFDocumentTextFlow::Item{ QRectF(), pageIndex, QString(), PDFDocumentTextFlow::PageEnd }); + flowItems.emplace_back(PDFDocumentTextFlow::Item{ QRectF(), pageIndex, QString(), PDFDocumentTextFlow::PageEnd, {} }); } result = PDFDocumentTextFlow(qMove(flowItems)); diff --git a/Pdf4QtLib/sources/pdfpagecontentprocessor.cpp b/Pdf4QtLib/sources/pdfpagecontentprocessor.cpp index facf4de..779f7fb 100644 --- a/Pdf4QtLib/sources/pdfpagecontentprocessor.cpp +++ b/Pdf4QtLib/sources/pdfpagecontentprocessor.cpp @@ -707,7 +707,7 @@ void PDFPageContentProcessor::processContent(const QByteArray& content) m_operands.clear(); m_errorList.append(PDFRenderError(RenderErrorType::Error, exception.getMessage())); } - catch (PDFRendererException exception) + catch (const PDFRendererException &exception) { m_operands.clear(); m_errorList.append(exception.getError()); @@ -3401,7 +3401,7 @@ bool PDFPageContentProcessor::isContentSuppressedByOC(PDFObjectReference ocgOrOc { ocmd = PDFOptionalContentMembershipObject::create(m_document, PDFObject::createReference(ocgOrOcmd)); } - catch (PDFException e) + catch (const PDFException &e) { m_errorList.push_back(PDFRenderError(RenderErrorType::Error, e.getMessage())); } diff --git a/Pdf4QtLib/sources/pdfpagecontentprocessor.h b/Pdf4QtLib/sources/pdfpagecontentprocessor.h index b341664..135c027 100644 --- a/Pdf4QtLib/sources/pdfpagecontentprocessor.h +++ b/Pdf4QtLib/sources/pdfpagecontentprocessor.h @@ -700,7 +700,7 @@ protected: /// Returns optional content activity const PDFOptionalContentActivity* getOptionalContentActivity() const { return m_optionalContentActivity; } - class PDFTransparencyGroupGuard + class PDF4QTLIBSHARED_EXPORT PDFTransparencyGroupGuard { public: explicit PDFTransparencyGroupGuard(PDFPageContentProcessor* processor, PDFTransparencyGroup&& group); diff --git a/Pdf4QtLib/sources/pdfutils.cpp b/Pdf4QtLib/sources/pdfutils.cpp index 1f5a7e3..c4b688b 100644 --- a/Pdf4QtLib/sources/pdfutils.cpp +++ b/Pdf4QtLib/sources/pdfutils.cpp @@ -246,7 +246,7 @@ std::vector PDFDependentLibraryInfo::getLibraryInfo() libjpegInfo.library = tr("libjpeg"); libjpegInfo.license = tr("permissive + ack."); libjpegInfo.url = tr("https://www.ijg.org/"); -#if defined(Q_OS_UNIX) +#if defined(Q_OS_UNIX) || defined(__MINGW32__) libjpegInfo.version = tr("%1").arg(JPEG_LIB_VERSION); #else libjpegInfo.version = tr("%1.%2").arg(JPEG_LIB_VERSION_MAJOR).arg(JPEG_LIB_VERSION_MINOR); diff --git a/Pdf4QtViewer/Pdf4QtViewer.pro b/Pdf4QtViewer/Pdf4QtViewer.pro index e437102..8f587e9 100644 --- a/Pdf4QtViewer/Pdf4QtViewer.pro +++ b/Pdf4QtViewer/Pdf4QtViewer.pro @@ -20,7 +20,8 @@ QT += core gui widgets winextras printsupport texttospeech network xml TARGET = Pdf4QtViewer TEMPLATE = lib -win32:TARGET_EXT = .dll +include(../Pdf4Qt.pri) + VERSION = 1.1.0 DEFINES += PDF4QTVIEWER_LIBRARY @@ -30,7 +31,9 @@ QMAKE_TARGET_COPYRIGHT = "(c) Jakub Melka 2018-2021" DEFINES += QT_DEPRECATED_WARNINGS -QMAKE_CXXFLAGS += /std:c++latest /utf-8 +win32-*g++|unix: { + LIBS += -ltbb +} INCLUDEPATH += $$PWD/../PDF4QtLib/Sources DESTDIR = $$OUT_PWD/.. diff --git a/Pdf4QtViewer/pdfdocumentpropertiesdialog.cpp b/Pdf4QtViewer/pdfdocumentpropertiesdialog.cpp index c662005..1b1a8b5 100644 --- a/Pdf4QtViewer/pdfdocumentpropertiesdialog.cpp +++ b/Pdf4QtViewer/pdfdocumentpropertiesdialog.cpp @@ -361,7 +361,7 @@ void PDFDocumentPropertiesDialog::initializeFonts(const pdf::PDFDocument* docume } } } - catch (pdf::PDFException) + catch (const pdf::PDFException &) { // Do nothing, some error occured, continue with next font continue; @@ -370,7 +370,7 @@ void PDFDocumentPropertiesDialog::initializeFonts(const pdf::PDFDocument* docume } } } - catch (pdf::PDFException) + catch (const pdf::PDFException &) { // Do nothing, some error occured } diff --git a/Pdf4QtViewer/pdfprogramcontroller.cpp b/Pdf4QtViewer/pdfprogramcontroller.cpp index 74076e5..bd80fc6 100644 --- a/Pdf4QtViewer/pdfprogramcontroller.cpp +++ b/Pdf4QtViewer/pdfprogramcontroller.cpp @@ -318,8 +318,8 @@ PDFProgramController::PDFProgramController(QObject* parent) : m_undoRedoManager(nullptr), m_recentFileManager(new PDFRecentFileManager(this)), m_optionalContentActivity(nullptr), - m_futureWatcher(nullptr), m_textToSpeech(nullptr), + m_futureWatcher(nullptr), m_CMSManager(new pdf::PDFCMSManager(this)), m_toolManager(nullptr), m_annotationManager(nullptr), diff --git a/Pdf4QtViewer/pdfsidebarwidget.cpp b/Pdf4QtViewer/pdfsidebarwidget.cpp index 9f8105e..b08601e 100644 --- a/Pdf4QtViewer/pdfsidebarwidget.cpp +++ b/Pdf4QtViewer/pdfsidebarwidget.cpp @@ -663,7 +663,7 @@ void PDFSidebarWidget::onAttachmentCustomContextMenuRequested(const QPoint& pos) QMessageBox::critical(this, tr("Error"), tr("Failed to save attachment to file. %1").arg(file.errorString())); } } - catch (pdf::PDFException e) + catch (const pdf::PDFException &e) { QMessageBox::critical(this, tr("Error"), tr("Failed to save attachment to file. %1").arg(e.getMessage())); } diff --git a/Pdf4QtViewer/pdfviewersettings.cpp b/Pdf4QtViewer/pdfviewersettings.cpp index da468cb..2ad124b 100644 --- a/Pdf4QtViewer/pdfviewersettings.cpp +++ b/Pdf4QtViewer/pdfviewersettings.cpp @@ -263,11 +263,11 @@ PDFViewerSettings::Settings::Settings() : m_allowLaunchApplications(true), m_allowLaunchURI(true), m_allowDeveloperMode(false), + m_multithreadingStrategy(pdf::PDFExecutionPolicy::Strategy::AlwaysMultithreaded), m_compiledPageCacheLimit(128 * 1024), m_thumbnailsCacheLimit(PIXMAP_CACHE_LIMIT), m_fontCacheLimit(pdf::DEFAULT_FONT_CACHE_LIMIT), m_instancedFontCacheLimit(pdf::DEFAULT_REALIZED_FONT_CACHE_LIMIT), - m_multithreadingStrategy(pdf::PDFExecutionPolicy::Strategy::AlwaysMultithreaded), m_speechRate(0.0), m_speechPitch(0.0), m_speechVolume(1.0), diff --git a/Pdf4QtViewer/pdfviewersettingsdialog.cpp b/Pdf4QtViewer/pdfviewersettingsdialog.cpp index e533aca..dd7d7d0 100644 --- a/Pdf4QtViewer/pdfviewersettingsdialog.cpp +++ b/Pdf4QtViewer/pdfviewersettingsdialog.cpp @@ -69,9 +69,9 @@ PDFViewerSettingsDialog::PDFViewerSettingsDialog(const PDFViewerSettings::Settin m_settings(settings), m_cmsSettings(cmsSettings), m_otherSettings(otherSettings), - m_certificateStore(certificateStore), m_actions(), m_isLoadingData(false), + m_certificateStore(certificateStore), m_enabledPlugins(enabledPlugins), m_plugins(plugins), m_networkAccessManager(nullptr), diff --git a/Pdf4QtViewerLite/Pdf4QtViewerLite.pro b/Pdf4QtViewerLite/Pdf4QtViewerLite.pro index 38be788..e820cb3 100644 --- a/Pdf4QtViewerLite/Pdf4QtViewerLite.pro +++ b/Pdf4QtViewerLite/Pdf4QtViewerLite.pro @@ -20,6 +20,8 @@ QT += core gui widgets winextras TARGET = Pdf4QtViewerLite TEMPLATE = app +include(../Pdf4Qt.pri) + VERSION = 1.1.0 RC_ICONS = $$PWD/app-icon.ico @@ -28,7 +30,10 @@ QMAKE_TARGET_DESCRIPTION = "PDF viewer for Qt, Lite version" QMAKE_TARGET_COPYRIGHT = "(c) Jakub Melka 2018-2021" DEFINES += QT_DEPRECATED_WARNINGS -QMAKE_CXXFLAGS += /std:c++latest /utf-8 + +win32-*g++|unix: { + LIBS += -ltbb +} INCLUDEPATH += $$PWD/../PDF4QtLib/Sources $$PWD/../PDF4QtViewer DESTDIR = $$OUT_PWD/.. diff --git a/Pdf4QtViewerPlugins/AudioBookPlugin/AudioBookPlugin.pro b/Pdf4QtViewerPlugins/AudioBookPlugin/AudioBookPlugin.pro index f622d42..23ad2b2 100644 --- a/Pdf4QtViewerPlugins/AudioBookPlugin/AudioBookPlugin.pro +++ b/Pdf4QtViewerPlugins/AudioBookPlugin/AudioBookPlugin.pro @@ -20,18 +20,20 @@ DEFINES += AUDIOBOOKPLUGIN_LIBRARY QT += gui widgets +include(../../Pdf4Qt.pri) + LIBS += -L$$OUT_PWD/../.. LIBS += -lPdf4QtLib -QMAKE_CXXFLAGS += /std:c++latest /utf-8 +win32-*g++: { + LIBS += -lole32 -lsapi +} INCLUDEPATH += $$PWD/../../Pdf4QtLib/Sources DESTDIR = $$OUT_PWD/../../pdfplugins -CONFIG += c++11 - SOURCES += \ audiobookcreator.cpp \ audiobookplugin.cpp \ diff --git a/Pdf4QtViewerPlugins/AudioBookPlugin/audiobookcreator.cpp b/Pdf4QtViewerPlugins/AudioBookPlugin/audiobookcreator.cpp index bf37d2e..d7210f7 100644 --- a/Pdf4QtViewerPlugins/AudioBookPlugin/audiobookcreator.cpp +++ b/Pdf4QtViewerPlugins/AudioBookPlugin/audiobookcreator.cpp @@ -18,6 +18,7 @@ #include "audiobookcreator.h" #ifdef Q_OS_WIN +#include #include #if defined(PDF4QT_USE_PRAGMA_LIB) #pragma comment(lib, "ole32") diff --git a/Pdf4QtViewerPlugins/DimensionsPlugin/DimensionsPlugin.pro b/Pdf4QtViewerPlugins/DimensionsPlugin/DimensionsPlugin.pro index 78e0d18..9f99efc 100644 --- a/Pdf4QtViewerPlugins/DimensionsPlugin/DimensionsPlugin.pro +++ b/Pdf4QtViewerPlugins/DimensionsPlugin/DimensionsPlugin.pro @@ -20,18 +20,16 @@ DEFINES += DIMENSIONPLUGIN_LIBRARY QT += gui widgets +include(../../Pdf4Qt.pri) + LIBS += -L$$OUT_PWD/../.. LIBS += -lPdf4QtLib -QMAKE_CXXFLAGS += /std:c++latest /utf-8 - INCLUDEPATH += $$PWD/../../Pdf4QtLib/Sources DESTDIR = $$OUT_PWD/../../pdfplugins -CONFIG += c++11 - SOURCES += \ dimensionsplugin.cpp \ dimensiontool.cpp \ diff --git a/Pdf4QtViewerPlugins/ObjectInspectorPlugin/ObjectInspectorPlugin.pro b/Pdf4QtViewerPlugins/ObjectInspectorPlugin/ObjectInspectorPlugin.pro index 7d95217..f1c8a6e 100644 --- a/Pdf4QtViewerPlugins/ObjectInspectorPlugin/ObjectInspectorPlugin.pro +++ b/Pdf4QtViewerPlugins/ObjectInspectorPlugin/ObjectInspectorPlugin.pro @@ -20,18 +20,16 @@ DEFINES += OBJECTINSPECTORPLUGIN_LIBRARY QT += gui widgets +include(../../Pdf4Qt.pri) + LIBS += -L$$OUT_PWD/../.. LIBS += -lPdf4QtLib -QMAKE_CXXFLAGS += /std:c++latest /utf-8 - INCLUDEPATH += $$PWD/../../Pdf4QtLib/Sources DESTDIR = $$OUT_PWD/../../pdfplugins -CONFIG += c++11 - SOURCES += \ objectinspectordialog.cpp \ objectinspectorplugin.cpp \ @@ -61,3 +59,7 @@ FORMS += \ objectstatisticsdialog.ui \ objectviewerwidget.ui \ statisticsgraphwidget.ui + +win32-*g++|unix: { + LIBS += -ltbb +} diff --git a/Pdf4QtViewerPlugins/ObjectInspectorPlugin/objectviewerwidget.cpp b/Pdf4QtViewerPlugins/ObjectInspectorPlugin/objectviewerwidget.cpp index 528e3b8..c3a3767 100644 --- a/Pdf4QtViewerPlugins/ObjectInspectorPlugin/objectviewerwidget.cpp +++ b/Pdf4QtViewerPlugins/ObjectInspectorPlugin/objectviewerwidget.cpp @@ -35,9 +35,9 @@ ObjectViewerWidget::ObjectViewerWidget(QWidget *parent) : ObjectViewerWidget::ObjectViewerWidget(bool isPinned, QWidget* parent) : QWidget(parent), ui(new Ui::ObjectViewerWidget), - m_isPinned(isPinned), m_cms(nullptr), m_document(nullptr), + m_isPinned(isPinned), m_isRootObject(false) { ui->setupUi(this); @@ -252,7 +252,7 @@ void ObjectViewerWidget::updateUi() ui->stackedWidget->setCurrentWidget(ui->contentTextBrowserPage); } } - catch (pdf::PDFException exception) + catch (const pdf::PDFException &exception) { ui->contentTextBrowser->setText(exception.getMessage()); ui->stackedWidget->setCurrentWidget(ui->contentTextBrowserPage); diff --git a/Pdf4QtViewerPlugins/OutputPreviewPlugin/OutputPreviewPlugin.pro b/Pdf4QtViewerPlugins/OutputPreviewPlugin/OutputPreviewPlugin.pro index 3021f2c..a0b7012 100644 --- a/Pdf4QtViewerPlugins/OutputPreviewPlugin/OutputPreviewPlugin.pro +++ b/Pdf4QtViewerPlugins/OutputPreviewPlugin/OutputPreviewPlugin.pro @@ -20,18 +20,16 @@ DEFINES += OUTPUTPREVIEWPLUGIN_LIBRARY QT += gui widgets +include(../../Pdf4Qt.pri) + LIBS += -L$$OUT_PWD/../.. LIBS += -lPdf4QtLib -QMAKE_CXXFLAGS += /std:c++latest /utf-8 - INCLUDEPATH += $$PWD/../../Pdf4QtLib/Sources DESTDIR = $$OUT_PWD/../../pdfplugins -CONFIG += c++11 - SOURCES += \ inkcoveragedialog.cpp \ outputpreviewdialog.cpp \ diff --git a/Pdf4QtViewerPlugins/RedactPlugin/RedactPlugin.pro b/Pdf4QtViewerPlugins/RedactPlugin/RedactPlugin.pro index a735e6c..11e0cff 100644 --- a/Pdf4QtViewerPlugins/RedactPlugin/RedactPlugin.pro +++ b/Pdf4QtViewerPlugins/RedactPlugin/RedactPlugin.pro @@ -20,18 +20,16 @@ DEFINES += REDACTPLUGIN_LIBRARY QT += gui widgets +include(../../Pdf4Qt.pri) + LIBS += -L$$OUT_PWD/../.. LIBS += -lPdf4QtLib -QMAKE_CXXFLAGS += /std:c++latest /utf-8 - INCLUDEPATH += $$PWD/../../Pdf4QtLib/Sources DESTDIR = $$OUT_PWD/../../pdfplugins -CONFIG += c++11 - SOURCES += \ createredacteddocumentdialog.cpp \ redactplugin.cpp diff --git a/Pdf4QtViewerPlugins/SoftProofingPlugin/SoftProofingPlugin.pro b/Pdf4QtViewerPlugins/SoftProofingPlugin/SoftProofingPlugin.pro index 630e1e5..29745ec 100644 --- a/Pdf4QtViewerPlugins/SoftProofingPlugin/SoftProofingPlugin.pro +++ b/Pdf4QtViewerPlugins/SoftProofingPlugin/SoftProofingPlugin.pro @@ -20,18 +20,16 @@ DEFINES += SOFTPROOFINGPLUGIN_LIBRARY QT += gui widgets +include(../../Pdf4Qt.pri) + LIBS += -L$$OUT_PWD/../.. LIBS += -lPdf4QtLib -QMAKE_CXXFLAGS += /std:c++latest /utf-8 - INCLUDEPATH += $$PWD/../../Pdf4QtLib/Sources DESTDIR = $$OUT_PWD/../../pdfplugins -CONFIG += c++11 - SOURCES += \ softproofingplugin.cpp \ settingsdialog.cpp diff --git a/Pdf4QtViewerProfi/Pdf4QtViewerProfi.pro b/Pdf4QtViewerProfi/Pdf4QtViewerProfi.pro index adb5a60..8d09cc4 100644 --- a/Pdf4QtViewerProfi/Pdf4QtViewerProfi.pro +++ b/Pdf4QtViewerProfi/Pdf4QtViewerProfi.pro @@ -20,6 +20,8 @@ QT += core gui widgets winextras TARGET = Pdf4QtViewerProfi TEMPLATE = app +include(../Pdf4Qt.pri) + VERSION = 1.1.0 RC_ICONS = $$PWD/app-icon.ico @@ -28,7 +30,10 @@ QMAKE_TARGET_DESCRIPTION = "PDF viewer for Qt, Profi version" QMAKE_TARGET_COPYRIGHT = "(c) Jakub Melka 2018-2021" DEFINES += QT_DEPRECATED_WARNINGS -QMAKE_CXXFLAGS += /std:c++latest /utf-8 + +win32-*g++|unix: { + LIBS += -ltbb +} INCLUDEPATH += $$PWD/../PDF4QtLib/Sources $$PWD/../PDF4QtViewer DESTDIR = $$OUT_PWD/.. diff --git a/PdfExampleGenerator/PdfExampleGenerator.pro b/PdfExampleGenerator/PdfExampleGenerator.pro index af266ac..6ae757c 100644 --- a/PdfExampleGenerator/PdfExampleGenerator.pro +++ b/PdfExampleGenerator/PdfExampleGenerator.pro @@ -17,7 +17,9 @@ QT += gui widgets -CONFIG += c++11 console +include(../Pdf4Qt.pri) + +CONFIG += console CONFIG -= app_bundle # The following define makes your compiler emit warnings if you use @@ -31,8 +33,6 @@ DEFINES += QT_DEPRECATED_WARNINGS # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 -QMAKE_CXXFLAGS += /std:c++latest /utf-8 - INCLUDEPATH += $$PWD/../PDF4QtLib/Sources DESTDIR = $$OUT_PWD/.. diff --git a/PdfTool/PdfTool.pro b/PdfTool/PdfTool.pro index 2d07252..ca5c92b 100644 --- a/PdfTool/PdfTool.pro +++ b/PdfTool/PdfTool.pro @@ -15,9 +15,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with PDF4QT. If not, see . -CONFIG += c++11 console +CONFIG += console CONFIG -= app_bundle +include(../Pdf4Qt.pri) + TARGET = PdfTool VERSION = 1.1.0 @@ -28,7 +30,12 @@ QMAKE_TARGET_COPYRIGHT = "(c) Jakub Melka 2018-2021" # In order to do so, uncomment the following line. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 -QMAKE_CXXFLAGS += /std:c++latest /utf-8 +win32-*g++|unix: { + LIBS += -ltbb + win32: { + LIBS += -lole32 -lsapi + } +} INCLUDEPATH += $$PWD/../PDF4QtLib/Sources diff --git a/PdfTool/pdftoolabstractapplication.cpp b/PdfTool/pdftoolabstractapplication.cpp index 8508fc8..1ff0e7c 100644 --- a/PdfTool/pdftoolabstractapplication.cpp +++ b/PdfTool/pdftoolabstractapplication.cpp @@ -95,7 +95,7 @@ int PDFToolHelpApplication::execute(const PDFToolOptions& options) infos.emplace_back(qMove(info)); } - qSort(infos); + std::sort(infos.begin(), infos.end()); for (const Info& info : infos) { diff --git a/PdfTool/pdftoolattachments.cpp b/PdfTool/pdftoolattachments.cpp index 3ae1a75..46470c4 100644 --- a/PdfTool/pdftoolattachments.cpp +++ b/PdfTool/pdftoolattachments.cpp @@ -189,7 +189,7 @@ int PDFToolAttachmentsApplication::execute(const PDFToolOptions& options) return ErrorFailedWriteToFile; } } - catch (pdf::PDFException e) + catch (const pdf::PDFException &e) { PDFConsole::writeError(PDFToolTranslationContext::tr("Failed to save attachment to file. %1").arg(e.getMessage()), options.outputCodec); return ErrorFailedWriteToFile; diff --git a/PdfTool/pdftoolaudiobook.cpp b/PdfTool/pdftoolaudiobook.cpp index 9412b7a..b92e706 100644 --- a/PdfTool/pdftoolaudiobook.cpp +++ b/PdfTool/pdftoolaudiobook.cpp @@ -21,6 +21,7 @@ #include +#include #include #if defined(PDF4QT_USE_PRAGMA_LIB) diff --git a/PdfTool/pdftoolinfofonts.cpp b/PdfTool/pdftoolinfofonts.cpp index 3b93017..01eacbb 100644 --- a/PdfTool/pdftoolinfofonts.cpp +++ b/PdfTool/pdftoolinfofonts.cpp @@ -254,7 +254,7 @@ int PDFToolInfoFonts::execute(const PDFToolOptions& options) } } } - catch (pdf::PDFException) + catch (const pdf::PDFException &) { // Do nothing, some error occured, continue with next font continue; @@ -263,7 +263,7 @@ int PDFToolInfoFonts::execute(const PDFToolOptions& options) } } } - catch (pdf::PDFException) + catch (const pdf::PDFException &) { // Do nothing, some error occured } diff --git a/PdfTool/pdftoolinfometadata.cpp b/PdfTool/pdftoolinfometadata.cpp index e7e8cb3..fe837b1 100644 --- a/PdfTool/pdftoolinfometadata.cpp +++ b/PdfTool/pdftoolinfometadata.cpp @@ -61,7 +61,7 @@ int PDFToolInfoMetadataApplication::execute(const PDFToolOptions& options) QByteArray rawData = document.getDecodedStream(metadata.getStream()); PDFConsole::writeData(rawData); } - catch (pdf::PDFException e) + catch (const pdf::PDFException &e) { PDFConsole::writeError(e.getMessage(), options.outputCodec); } diff --git a/PdfTool/pdftoolseparate.cpp b/PdfTool/pdftoolseparate.cpp index 28123f6..c06596d 100644 --- a/PdfTool/pdftoolseparate.cpp +++ b/PdfTool/pdftoolseparate.cpp @@ -122,7 +122,7 @@ int PDFToolSeparate::execute(const PDFToolOptions& options) } } } - catch (pdf::PDFException exception) + catch (const pdf::PDFException &exception) { PDFConsole::writeError(exception.getMessage(), options.outputCodec); } diff --git a/PdfTool/pdftoolunite.cpp b/PdfTool/pdftoolunite.cpp index 1389bd2..1a5c2de 100644 --- a/PdfTool/pdftoolunite.cpp +++ b/PdfTool/pdftoolunite.cpp @@ -211,7 +211,7 @@ int PDFToolUnite::execute(const PDFToolOptions& options) return ErrorFailedWriteToFile; } } - catch (pdf::PDFException exception) + catch (const pdf::PDFException &exception) { PDFConsole::writeError(exception.getMessage(), options.outputCodec); return ErrorUnknown; diff --git a/PdfTool/pdftoolxml.cpp b/PdfTool/pdftoolxml.cpp index 1e46eb3..6bac08d 100644 --- a/PdfTool/pdftoolxml.cpp +++ b/PdfTool/pdftoolxml.cpp @@ -134,7 +134,7 @@ void PDFXmlExportVisitor::visitStream(const pdf::PDFStream* stream) m_writer->writeTextElement("text", text); } } - catch (pdf::PDFException) + catch (const pdf::PDFException &) { // Do nothing } diff --git a/UnitTests/UnitTests.pro b/UnitTests/UnitTests.pro index 38856fa..1fb2360 100644 --- a/UnitTests/UnitTests.pro +++ b/UnitTests/UnitTests.pro @@ -22,6 +22,8 @@ CONFIG -= app_bundle TEMPLATE = app +include(../Pdf4Qt.pri) + INCLUDEPATH += $$PWD/../Pdf4QtLib/Sources DESTDIR = $$OUT_PWD/.. @@ -30,8 +32,6 @@ LIBS += -L$$OUT_PWD/.. LIBS += -lPdf4QtLib -QMAKE_CXXFLAGS += /std:c++latest - SOURCES += \ tst_lexicalanalyzertest.cpp