[webview] Make optional based on presence of dependencies

This commit is contained in:
Adriaan de Groot 2019-04-30 13:12:16 +02:00
parent fe32322705
commit 2620829515

View File

@ -1,53 +1,60 @@
list( APPEND CALA_WEBVIEW_INCLUDE_DIRECTORIES set( CALA_WEBVIEW_INCLUDE_DIRECTORIES ${PROJECT_BINARY_DIR}/src/libcalamaresui )
${PROJECT_BINARY_DIR}/src/libcalamaresui set( CALA_WEBVIEW_LINK_LIBRARIES calamaresui )
)
list( APPEND CALA_WEBVIEW_LINK_LIBRARIES
calamaresui
)
option( WEBVIEW_FORCE_WEBKIT "Always build webview with WebKit instead of WebEngine regardless of Qt version." OFF) option( WEBVIEW_FORCE_WEBKIT "Always build webview with WebKit instead of WebEngine regardless of Qt version." OFF)
set( _reason "" )
message( STATUS "Found Qt version ${Qt5Core_VERSION}") message( STATUS "Found Qt version ${Qt5Core_VERSION}")
if ( Qt5Core_VERSION VERSION_LESS 5.6 OR WEBVIEW_FORCE_WEBKIT ) if ( Qt5Core_VERSION VERSION_LESS 5.6 OR WEBVIEW_FORCE_WEBKIT )
message( STATUS " .. using webkit") message( STATUS " .. using webkit")
find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED WebKit WebKitWidgets ) find_package( Qt5 ${QT_VERSION} CONFIG COMPONENTS WebKit WebKitWidgets )
list( APPEND CALA_WEBVIEW_INCLUDE_DIRECTORIES if ( Qt5WebKit_FOUND AND Qt5WebKitWidgets_FOUND )
${QT_QTWEBKIT_INCLUDE_DIR} list( APPEND CALA_WEBVIEW_INCLUDE_DIRECTORIES
) ${QT_QTWEBKIT_INCLUDE_DIR}
list( APPEND CALA_WEBVIEW_LINK_LIBRARIES )
Qt5::WebKit list( APPEND CALA_WEBVIEW_LINK_LIBRARIES
Qt5::WebKitWidgets Qt5::WebKit
) Qt5::WebKitWidgets
set( WEBVIEW_WITH_WEBKIT 1 ) )
set( WEBVIEW_WITH_WEBKIT 1 )
else()
set( _reason "No suitable WebKit" )
endif()
else() else()
message( STATUS " .. using webengine") message( STATUS " .. using webengine")
find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED WebEngine WebEngineWidgets ) find_package( Qt5 ${QT_VERSION} CONFIG COMPONENTS WebEngine WebEngineWidgets )
list( APPEND CALA_WEBVIEW_INCLUDE_DIRECTORIES if ( Qt5WebEngine_FOUND AND Qt5WebEngineWidgets_FOUND )
${QT_QTWEBENGINE_INCLUDE_DIR} list( APPEND CALA_WEBVIEW_INCLUDE_DIRECTORIES
) ${QT_QTWEBENGINE_INCLUDE_DIR}
list( APPEND CALA_WEBVIEW_LINK_LIBRARIES )
Qt5::WebEngine list( APPEND CALA_WEBVIEW_LINK_LIBRARIES
Qt5::WebEngineWidgets Qt5::WebEngine
) Qt5::WebEngineWidgets
set( WEBVIEW_WITH_WEBENGINE 1 ) )
set( WEBVIEW_WITH_WEBENGINE 1 )
else()
set( _reason "No suitable WebEngine" )
endif()
endif() endif()
include_directories( ${CALA_WEBVIEW_INCLUDE_DIRECTORIES} ) if ( NOT _reason )
include_directories( ${CALA_WEBVIEW_INCLUDE_DIRECTORIES} )
set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/WebViewConfig.h.in
${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules ) ${CMAKE_CURRENT_BINARY_DIR}/WebViewConfig.h )
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/WebViewConfig.h.in calamares_add_plugin( webview
${CMAKE_CURRENT_BINARY_DIR}/WebViewConfig.h ) TYPE viewmodule
EXPORT_MACRO PLUGINDLLEXPORT_PRO
calamares_add_plugin( webview SOURCES
TYPE viewmodule WebViewStep.cpp
EXPORT_MACRO PLUGINDLLEXPORT_PRO LINK_PRIVATE_LIBRARIES
SOURCES ${CALA_WEBVIEW_LINK_LIBRARIES}
WebViewStep.cpp SHARED_LIB
LINK_PRIVATE_LIBRARIES )
${CALA_WEBVIEW_LINK_LIBRARIES} else()
SHARED_LIB calamares_skip_module( "webview (${_reason})" )
) endif()