2016-04-16 00:50:31 +02:00
|
|
|
# determines the web view provider (either Qt WebKit or Qt WebEngine)
|
|
|
|
|
2017-02-11 02:31:43 +01:00
|
|
|
if(TARGET_CONFIG_DONE)
|
|
|
|
message(FATAL_ERROR "Can not include WebViewProviderConfig module when targets are already configured.")
|
|
|
|
endif()
|
|
|
|
|
2016-08-29 15:41:11 +02:00
|
|
|
include(QtLinkage)
|
|
|
|
|
2016-04-16 00:50:31 +02:00
|
|
|
set(WEBVIEW_PROVIDER "auto" CACHE STRING "specifies the web view provider: auto (default), webkit, webengine or none")
|
2016-11-08 19:57:57 +01:00
|
|
|
if(NOT WEBVIEW_PROVIDER OR "${WEBVIEW_PROVIDER}" STREQUAL "auto")
|
2016-10-29 00:26:06 +02:00
|
|
|
find_qt5_module(WebKitWidgets OPTIONAL)
|
|
|
|
if(QT5_WebKitWidgets_FOUND)
|
|
|
|
set(WEBVIEW_PROVIDER WebKitWidgets)
|
2016-11-08 19:57:57 +01:00
|
|
|
set(WEBVIEW_DEFINITION "${META_PROJECT_VARNAME_UPPER}_USE_WEBKIT")
|
2016-04-16 00:50:31 +02:00
|
|
|
message(STATUS "No web view provider explicitly specified, defaulting to Qt WebKit.")
|
|
|
|
else()
|
2016-10-29 00:26:06 +02:00
|
|
|
find_qt5_module(WebEngineWidgets OPTIONAL)
|
|
|
|
if(QT5_WebEngineWidgets_FOUND)
|
|
|
|
set(WEBVIEW_PROVIDER WebEngineWidgets)
|
2016-11-08 19:57:57 +01:00
|
|
|
set(WEBVIEW_DEFINITION "${META_PROJECT_VARNAME_UPPER}_USE_WEBENGINE")
|
2016-07-16 23:12:02 +02:00
|
|
|
list(APPEND ADDITIONAL_QT_REPOS "webengine")
|
2016-07-09 23:52:43 +02:00
|
|
|
message(STATUS "No web view provider explicitly specified, defaulting to Qt WebEngine.")
|
|
|
|
else()
|
2016-07-10 00:22:20 +02:00
|
|
|
set(WEBVIEW_PROVIDER "")
|
2016-11-08 19:57:57 +01:00
|
|
|
set(WEBVIEW_DEFINITION "${META_PROJECT_VARNAME_UPPER}_NO_WEBVIEW")
|
2016-07-09 23:52:43 +02:00
|
|
|
message(STATUS "No web view provider available, web view has been disabled.")
|
|
|
|
endif()
|
2016-04-16 00:50:31 +02:00
|
|
|
endif()
|
|
|
|
else()
|
|
|
|
if(${WEBVIEW_PROVIDER} STREQUAL "webkit")
|
2016-10-29 00:26:06 +02:00
|
|
|
find_qt5_module(WebKitWidgets REQUIRED)
|
|
|
|
set(WEBVIEW_PROVIDER WebKitWidgets)
|
2016-11-08 19:57:57 +01:00
|
|
|
set(WEBVIEW_DEFINITION "${META_PROJECT_VARNAME_UPPER}_USE_WEBKIT")
|
2016-07-09 23:52:43 +02:00
|
|
|
message(STATUS "Using Qt WebKit as web view provider.")
|
2016-04-16 00:50:31 +02:00
|
|
|
elseif(${WEBVIEW_PROVIDER} STREQUAL "webengine")
|
2016-10-29 00:26:06 +02:00
|
|
|
find_qt5_module(WebEngineWidgets REQUIRED)
|
|
|
|
set(WEBVIEW_PROVIDER WebEngineWidgets)
|
2016-11-08 19:57:57 +01:00
|
|
|
set(WEBVIEW_DEFINITION "${META_PROJECT_VARNAME_UPPER}_USE_WEBENGINE")
|
2016-07-16 23:12:02 +02:00
|
|
|
list(APPEND ADDITIONAL_QT_REPOS "webengine")
|
2016-07-09 23:52:43 +02:00
|
|
|
message(STATUS "Using Qt WebEngine as web view provider.")
|
2016-04-16 00:50:31 +02:00
|
|
|
elseif(${WEBVIEW_PROVIDER} STREQUAL "none")
|
2016-11-08 19:57:57 +01:00
|
|
|
set(WEBVIEW_DEFINITION "${META_PROJECT_VARNAME_UPPER}_NO_WEBVIEW")
|
2016-04-21 23:58:52 +02:00
|
|
|
set(WEBVIEW_PROVIDER "")
|
2016-07-09 23:52:43 +02:00
|
|
|
message(STATUS "Web view has been disabled.")
|
2016-04-16 00:50:31 +02:00
|
|
|
else()
|
|
|
|
message(FATAL_ERROR "The specified web view provider '${WEBVIEW_PROVIDER}' is unknown.")
|
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
|
2016-10-29 00:26:06 +02:00
|
|
|
if(WEBVIEW_PROVIDER)
|
2017-03-14 22:45:33 +01:00
|
|
|
# require the selected Qt module
|
2016-11-08 19:57:57 +01:00
|
|
|
use_qt5_module(${WEBVIEW_PROVIDER} REQUIRED)
|
2017-03-14 22:45:33 +01:00
|
|
|
|
|
|
|
# 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"
|
|
|
|
)
|
2016-10-29 00:26:06 +02:00
|
|
|
endif()
|
2017-03-14 22:45:33 +01:00
|
|
|
|
|
|
|
list(APPEND META_PUBLIC_COMPILE_DEFINITIONS ${WEBVIEW_DEFINITION})
|