summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.cmake49
-rw-r--r--src/CMakeLists.txt37
-rw-r--r--src/webenginequick/CMakeLists.txt1
-rw-r--r--src/webenginequick/configure.cmake5
4 files changed, 52 insertions, 40 deletions
diff --git a/configure.cmake b/configure.cmake
index 172831c69..35ab05981 100644
--- a/configure.cmake
+++ b/configure.cmake
@@ -189,42 +189,46 @@ int main(void){
#### Features
-qt_feature("qtwebengine-build" PRIVATE
- LABEL "Build Qt WebEngine"
+qt_feature("qtwebengine-build" PUBLIC
+ LABEL "Build QtWebEngine Modules"
PURPOSE "Enables building the Qt WebEngine modules."
)
+qt_feature("qtwebengine-core-build" PRIVATE
+ LABEL "Build QtWebEngineCore"
+ PURPOSE "Enables building the Qt WebEngineCore module."
+ CONDITION QT_FEATURE_qtwebengine_build
+)
qt_feature("qtwebengine-widgets-build" PRIVATE
- LABEL "Build Qt WebEngineWidgets"
+ LABEL "Build QtWebEngineWidgets"
PURPOSE "Enables building the Qt WebEngineWidgets module."
- CONDITION TARGET Qt::Widgets
+ CONDITION TARGET Qt::Widgets AND QT_FEATURE_qtwebengine_build
)
qt_feature("qtwebengine-quick-build" PRIVATE
- LABEL "Build Qt WebEngineQuick"
+ LABEL "Build QtWebEngineQuick"
PURPOSE "Enables building the Qt WebEngineQuick module."
- CONDITION TARGET Qt::Quick AND TARGET Qt::Qml
+ CONDITION TARGET Qt::Quick AND TARGET Qt::Qml AND QT_FEATURE_qtwebengine_build
)
-qt_feature("qtpdf-build" PRIVATE
+qt_feature("qtpdf-build" PUBLIC
LABEL "Build Qt PDF"
PURPOSE "Enables building the Qt Pdf modules."
)
qt_feature("qtpdf-widgets-build" PRIVATE
- LABEL "Build Qt PdfWidgets"
+ LABEL "Build QtPdfWidgets"
PURPOSE "Enables building the Qt Pdf module."
- CONDITION TARGET Qt::Widgets
+ CONDITION TARGET Qt::Widgets AND QT_FEATURE_qtpdf_build
)
qt_feature("qtpdf-quick-build" PRIVATE
- LABEL "Build Qt PdfQuick"
- PURPOSE "Enables building the Qt Pdf module."
- CONDITION TARGET Qt::Quick AND TARGET Qt::Qml
+ LABEL "Build QtPdfQuick"
+ PURPOSE "Enables building the QtPdfQuick module."
+ CONDITION TARGET Qt::Quick AND TARGET Qt::Qml AND QT_FEATURE_qtpdf_build
)
qt_feature("webengine-system-ninja" PRIVATE
- LABEL "Use system ninja"
- CONDITION Ninja_FOUND
+ LABEL "Build Ninja"
+ AUTODETECT NOT Ninja_FOUND OR Ninja_EXECUTABLE MATCHES ${WEBENGINE_ROOT_BUILD_DIR}
)
qt_feature("webengine-system-gn" PRIVATE
- LABEL "Use system gn"
- AUTODETECT FALSE
- CONDITION Gn_FOUND
+ LABEL "Build Gn"
+ AUTODETECT NOT Gn_FOUND OR Gn_EXECUTABLE MATCHES ${WEBENGINE_ROOT_BUILD_DIR}
)
# default assumed merge limit (should match the one in qt_cmdline.cmake)
set(jumbo_merge_limit 8)
@@ -463,11 +467,20 @@ add_check_for_support(
#### Summary
# > Qt WebEngine Build Features
-qt_configure_add_summary_section(NAME "Qt WebEngine")
+qt_configure_add_summary_section(NAME "WebEngine Repository Build Options")
qt_configure_add_summary_entry(ARGS "webengine-system-ninja")
qt_configure_add_summary_entry(ARGS "webengine-system-gn")
qt_configure_add_summary_entry(ARGS "webengine-jumbo-build")
qt_configure_add_summary_entry(ARGS "webengine-developer-build")
+qt_configure_add_summary_section(NAME "Build QtWebEngine Modules")
+qt_configure_add_summary_entry(ARGS "qtwebengine-core-build")
+qt_configure_add_summary_entry(ARGS "qtwebengine-widgets-build")
+qt_configure_add_summary_entry(ARGS "qtwebengine-quick-build")
+qt_configure_end_summary_section()
+qt_configure_add_summary_section(NAME "Build QtPdf Modules")
+qt_configure_add_summary_entry(ARGS "qtpdf-widgets-build")
+qt_configure_add_summary_entry(ARGS "qtpdf-quick-build")
+qt_configure_end_summary_section()
# >> Optional system libraries
if(UNIX)
qt_configure_add_summary_section(NAME "Optional system libraries")
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 501a687f1..5ba4cb1c6 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -18,6 +18,10 @@ qt_feature_module_end(ONLY_EVALUATE_FEATURES)
# SUPPORT CHECK
##
+# TODO: here we should return FATAL_ERROR and ask user to define
+# FEATURE_qtwebenignebuild=OFF if one wants to only build qtpdf,
+# however our ci setup is not flexible enough and configure step must succeed
+
if(NOT ${QtWebEngine_SUPPORT})
add_custom_target(WebEngineErrorMessage ALL
${CMAKE_COMMAND} -E cmake_echo_color --red "QtWebEngine will not be built: ${QtWebEngine_ERROR}"
@@ -25,7 +29,11 @@ if(NOT ${QtWebEngine_SUPPORT})
VERBATIM
)
message("-- Support check for QtWebEngine failed: ${QtWebEngine_ERROR}")
- set(QT_FEATURE_qtwebengine_build OFF CACHE BOOL "Build QtWebEngine" FORCE)
+ set(QT_FEATURE_qtwebengine_build OFF CACHE BOOL "Build QtWebEngine Modules" FORCE)
+ set(QT_FEATURE_qtwebengine_core_build OFF CACHE BOOL "Build QtWebEngineCore" FORCE)
+ set(QT_FEATURE_qtwebengine_widgets_build OFF CACHE BOOL "Build QtWebEngineWidgets" FORCE)
+ set(QT_FEATURE_qtwebengine_quick_build OFF CACHE BOOL "Build QtWebEngineQuick" FORCE)
+
endif()
if(NOT ${QtPdf_SUPPORT})
@@ -44,29 +52,25 @@ if(NOT QT_FEATURE_qtwebengine_build AND NOT QT_FEATURE_qtpdf_build)
return()
endif()
-if(NOT QT_FEATURE_qtwebengine_build)
- set(QT_FEATURE_qtwebengine_widgets_build OFF CACHE BOOL "Build QtWebEngineWidgets" FORCE)
- set(QT_FEATURE_qtwebengine_quick_build OFF CACHE BOOL "Build QtWebEngineQuick" FORCE)
-endif()
-
##
# MODULES
##
-if(QT_FEATURE_qtwebengine_build)
+if(QT_FEATURE_qtwebengine_core_build)
add_subdirectory(core)
add_subdirectory(process)
- if(QT_FEATURE_qtwebengine_widgets_build)
- add_subdirectory(webenginewidgets)
- endif()
- if(QT_FEATURE_qtwebengine_quick_build)
- add_subdirectory(webenginequick)
- endif()
endif()
+if(QT_FEATURE_qtwebengine_widgets_build)
+ add_subdirectory(webenginewidgets)
+endif()
+if(QT_FEATURE_qtwebengine_quick_build)
+ add_subdirectory(webenginequick)
+endif()
+
if(QT_FEATURE_qtpdf_build)
add_subdirectory(pdf)
# keep log order, pdf build after webengine
- if(QT_FEATURE_qtwebengine_build)
+ if(QT_FEATURE_qtwebengine_core_build)
add_dependencies(run_pdf_GnReady WebEngineCore)
endif()
if(QT_FEATURE_qtwebengine_widgets_build)
@@ -101,7 +105,7 @@ if(NOT Ninja_FOUND)
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
-DCMAKE_PREFIX_PATH:PATH=<INSTALL_DIR>
)
- if(QT_FEATURE_qtwebengine_build)
+ if(QT_FEATURE_qtwebengine_core_build)
add_dependencies(run_core_NinjaReady ninja)
endif()
if(QT_FEATURE_qtpdf_build)
@@ -128,7 +132,7 @@ if(NOT Gn_FOUND)
-DCMAKE_PREFIX_PATH:PATH=<INSTALL_DIR>
-DWEBENGINE_ROOT_BUILD_DIR=${PROJECT_BINARY_DIR}
)
- if(QT_FEATURE_qtwebengine_build)
+ if(QT_FEATURE_qtwebengine_core_build)
add_dependencies(run_core_GnReady gn)
endif()
if(QT_FEATURE_qtpdf_build)
@@ -173,7 +177,6 @@ endif()
# install gn for cross build
if(LINUX AND INSTALL_GN)
get_install_config(installConfig)
- message(${installConfig})
install(
PROGRAMS ${installDir}/bin/gn
CONFIGURATIONS ${installConfig}
diff --git a/src/webenginequick/CMakeLists.txt b/src/webenginequick/CMakeLists.txt
index 05340a3a7..a7f7d86bd 100644
--- a/src/webenginequick/CMakeLists.txt
+++ b/src/webenginequick/CMakeLists.txt
@@ -58,3 +58,4 @@ qt_internal_extend_target(qtwebenginequickplugin
Qt::CorePrivate
Qt::WebEngineQuickPrivate
)
+
diff --git a/src/webenginequick/configure.cmake b/src/webenginequick/configure.cmake
index 683a3f383..649154301 100644
--- a/src/webenginequick/configure.cmake
+++ b/src/webenginequick/configure.cmake
@@ -1,12 +1,7 @@
-qt_feature("webenginequick-qml" PRIVATE
- LABEL "Support Qt WebEngine Qml"
- PURPOSE "Provides WebEngine Qml support."
-)
qt_feature("webenginequick-ui-delegates" PRIVATE
SECTION "WebEngine"
LABEL "UI Delegates"
)
qt_configure_add_summary_section(NAME "Qt WebEngineQuick")
-qt_configure_add_summary_entry(ARGS "webenginequick-qml")
qt_configure_add_summary_entry(ARGS "webenginequick-ui-delegates")
qt_configure_end_summary_section()