From 017c496df9d53c7208c4fe779d689876d46e3a18 Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Sat, 17 Dec 2022 08:00:55 +0000 Subject: [PATCH] Make QtWebEngine an optional requirement Forwarded: no Last-Update: 2022-12-17 This makes it possible to build konqueror, albeith without an HTML component, also on architectures that do not have QtWebEngine. Gbp-Pq: Name optional-qtwebengine.diff --- CMakeLists.txt | 21 ++++++++++++++------- autotests/CMakeLists.txt | 12 ++++++++---- libkonq/src/CMakeLists.txt | 4 +++- plugins/CMakeLists.txt | 6 +++++- src/urlloader.cpp | 6 ++++-- 5 files changed, 34 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index edcc002..86fa8a4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,19 +32,24 @@ include(GenerateExportHeader) set(KONQUEROR_LIB_VERSION "${RELEASE_SERVICE_VERSION}") set(KONQUEROR_VERSION "${KONQUEROR_LIB_VERSION}") -find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS Core Widgets WebEngineWidgets) +find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS Core Widgets) +find_package(Qt5WebEngineWidgets ${QT_MIN_VERSION}) find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Parts KCMUtils Archive Crash WindowSystem Init IconThemes DBusAddons GuiAddons) find_package(KF5 ${KF5_MIN_VERSION} COMPONENTS Activities DocTools) # Optional find_package(Hunspell) -if(NOT Qt5WebEngineWidgets_VERSION VERSION_LESS "5.13.0") - add_definitions(-DWEBENGINE_PDF_VIEWER) -endif() +if(Qt5WebEngineWidgets_FOUND) + if(NOT Qt5WebEngineWidgets_VERSION VERSION_LESS "5.13.0") + add_definitions(-DWEBENGINE_PDF_VIEWER) + endif() -if(Qt5WebEngineWidgets_VERSION VERSION_LESS "5.14.0") - add_definitions(-DWEBENGINEDOWNLOADITEM_USE_PATH) + if(Qt5WebEngineWidgets_VERSION VERSION_LESS "5.14.0") + add_definitions(-DWEBENGINEDOWNLOADITEM_USE_PATH) + endif() +else() + add_definitions(-DNO_WEBENGINE) endif() option(WITHOUT_X11 "Build without X11 integration (skips finding Qt5X11Extras)" OFF) @@ -80,7 +85,9 @@ add_subdirectory( client ) if(BUILD_TESTING) add_subdirectory( autotests ) endif() -add_subdirectory( webenginepart ) +if(Qt5WebEngineWidgets_FOUND) + add_subdirectory( webenginepart ) +endif() add_subdirectory( pics ) add_subdirectory( sidebar ) diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt index 6366176..412f16b 100644 --- a/autotests/CMakeLists.txt +++ b/autotests/CMakeLists.txt @@ -7,8 +7,10 @@ include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/.. ) ########### konqviewmgrtest ############### -ecm_add_test(konqviewmgrtest.cpp - LINK_LIBRARIES kdeinit_konqueror Qt5::Core Qt5::Gui kwebenginepartlib Qt5::WebEngineWidgets Qt5::Test) +if (Qt5WebEngineWidgets_FOUND) + ecm_add_test(konqviewmgrtest.cpp + LINK_LIBRARIES kdeinit_konqueror Qt5::Core Qt5::Gui kwebenginepartlib Qt5::WebEngineWidgets Qt5::Test) +endif() ########### historymanagertest ############### @@ -22,8 +24,10 @@ ecm_add_test(undomanagertest.cpp ########### konqhtmltest ############### -ecm_add_test(konqhtmltest.cpp - LINK_LIBRARIES kdeinit_konqueror kwebenginepartlib Qt5::Core Qt5::Test) +if (Qt5WebEngineWidgets_FOUND) + ecm_add_test(konqhtmltest.cpp + LINK_LIBRARIES kdeinit_konqueror kwebenginepartlib Qt5::Core Qt5::Test) +endif() ########### konqviewtest ############### diff --git a/libkonq/src/CMakeLists.txt b/libkonq/src/CMakeLists.txt index 9449fec..cc936ef 100644 --- a/libkonq/src/CMakeLists.txt +++ b/libkonq/src/CMakeLists.txt @@ -29,12 +29,14 @@ target_link_libraries(KF5Konq KF5::CoreAddons KF5::Service KF5::Parts - Qt5::WebEngineWidgets PRIVATE KF5::Bookmarks KF5::I18n ${ZLIB_LIBRARY} ) +if(Qt5WebEngineWidgets_FOUND) + target_link_libraries(KF5Konq PUBLIC Qt5::WebEngineWidgets) +endif() # For crc32 in konq_historyloader.cpp target_include_directories(KF5Konq PRIVATE ${ZLIB_INCLUDE_DIR}) diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index efc3c02..ed4d56e 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -23,7 +23,11 @@ add_subdirectory( kimgalleryplugin ) add_subdirectory( dirfilter ) add_subdirectory( uachanger ) add_subdirectory( babelfish ) -add_subdirectory( webarchiver ) + +if (Qt5WebEngineWidgets_FOUND) + add_subdirectory( webarchiver ) +endif() + add_subdirectory( kget ) if (Qt5TextToSpeech_FOUND) diff --git a/src/urlloader.cpp b/src/urlloader.cpp index e56c6f1..c0dba99 100644 --- a/src/urlloader.cpp +++ b/src/urlloader.cpp @@ -29,9 +29,7 @@ #include #include -#include #include -#include #include bool UrlLoader::embedWithoutAskingToSave(const QString &mimeType) @@ -59,7 +57,11 @@ UrlLoader::UrlLoader(KonqMainWindow *mainWindow, KonqView *view, const QUrl &url QObject(mainWindow), m_mainWindow(mainWindow), m_url(url), m_mimeType(mimeType), m_request(req), m_view(view), m_trustedSource(trustedSource), m_dontEmbed(dontEmbed), m_jobErrorCode(0), m_protocolAllowsReading(KProtocolManager::supportsReading(m_url)) { +#ifndef NO_WEBENGINE m_dontPassToWebEnginePart = m_request.args.metaData().contains("DontSendToDefaultHTMLPart"); +#else + m_dontPassToWebEnginePart = true; +#endif } UrlLoader::~UrlLoader() -- 2.30.2