diff --git a/src/modules/webview/CMakeLists.txt b/src/modules/webview/CMakeLists.txt index a1aa659b4..a573d151c 100644 --- a/src/modules/webview/CMakeLists.txt +++ b/src/modules/webview/CMakeLists.txt @@ -1,11 +1,42 @@ -find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED WebEngine WebEngineWidgets ) +list( APPEND CALA_WEBVIEW_INCLUDE_DIRECTORIES + ${PROJECT_BINARY_DIR}/src/libcalamaresui +) +list( APPEND CALA_WEBVIEW_LINK_LIBRARIES + calamaresui +) + + +if ( ${QT_VERSION} VERSION_LESS 5.6.0 ) + find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED WebKit WebKitWidgets ) + + list( APPEND CALA_WEBVIEW_INCLUDE_DIRECTORIES + ${QT_QTWEBKIT_INCLUDE_DIR} + ) + list( APPEND CALA_WEBVIEW_LINK_LIBRARIES + Qt5::WebKit + Qt5::WebKitWidgets + ) + set( WEBVIEW_WITH_WEBKIT 1 ) +else() + find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED WebEngine WebEngineWidgets ) -include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui - ${QT_QTWEBENGINE_INCLUDE_DIR} ) + list( APPEND CALA_WEBVIEW_INCLUDE_DIRECTORIES + ${QT_QTWEBENGINE_INCLUDE_DIR} + ) + list( APPEND CALA_WEBVIEW_LINK_LIBRARIES + Qt5::WebEngine + Qt5::WebEngineWidgets + ) + set( WEBVIEW_WITH_WEBENGINE 1 ) +endif() + +include_directories( ${CALA_WEBVIEW_INCLUDE_DIRECTORIES} ) set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules ) +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/WebViewConfig.h.in + ${CMAKE_CURRENT_BINARY_DIR}/WebViewConfig.h ) calamares_add_plugin( webview TYPE viewmodule @@ -13,8 +44,6 @@ calamares_add_plugin( webview SOURCES WebViewStep.cpp LINK_LIBRARIES - calamaresui - Qt5::WebEngine - Qt5::WebEngineWidgets + ${CALA_WEBVIEW_LINK_LIBRARIES} SHARED_LIB ) diff --git a/src/modules/webview/WebViewConfig.h.in b/src/modules/webview/WebViewConfig.h.in new file mode 100644 index 000000000..6611e44c0 --- /dev/null +++ b/src/modules/webview/WebViewConfig.h.in @@ -0,0 +1,7 @@ +#ifndef CALAMARESWEBVIEWCONFIG_H +#define CALAMARESWEBVIEWCONFIG_H + +#cmakedefine WEBVIEW_WITH_WEBENGINE +#cmakedefine WEBVIEW_WITH_WEBKIT + +#endif // CALAMARESWEBVIEWCONFIG_H diff --git a/src/modules/webview/WebViewStep.cpp b/src/modules/webview/WebViewStep.cpp index e0726bfa0..b5625b8fa 100644 --- a/src/modules/webview/WebViewStep.cpp +++ b/src/modules/webview/WebViewStep.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2015, Rohan Garg + * Copyright 2016, Teo Mrnjavac * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,7 +20,12 @@ #include "WebViewStep.h" #include + +#ifdef WEBVIEW_WITH_WEBKIT +#include +#else #include +#endif CALAMARES_PLUGIN_FACTORY_DEFINITION( WebViewStepFactory, registerPlugin(); ) @@ -27,7 +33,7 @@ WebViewStep::WebViewStep( QObject* parent ) : Calamares::ViewStep( parent ) { emit nextStatusChanged( true ); - m_view = new QWebEngineView; + m_view = new C_QWEBVIEW(); } diff --git a/src/modules/webview/WebViewStep.h b/src/modules/webview/WebViewStep.h index 4b6f3011d..9d8405a97 100644 --- a/src/modules/webview/WebViewStep.h +++ b/src/modules/webview/WebViewStep.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2015, Rohan Garg + * Copyright 2016, Teo Mrnjavac * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,7 +20,7 @@ #ifndef WEBVIEWPLUGIN_H #define WEBVIEWPLUGIN_H -#include +#include "WebViewConfig.h" #include #include @@ -28,7 +29,13 @@ #include -class QWebEngineView; +#ifdef WEBVIEW_WITH_WEBKIT +#define C_QWEBVIEW QWebView +#else +#define C_QWEBVIEW QWebEngineView +#endif + +class C_QWEBVIEW; class PLUGINDLLEXPORT WebViewStep : public Calamares::ViewStep { @@ -57,7 +64,7 @@ public: void setConfigurationMap( const QVariantMap& configurationMap ) override; private: - QWebEngineView *m_view; + C_QWEBVIEW *m_view; QString m_url; QString m_prettyName; };