Provide header files to select Qt WebKit/WebEngine

Allows supporting Qt WebKit and Qt WebEngine at the
same time more conveniently
This commit is contained in:
Martchus 2017-03-14 22:45:33 +01:00
parent 93245e9e0c
commit 14c3c7690a
4 changed files with 78 additions and 1 deletions

View File

@ -95,6 +95,11 @@ set(CMAKE_MODULE_FILES
cmake/modules/WebViewProviderConfig.cmake
)
set(CMAKE_TEMPLATE_FILES
cmake/templates/webviewdefs.h.in
cmake/templates/webviewincludes.h.in
)
set(TS_FILES
translations/${META_PROJECT_NAME}_de_DE.ts
translations/${META_PROJECT_NAME}_en_US.ts

View File

@ -48,6 +48,32 @@ else()
endif()
if(WEBVIEW_PROVIDER)
# require the selected Qt module
use_qt5_module(${WEBVIEW_PROVIDER} REQUIRED)
# add header files with some defines/includes to conveniently use the selected provider
if(META_WEBVIEW_SRC_DIR)
set(WEBVIEW_HEADER_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${META_WEBVIEW_SRC_DIR}")
else()
set(WEBVIEW_HEADER_DIR "${CMAKE_CURRENT_SOURCE_DIR}/gui")
endif()
include(TemplateFinder)
find_template_file("webviewdefs.h" QT_UTILITIES WEBVIEWDEFS_H_TEMPLATE_FILE)
configure_file(
"${WEBVIEWDEFS_H_TEMPLATE_FILE}"
"${WEBVIEW_HEADER_DIR}/webviewdefs.h" # simply add this to source to ease inclusion
NEWLINE_STYLE UNIX # since this goes to sources ensure consistency
)
find_template_file("webviewincludes.h" QT_UTILITIES WEBVIEWINCLUDES_H_TEMPLATE_FILE)
configure_file(
"${WEBVIEWINCLUDES_H_TEMPLATE_FILE}"
"${WEBVIEW_HEADER_DIR}/webviewincludes.h" # simply add this to source to ease inclusion
NEWLINE_STYLE UNIX # since this goes to sources ensure consistency
)
list(APPEND WIDGETS_FILES
"${WEBVIEW_HEADER_DIR}/webviewdefs.h"
"${WEBVIEW_HEADER_DIR}/webviewincludes.h"
)
endif()
list(APPEND META_PRIVATE_COMPILE_DEFINITIONS ${WEBVIEW_DEFINITION})
list(APPEND META_PUBLIC_COMPILE_DEFINITIONS ${WEBVIEW_DEFINITION})

View File

@ -0,0 +1,28 @@
// Created via CMake from template webviewdefs.h.in
// WARNING! Any changes to this file will be overwritten by the next CMake run!
#ifndef @META_PROJECT_VARNAME_UPPER@_WEB_VIEW_DEFINES
#define @META_PROJECT_VARNAME_UPPER@_WEB_VIEW_DEFINES
#include <QtGlobal>
#if defined(@META_PROJECT_VARNAME_UPPER@_USE_WEBENGINE)
# define @META_PROJECT_VARNAME_UPPER@_WEB_VIEW QWebEngineView
# define @META_PROJECT_VARNAME_UPPER@_WEB_PAGE QWebEnginePage
#elif defined(@META_PROJECT_VARNAME_UPPER@_USE_WEBKIT)
# define @META_PROJECT_VARNAME_UPPER@_WEB_VIEW QWebView
# define @META_PROJECT_VARNAME_UPPER@_WEB_PAGE QWebPage
# define @META_PROJECT_VARNAME_UPPER@_WEB_FRAME QWebFrame
#endif
#ifdef @META_PROJECT_VARNAME_UPPER@_WEB_VIEW
QT_FORWARD_DECLARE_CLASS(@META_PROJECT_VARNAME_UPPER@_WEB_VIEW)
#endif
#ifdef @META_PROJECT_VARNAME_UPPER@_WEB_PAGE
QT_FORWARD_DECLARE_CLASS(@META_PROJECT_VARNAME_UPPER@_WEB_PAGE)
#endif
#ifdef @META_PROJECT_VARNAME_UPPER@_WEB_FRAME
QT_FORWARD_DECLARE_CLASS(@META_PROJECT_VARNAME_UPPER@_WEB_FRAME)
#endif
#endif // @META_PROJECT_VARNAME_UPPER@_WEB_VIEW_DEFINES

View File

@ -0,0 +1,18 @@
// Created via CMake from template webviewincludes.h.in
// WARNING! Any changes to this file will be overwritten by the next CMake run!
#ifndef @META_PROJECT_VARNAME_UPPER@_WEB_VIEW_INCLUDES
#define @META_PROJECT_VARNAME_UPPER@_WEB_VIEW_INCLUDES
#include <QtGlobal>
#if defined(@META_PROJECT_VARNAME_UPPER@_USE_WEBENGINE)
# include <QWebEngineView>
# include <QWebEnginePage>
#elif defined(@META_PROJECT_VARNAME_UPPER@_USE_WEBKIT)
# include <QWebView>
# include <QWebPage>
# include <QWebFrame>
#endif
#endif // @META_PROJECT_VARNAME_UPPER@_WEB_VIEW_INCLUDES