diff options
Diffstat (limited to 'src/core/api/CMakeLists.txt')
-rw-r--r-- | src/core/api/CMakeLists.txt | 221 |
1 files changed, 221 insertions, 0 deletions
diff --git a/src/core/api/CMakeLists.txt b/src/core/api/CMakeLists.txt new file mode 100644 index 000000000..f2ceb2dfd --- /dev/null +++ b/src/core/api/CMakeLists.txt @@ -0,0 +1,221 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + +find_package(Qt6 ${PROJECT_VERSION} REQUIRED COMPONENTS Gui Network Quick) +find_package(Qt6 ${PROJECT_VERSION} QUIET OPTIONAL_COMPONENTS WebChannel Positioning) + +set(qtWebEngineProcessName QtWebEngineProcess) + +qt_internal_add_module(WebEngineCore + SOURCES + qtwebenginecoreglobal.cpp qtwebenginecoreglobal.h qtwebenginecoreglobal_p.h + qwebenginecertificateerror.cpp qwebenginecertificateerror.h + qwebengineclientcertificateselection.cpp qwebengineclientcertificateselection.h + qwebengineclientcertificatestore.cpp qwebengineclientcertificatestore.h + qwebengineclienthints.cpp qwebengineclienthints.h + qwebenginecontextmenurequest.cpp qwebenginecontextmenurequest.h qwebenginecontextmenurequest_p.h + qwebenginecookiestore.cpp qwebenginecookiestore.h qwebenginecookiestore_p.h + qwebenginedesktopmediarequest.cpp qwebenginedesktopmediarequest.h qwebenginedesktopmediarequest_p.h + qwebenginedownloadrequest.cpp qwebenginedownloadrequest.h qwebenginedownloadrequest_p.h + qwebenginefilesystemaccessrequest.cpp qwebenginefilesystemaccessrequest.h + qwebenginefindtextresult.cpp qwebenginefindtextresult.h + qwebenginefullscreenrequest.cpp qwebenginefullscreenrequest.h + qwebenginehistory.cpp qwebenginehistory.h qwebenginehistory_p.h + qwebenginehttprequest.cpp qwebenginehttprequest.h + qwebengineloadinginfo.cpp qwebengineloadinginfo.h + qwebenginemessagepumpscheduler.cpp qwebenginemessagepumpscheduler_p.h + qwebenginenavigationrequest.cpp qwebenginenavigationrequest.h + qwebenginenewwindowrequest.cpp qwebenginenewwindowrequest.h qwebenginenewwindowrequest_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 qwebengineurlrequestinterceptor.cpp + qwebengineurlrequestjob.cpp qwebengineurlrequestjob.h + qwebengineurlscheme.cpp qwebengineurlscheme.h + qwebengineurlschemehandler.cpp qwebengineurlschemehandler.h + qwebengineglobalsettings.cpp qwebengineglobalsettings.h qwebengineglobalsettings_p.h + qwebenginewebauthuxrequest.cpp qwebenginewebauthuxrequest.h qwebenginewebauthuxrequest_p.h + DEFINES + BUILDING_CHROMIUM + INCLUDE_DIRECTORIES + ../ + ../../3rdparty/chromium + ../../3rdparty/chromium/third_party/abseil-cpp + ../../3rdparty/chromium/third_party/perfetto/include + ../../3rdparty/chromium/third_party/boringssl/src/include + LIBRARIES + Qt::CorePrivate + Qt::GuiPrivate + Qt::QuickPrivate + PUBLIC_LIBRARIES + Qt::Core + Qt::Gui + Qt::Network + Qt::Quick + EXTRA_CMAKE_FILES + "${CMAKE_CURRENT_LIST_DIR}/${INSTALL_CMAKE_NAMESPACE}WebEngineCoreDeploySupport.cmake" + NO_GENERATE_CPP_EXPORTS +) + +set_target_properties(WebEngineCore PROPERTIES QTWEBENGINEPROCESS_NAME ${qtWebEngineProcessName}) +set_target_properties(WebEngineCore PROPERTIES CXX_STANDARD 20) + +# Chromium included headers are not clean +qt_skip_warnings_are_errors(WebEngineCore) + +if(CLANG OR GCC) + target_compile_options(WebEngineCore PRIVATE + "-Wno-unused-parameter" + "-Wno-expansion-to-defined" + ) +endif() + +if(GCC) + target_compile_options(WebEngineCore PRIVATE + "-Wno-packed-not-aligned" + ) +endif() + +qt_internal_extend_target(WebEngineCore CONDITION QT_FEATURE_webengine_webchannel + PUBLIC_LIBRARIES + Qt::WebChannel +) +qt_internal_extend_target(WebEngineCore CONDITION QT_FEATURE_webengine_geolocation + PUBLIC_LIBRARIES + Qt::Positioning +) + +get_install_config(config) +get_architectures(archs) +get_configs(configs) +list(GET archs 0 arch) + +## +# DOCS +## + +qt_internal_add_docs(WebEngineCore + ../doc/qtwebengine.qdocconf +) + +add_code_attributions_target( + TARGET generate_chromium_attributions + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/chromium_attributions.qdoc + GN_TARGET :QtWebEngineCore + FILE_TEMPLATE ../doc/about_credits.tmpl + ENTRY_TEMPLATE ../doc/about_credits_entry.tmpl + BUILDDIR ${buildDir}/${config}/${arch} +) +add_dependencies(generate_chromium_attributions run_core_GnDone) +add_dependencies(prepare_docs_WebEngineCore generate_chromium_attributions) + +## +# WEBENGINECORE 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) + +set(resourceList qtwebengine_resources.pak + qtwebengine_resources_100p.pak + qtwebengine_resources_200p.pak + qtwebengine_devtools_resources.pak) + +set(stamps ${buildDir}/${config}/${arch}/QtWebEngineCore.stamp) + +qt_internal_get_filename_path_mode(path_mode) + +if(QT_FEATURE_webengine_v8_context_snapshot) + foreach(arch ${archs}) + foreach(config ${configs}) + if(MACOS) + set(ext_arch ".${arch}") + # QTBUG-118120 gn does not support x86_64h + if(ext_arch STREQUAL "x86_64h") + set(ext_arch "x86_64") + endif() + else() + unset(ext_arch) + endif() + if("${config}" STREQUAL "Debug") + set(ext_debug ".debug") + else() + unset(ext_debug) + endif() + get_filename_component(resSourcePath ${buildDir}/${config}/${arch}/v8_context_snapshot${ext_arch}${ext_debug}.bin ${path_mode}) + list(APPEND resourceFiles ${resSourcePath}) + if(MACOS) + set(stamps ${stamps} ${buildDir}/${config}/${arch}/obj/tools/v8_context_snapshot/v8_context_snapshot.stamp) + endif() + endforeach() + endforeach() +endif() + +foreach(loc ${localeList}) + get_filename_component(locSourcePath ${buildDir}/${config}/${arch}/qtwebengine_locales/${loc}.pak ${path_mode}) + list(APPEND localeFiles ${locSourcePath}) +endforeach() + +foreach(res ${resourceList}) + get_filename_component(resSourcePath ${buildDir}/${config}/${arch}/${res} ${path_mode}) + list(APPEND resourceFiles ${resSourcePath}) +endforeach() + + +if(NOT QT_FEATURE_webengine_system_icu) + get_filename_component(icuFile ${buildDir}/${config}/${arch}/icudtl.dat ${path_mode}) + list(APPEND resourceFiles ${icuFile}) + set_target_properties(WebEngineCore PROPERTIES ICUDTL_FILE ${icuFile}) +endif() + +if(QT_FEATURE_framework) + set(allResourceFiles ${localeFiles} ${resourceFiles}) + target_sources(WebEngineCore PRIVATE ${allResourceFiles}) + + set_source_files_properties(${localeFiles} + TARGET_DIRECTORY WebEngineCore + PROPERTIES MACOSX_PACKAGE_LOCATION Resources/qtwebengine_locales + GENERATED TRUE + ) + set_source_files_properties(${resourceFiles} + TARGET_DIRECTORY WebEngineCore + PROPERTIES MACOSX_PACKAGE_LOCATION Resources + GENERATED TRUE + ) + + add_custom_command(OUTPUT ${allResourceFiles} DEPENDS "${stamps}") + add_custom_target(generate_resources_${config} DEPENDS ${allResourceFiles}) + + addCopyCommand(WebEngineCore "${localeFiles}" + "${QT_BUILD_DIR}/${INSTALL_LIBDIR}/QtWebEngineCore.framework/Versions/A/Resources/qtwebengine_locales/" + ) + addCopyCommand(WebEngineCore "${resourceFiles}" + "${QT_BUILD_DIR}/${INSTALL_LIBDIR}/QtWebEngineCore.framework/Versions/A/Resources/" + ) + +else() + install(FILES ${localeFiles} + DESTINATION ${INSTALL_TRANSLATIONSDIR}/qtwebengine_locales + CONFIGURATIONS ${config} + ) + install(FILES ${resourceFiles} + DESTINATION ${INSTALL_DATADIR}/resources + CONFIGURATIONS ${config} + ) + if(QT_SUPERBUILD OR NOT QT_WILL_INSTALL) + addCopyCommand(WebEngineCore "${localeFiles}" + ${QT_BUILD_DIR}/${INSTALL_TRANSLATIONSDIR}/qtwebengine_locales + ) + addCopyCommand(WebEngineCore "${resourceFiles}" + ${QT_BUILD_DIR}/${INSTALL_DATADIR}/resources + ) + endif() +endif() |