summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt28
-rw-r--r--cmake/Functions.cmake39
-rw-r--r--src/CMakeLists.txt27
-rw-r--r--src/core/CMakeLists.txt181
-rw-r--r--src/core/api/CMakeLists.txt74
-rw-r--r--src/core/generator.cmake10
-rw-r--r--src/process/CMakeLists.txt20
7 files changed, 353 insertions, 26 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fd00f06e9..fd16c061d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -4,7 +4,7 @@ include(.cmake.conf)
include(ExternalProject)
include(cmake/Functions.cmake)
-project(QtWebEngineSuperBuild
+project(QtWebEngineRepoSuperBuild
VERSION "${QT_REPO_MODULE_VERSION}"
DESCRIPTION "Qt WebEngine Libraries"
HOMEPAGE_URL "https://qt.io/"
@@ -25,7 +25,6 @@ set(__QtFeature_only_evaluate_features OFF)
include(configure.cmake)
include(src/core/api/configure.cmake)
qt_feature_module_end(ONLY_EVALUATE_FEATURES)
-qt_build_repo_end()
if(NOT ${webEngineSupport})
add_custom_target(WebEngineErrorMessage ALL
@@ -47,6 +46,10 @@ if(NOT QT_FEATURE_qtwebengine_build AND NOT QT_FEATURE_qtpdf_build)
return()
endif()
+add_subdirectory(src/core/api)
+add_subdirectory(src/process)
+qt_build_repo_end()
+
### NINJA
if(NOT Ninja_FOUND)
@@ -87,20 +90,22 @@ get_qt_features(featureList webengine)
get_qt_features(featureList qtwebengine)
list(TRANSFORM featureList PREPEND "-D")
-list(APPEND webenginecoreCmakeArgs
+list(APPEND libsCmakeArgs
"-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}"
"-DWEBENGINE_ROOT_BUILD_PATH=${CMAKE_CURRENT_BINARY_DIR}"
"-DWEBENGINE_ROOT_SOURCE_DIR=${WEBENGINE_ROOT_SOURCE_DIR}"
- "${featureList}")
+ "-DWEBENGINE_REPO_BUILD=TRUE"
+ "${featureList}"
+)
externalproject_add(libs
- SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/src/core
- BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/src/core
- INSTALL_DIR ${installDir}
+ SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/src
+ BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/src
PREFIX libs
USES_TERMINAL_CONFIGURE ON
USES_TERMINAL_BUILD ON
- CMAKE_ARGS ${webenginecoreCmakeArgs}
+ BUILD_ALWAYS TRUE
+ CMAKE_ARGS ${libsCmakeArgs}
)
if(NOT Gn_FOUND)
@@ -111,3 +116,10 @@ if(NOT Ninja_FOUND)
externalproject_add_stepdependencies(gn install ninja)
endif()
+# install resources (again), coin calls install with DESTDIR
+install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/translations/qtwebengine_locales
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/translations
+)
+install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/resources
+ DESTINATION ${CMAKE_INSTALL_PREFIX}
+)
diff --git a/cmake/Functions.cmake b/cmake/Functions.cmake
index 89dff400f..6f69bb792 100644
--- a/cmake/Functions.cmake
+++ b/cmake/Functions.cmake
@@ -56,3 +56,42 @@ function(get_qt_features outList module)
set(${outList} "${${outList}}" "${_featureList}" PARENT_SCOPE)
endif()
endfunction()
+
+function(get_configure_mode configureMode)
+ if (NOT DEFINED WEBENGINE_REPO_BUILD)
+ set(${configureMode} NO_CONFIG_HEADER_FILE NO_SYNC_QT PARENT_SCOPE)
+ endif()
+endfunction()
+
+function(make_config_for_gn target configFileName)
+ if(NOT DEFINED WEBENGINE_REPO_BUILD)
+ file(GENERATE
+ OUTPUT ${configFileName}.cxx.cmake
+ CONTENT [[
+ set(GN_INCLUDES_IN $<TARGET_PROPERTY:INCLUDE_DIRECTORIES>)
+ set(GN_DEFINES_IN $<TARGET_PROPERTY:COMPILE_DEFINITIONS>)
+ set(GN_LIBS_IN $<TARGET_PROPERTY:LINK_LIBRARIES>)
+ set(GN_LINK_OPTIONS_IN $<TARGET_PROPERTY:LINK_OPTIONS>)
+ set(GN_CXX_COMPILE_OPTIONS_IN $<TARGET_PROPERTY:COMPILE_OPTIONS>)]]
+ CONDITION $<COMPILE_LANGUAGE:CXX>
+ TARGET ${target})
+ file(GENERATE
+ OUTPUT ${configFileName}.c.cmake
+ CONTENT [[ set(GN_C_COMPILE_OPTIONS_IN $<TARGET_PROPERTY:COMPILE_OPTIONS>)]]
+ CONDITION $<COMPILE_LANGUAGE:C>
+ TARGET ${target})
+ endif()
+endfunction()
+
+function(make_install_only target)
+ if(NOT DEFINED WEBENGINE_REPO_BUILD)
+ set_target_properties(${target} PROPERTIES EXCLUDE_FROM_ALL TRUE)
+ endif()
+endfunction()
+
+macro(assertRunAsTopLevelBuild condition)
+ if (NOT DEFINED WEBENGINE_REPO_BUILD AND ${condition})
+ message(FATAL_ERROR "This cmake file should run as top level build.")
+ return()
+ endif()
+endmacro()
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 000000000..4f3858ef6
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,27 @@
+cmake_minimum_required(VERSION 3.18.0)
+
+if(NOT DEFINED WEBENGINE_ROOT_SOURCE_DIR)
+ get_filename_component(WEBENGINE_ROOT_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/.." ABSOLUTE)
+endif()
+
+include(${WEBENGINE_ROOT_SOURCE_DIR}/.cmake.conf)
+include(${WEBENGINE_ROOT_SOURCE_DIR}/cmake/Functions.cmake)
+
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${WEBENGINE_ROOT_SOURCE_DIR}/cmake")
+
+assertRunAsTopLevelBuild(TRUE)
+
+project(QtWebEngineRepo
+ VERSION "${QT_REPO_MODULE_VERSION}"
+ DESCRIPTION "QtWebEngineRepo for QtWebEngineCore, QtWebEngine, QtWebEngineWidgets, QtPdf modules"
+ HOMEPAGE_URL "https://qt.io"
+ LANGUAGES CXX C)
+
+find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals Core)
+find_package(Qt6 ${PROJECT_VERSION} CONFIG OPTIONAL_COMPONENTS Gui Widgets Network OpenGL OpenGLWidgets Quick Qml QuickTest Test)
+
+qt_build_repo_begin()
+add_subdirectory(core)
+add_subdirectory(process)
+qt_build_repo_end()
+
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index bdb937e19..77aab9364 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -1,19 +1,20 @@
cmake_minimum_required(VERSION 3.18.0)
-project(QtWebEngineCore
- VERSION "6.0.0"
- DESCRIPTION "QtWebEngineCore"
- HOMEPAGE_URL "https://doc.qt.io/qt-5/qtwebenginecore-module.html"
- LANGUAGES CXX C)
-
-if (NOT DEFINED CMAKE_WEBENGINE_ROOT_BUILD_PATH)
- get_filename_component(CMAKE_WEBENGINE_ROOT_BUILD_PATH ${CMAKE_CURRENT_BINARY_DIR}/../.. ABSOLUTE)
+if(NOT DEFINED WEBENGINE_ROOT_SOURCE_DIR)
+ get_filename_component(WEBENGINE_ROOT_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/../.." ABSOLUTE)
+endif()
+if (NOT DEFINED WEBENGINE_ROOT_BUILD_DIR)
+ get_filename_component(WEBENGINE_ROOT_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/../.." ABSOLUTE)
endif()
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/../../cmake")
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${WEBENGINE_ROOT_SOURCE_DIR}/cmake")
set(buildDir "${CMAKE_CURRENT_BINARY_DIR}/debug")
-include(${PROJECT_SOURCE_DIR}/../../cmake/Functions.cmake)
+include(${WEBENGINE_ROOT_SOURCE_DIR}/cmake/Functions.cmake)
+
+assertRunAsTopLevelBuild(TRUE)
+
+add_subdirectory(api)
get_qt_features(featureList webengine)
message(${featureList})
@@ -24,15 +25,119 @@ find_package(Gn REQUIRED)
find_package(Ninja REQUIRED)
find_package(Python2 REQUIRED)
-qt_build_repo_begin()
+get_target_property(qtWebEngineProcessName Qt6::WebEngineCore QTWEBENGINEPROCESS_NAME)
include(generator.cmake)
-configure_file(${PROJECT_SOURCE_DIR}/configure/BUILD.toolchain.gn.in ${buildDir}/toolchain/BUILD.gn @ONLY)
-configure_file(${PROJECT_SOURCE_DIR}/configure/BUILD.root.gn.in ${buildDir}/BUILD.gn @ONLY)
+configure_file(${WEBENGINE_ROOT_SOURCE_DIR}/src/core/configure/BUILD.toolchain.gn.in ${buildDir}/toolchain/BUILD.gn @ONLY)
+configure_file(${WEBENGINE_ROOT_SOURCE_DIR}/src/core/configure/BUILD.root.gn.in ${buildDir}/BUILD.gn @ONLY)
get_target_property(gnCmd Gn::gn IMPORTED_LOCATION)
-set(gnArg help)
+set(gnArg gen ${buildDir})
+
+list(APPEND gnArg
+ --script-executable=${Python2_EXECUTABLE}
+ --root=${WEBENGINE_ROOT_SOURCE_DIR}/src/3rdparty/chromium)
+
+list(APPEND gnArgArg
+ use_qt=true
+ init_stack_vars=false
+ is_component_build=false
+ is_shared=true
+ enable_debugallocation=false
+ enable_media_remoting=false
+ enable_message_center=false
+ enable_nacl=false
+ enable_remoting=false
+ enable_reporting=false
+ enable_resource_allowlist_generation=false
+ enable_swiftshader=false
+ enable_swiftshader_vulkan=false
+ angle_enable_swiftshader=false
+ enable_web_speech=false
+ enable_widevine=true
+ forbid_non_component_debug_builds=false
+ has_native_accessibility=false
+ safe_browsing_mode=0
+ skia_use_dawn=false
+ toolkit_views=false
+ treat_warnings_as_errors=false
+ use_allocator_shim=false
+ use_allocator="none"
+ use_custom_libcxx=false
+ chrome_pgo_phase=0
+ enable_hangout_services_extension=false
+ optimize_webui=false
+ enable_js_type_check=false
+ v8_use_external_startup_data=false
+ strip_absolute_paths_from_debug_symbols=false
+ use_jumbo_build=true
+ jumbo_file_merge_limit=8
+ jumbo_build_excluded=["browser"]
+ enable_precompiled_headers=false
+ is_official_build=false
+ is_unsafe_developer_build=false
+ from_here_uses_location_builtins=false
+ is_debug=true use_debug_fission=false
+ blink_symbol_level=0
+ remove_v8base_debug_symbols=true
+ use_cups=false
+ use_gio=false
+ use_gnome_keyring=false
+ use_udev=true
+ use_bundled_fontconfig=false
+ use_sysroot=false
+ enable_session_service=false
+ is_cfi=false
+ use_ozone=true
+ use_x11=false
+ ozone_auto_platforms=false
+ ozone_platform_headless=false
+ ozone_platform_external=true
+ ozone_platform="qt"
+ ozone_extra_path="${CMAKE_CURRENT_LIST_DIR}/ozone/ozone_extra.gni"
+ use_gold=false
+ use_lld=true
+ is_clang=false
+ custom_toolchain="${buildDir}/toolchain:target"
+ host_toolchain="${buildDir}/toolchain:host"
+ host_cpu="x64"
+ pkg_config="pkg-config"
+ host_pkg_config="/usr/bin/pkg-config"
+ use_system_zlib=true
+ use_system_minizip=true
+ pdfium_use_system_zlib=true
+ use_system_libpng=true
+ pdfium_use_system_libpng=true
+ use_system_libjpeg=true
+ use_system_freetype=true
+ use_system_harfbuzz=false
+ use_glib=false
+ enable_basic_printing=false
+ enable_print_preview=false
+ enable_pdf=false
+ enable_plugins=false
+ enable_spellcheck=false
+ enable_webrtc=false
+ proprietary_codecs=false
+ enable_extensions=false
+ use_kerberos=false
+ use_pulseaudio=true
+ use_alsa=true
+ ozone_platform_x11=true
+ use_xkbcommon=true
+ use_xscrnsaver=true
+ rtc_use_x11=true
+ use_system_libevent=true
+ use_system_libwebp=true
+ use_system_opus=true
+ use_system_snappy=true
+ use_system_libvpx=true
+ use_system_re2=true
+ use_system_lcms2=true
+ qtwebengine_target="${buildDir}:QtWebEngineCore")
+list(JOIN gnArgArg " " gnArgArg)
+list(APPEND gnArg "--args=${gnArgArg}")
message("configure with gn")
execute_process(
@@ -48,19 +153,61 @@ if(NOT gnResult EQUAL 0)
message(FATAL_ERROR "Calling gn - FAILED ! \n${gnOutput}\n${gnError}")
endif()
+message("CMD: ${gnCmd}\nARGS: ${gnArg}\nOUTPUT: ${gnOutput}")
+
+include(${buildDir}/QtWebEngineCore.cmake)
+
add_custom_command(
OUTPUT QtWebEngineCore.stamp
WORKING_DIRECTORY ${buildDir}
COMMAND Ninja::ninja
$ENV{NINJAFLAGS}
-C ${buildDir}
- ${CMAKE_PROJECT_NAME}
+ QtWebEngineCore
USES_TERMINAL
VERBATIM
)
add_custom_target(ninja ALL DEPENDS QtWebEngineCore.stamp)
-message("CMD: ${gn_cmd}\nARGS: ${gnArg}\nOUTPUT: ${gnOutput}")
+add_dependencies(WebEngineCore ninja)
+target_include_directories(WebEngineCore PRIVATE ${buildDir}/gen)
+
+# there is no syncqt on this module so use includes provided for gn, which should be identical
+target_include_directories(WebEngineCore PRIVATE ${GN_INCLUDES_IN})
+add_library(chromiumObjects OBJECT IMPORTED GLOBAL)
+set_property(TARGET chromiumObjects PROPERTY IMPORTED_OBJECTS ${NINJA_OBJECTS})
+target_link_libraries(WebEngineCore PRIVATE chromiumObjects)
+target_link_libraries(WebEngineCore PRIVATE ${NINJA_ARCHIVES})
+target_link_libraries(WebEngineCore PUBLIC ${NINJA_LIBS})
+
+#
+# RESOURCES
+#
+
+#TODO: use simply filter / globbing-expressions
+set(localeList am ar bg bn ca cs da de el en-GB en-US es-419 es et fa fi fil fr
+ gu he hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk
+ sl sr sv sw ta te th tr uk vi zh-CN zh-TW)
+
+foreach(loc ${localeList})
+ get_filename_component(locSourcePath ${buildDir}/qtwebengine_locales/${loc}.pak ABSOLUTE)
+ LIST(APPEND localeFiles ${locSourcePath})
+endforeach()
+
+set(resourceList qtwebengine_resources.pak
+ qtwebengine_resources_100p.pak
+ qtwebengine_resources_200p.pak
+ qtwebengine_devtools_resources.pak)
+
+foreach(res ${resourceList})
+ get_filename_component(resSourcePath ${buildDir}/${res} ABSOLUTE)
+ LIST(APPEND resourceFiles ${resSourcePath})
+endforeach()
+
+
+get_filename_component(icuFiles ${buildDir}/icudtl.dat ABSOLUTE)
-qt_build_repo_end()
+install(FILES ${localeFiles} DESTINATION ${INSTALL_DATADIR}/translations/qtwebengine_locales)
+install(FILES ${resourceFiles} DESTINATION ${INSTALL_DATADIR}/resources)
+install(FILES ${icuFiles} DESTINATION ${INSTALL_DATADIR}/resources)
diff --git a/src/core/api/CMakeLists.txt b/src/core/api/CMakeLists.txt
new file mode 100644
index 000000000..cca5150ee
--- /dev/null
+++ b/src/core/api/CMakeLists.txt
@@ -0,0 +1,74 @@
+if(NOT DEFINED WEBENGINE_ROOT_SOURCE_DIR)
+ get_filename_component(WEBENGINE_ROOT_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/../../.." ABSOLUTE)
+endif()
+find_package(Qt6 ${PROJECT_VERSION} REQUIRED COMPONENTS Gui Network OpenGL Quick)
+find_package(Qt6 ${PROJECT_VERSION} QUIET OPTIONAL_COMPONENTS PrintSupport WebChannel)
+include(${WEBENGINE_ROOT_SOURCE_DIR}/cmake/Functions.cmake)
+
+get_configure_mode(configureMode)
+
+set(qtWebEngineProcessName QtWebEngineProcess)
+
+qt_internal_add_module(WebEngineCore
+ ${configureMode}
+ SOURCES
+ qtwebenginecoreglobal.cpp qtwebenginecoreglobal.h qtwebenginecoreglobal_p.h
+ qwebenginecallback.h qwebenginecallback_p.h
+ qwebenginecertificateerror.cpp qwebenginecertificateerror.h
+ qwebengineclientcertificateselection.cpp qwebengineclientcertificateselection.h
+ qwebengineclientcertificatestore.cpp qwebengineclientcertificatestore.h
+ qwebenginecontextmenurequest.cpp qwebenginecontextmenurequest.h qwebenginecontextmenurequest_p.h
+ qwebenginecookiestore.cpp qwebenginecookiestore.h qwebenginecookiestore_p.h
+ qwebenginedownloadrequest.cpp qwebenginedownloadrequest.h qwebenginedownloadrequest_p.h
+ qwebenginefindtextresult.cpp qwebenginefindtextresult.h
+ qwebenginefullscreenrequest.cpp qwebenginefullscreenrequest.h
+ qwebenginehistory.cpp qwebenginehistory.h qwebenginehistory_p.h
+ qwebenginehttprequest.cpp qwebenginehttprequest.h
+ qwebengineloadrequest.cpp qwebengineloadrequest.h
+ qwebenginemessagepumpscheduler.cpp qwebenginemessagepumpscheduler_p.h
+ qwebenginenotification.cpp qwebenginenotification.h
+ qwebenginepage.cpp qwebenginepage.h qwebenginepage_p.h
+ qwebengineprofile.cpp qwebengineprofile.h qwebengineprofile_p.h
+ qwebenginequotarequest.cpp qwebenginequotarequest.h
+ qwebengineregisterprotocolhandlerrequest.cpp qwebengineregisterprotocolhandlerrequest.h
+ qwebenginescript.cpp qwebenginescript.h
+ qwebenginescriptcollection.cpp qwebenginescriptcollection.h qwebenginescriptcollection_p.h
+ qwebenginesettings.cpp qwebenginesettings.h
+ qwebengineurlrequestinfo.cpp qwebengineurlrequestinfo.h qwebengineurlrequestinfo_p.h
+ qwebengineurlrequestinterceptor.h
+ qwebengineurlrequestjob.cpp qwebengineurlrequestjob.h
+ qwebengineurlscheme.cpp qwebengineurlscheme.h
+ qwebengineurlschemehandler.cpp qwebengineurlschemehandler.h
+ DEFINES
+ BUILDING_CHROMIUM
+ NOMINMAX
+ INCLUDE_DIRECTORIES
+ ../
+ ../../3rdparty/chromium
+ ../../3rdparty/chromium/third_party/abseil-cpp
+ LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::QuickPrivate
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::Network
+ Qt::Quick
+)
+
+set_target_properties(WebEngineCore PROPERTIES QTWEBENGINEPROCESS_NAME ${qtWebEngineProcessName})
+
+# Chromium included headers are not clean
+qt_skip_warnings_are_errors(WebEngineCore)
+make_install_only(WebEngineCore)
+make_config_for_gn(WebEngineCore gn_config)
+
+qt_internal_extend_target(WebEngineCore CONDITION QT_FEATURE_webengine_printing_and_pdf
+ PUBLIC_LIBRARIES
+ Qt::PrintSupport
+)
+qt_internal_extend_target(WebEngineCore CONDITION QT_FEATURE_webengine_webchannel
+ PUBLIC_LIBRARIES
+ Qt::WebChannel
+)
diff --git a/src/core/generator.cmake b/src/core/generator.cmake
index 60042fb97..160275fc7 100644
--- a/src/core/generator.cmake
+++ b/src/core/generator.cmake
@@ -1,7 +1,7 @@
set(GN_DEFINES QT_NO_KEYWORDS
QT_USE_QSTRINGBUILDER
QTWEBENGINECORE_VERSION_STR=\\\"${QT_REPO_MODULE_VERSION}\\\"
- QTWEBENGINEPROCESS_NAME=\\\"${QTWEBENGINEPROCESS_NAME}\\\"
+ QTWEBENGINEPROCESS_NAME=\\\"${qtWebEngineProcessName}\\\"
BUILDING_CHROMIUM)
set(GN_SOURCES_IN
@@ -242,6 +242,13 @@ foreach(GN_DEFINE ${GN_DEFINES_IN})
endforeach()
string(REPLACE ";" ",\n " GN_ARGS_DEFINES "${GN_ARGS_DEFINES}")
string(REPLACE ";" ",\n " GN_DEFINES "${GN_DEFINES}")
+# we had no qtsync on headers during configure, so take current interface from expression generator
+get_target_property(moduleIncludes WebEngineCore INCLUDE_DIRECTORIES)
+foreach(moduleInclude ${moduleIncludes})
+ if (moduleInclude MATCHES "\\$<BUILD_INTERFACE:([^,>]+)>")
+ list(APPEND GN_INCLUDES_IN ${CMAKE_MATCH_1})
+ endif()
+endforeach()
list(REMOVE_DUPLICATES GN_INCLUDES_IN)
foreach(GN_INCLUDE ${GN_INCLUDES_IN})
list(APPEND GN_ARGS_INCLUDES \"-I${GN_INCLUDE}\")
@@ -261,3 +268,4 @@ foreach(GN_C_COMPILE_OPTION ${GN_C_COMPILE_OPTIONS_IN})
endforeach()
list(REMOVE_DUPLICATES GN_CFLAGS_C)
string(REPLACE ";" ",\n " GN_CFLAGS_C "${GN_CFLAGS_C}")
+
diff --git a/src/process/CMakeLists.txt b/src/process/CMakeLists.txt
new file mode 100644
index 000000000..a59901432
--- /dev/null
+++ b/src/process/CMakeLists.txt
@@ -0,0 +1,20 @@
+find_package(Qt6 COMPONENTS Gui)
+
+get_target_property(qtWebEngineProcessName WebEngineCore QTWEBENGINEPROCESS_NAME)
+
+qt_internal_add_executable(${qtWebEngineProcessName} SOURCES main.cpp)
+
+target_link_libraries(${qtWebEngineProcessName}
+ PUBLIC
+ Qt::Gui
+ Qt::WebEngineCore
+ PRIVATE
+ Qt::CorePrivate
+ Qt::WebEngineCorePrivate
+)
+
+target_include_directories(${qtWebEngineProcessName} PRIVATE ../core)
+
+install(TARGETS ${qtWebEngineProcessName} RUNTIME DESTINATION "${INSTALL_LIBEXECDIR}")
+
+make_install_only(${qtWebEngineProcessName})