summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt163
-rw-r--r--src/core/CMakeLists.txt171
-rw-r--r--src/core/api/CMakeLists.txt80
-rw-r--r--src/core/tools/CMakeLists.txt1
-rw-r--r--src/pdf/CMakeLists.txt260
-rw-r--r--src/pdf/plugins/imageformats/pdf/CMakeLists.txt1
-rw-r--r--src/pdfquick/CMakeLists.txt5
-rw-r--r--src/pdfwidgets/CMakeLists.txt1
-rw-r--r--src/process/CMakeLists.txt3
-rw-r--r--src/webenginequick/CMakeLists.txt9
-rw-r--r--src/webenginequick/ui/CMakeLists.txt2
-rw-r--r--src/webenginewidgets/CMakeLists.txt6
12 files changed, 393 insertions, 309 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 2db5f81e7..a8c331738 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,28 +1,55 @@
cmake_minimum_required(VERSION 3.19)
+##
+# MAIN CONFIGURE
+##
-if(NOT DEFINED WEBENGINE_ROOT_SOURCE_DIR)
- get_filename_component(WEBENGINE_ROOT_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/.." REALPATH)
-endif()
+get_filename_component(WEBENGINE_ROOT_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/.." REALPATH)
+get_filename_component(WEBENGINE_ROOT_BUILD_DIR "${PROJECT_BINARY_DIR}" REALPATH)
-include(${WEBENGINE_ROOT_SOURCE_DIR}/.cmake.conf)
-include(${WEBENGINE_ROOT_SOURCE_DIR}/cmake/Functions.cmake)
+# Note this is configure that does not belong to any module
+qt_feature_module_begin(ONLY_EVALUATE_FEATURES)
+# Enable printing of feature summary by forcing qt_configure_record_command
+# to work in spite of ONLY_EVALUATE_FEATURES.
+set(__QtFeature_only_evaluate_features OFF)
+include(../configure.cmake)
+qt_feature_module_end(ONLY_EVALUATE_FEATURES)
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${WEBENGINE_ROOT_SOURCE_DIR}/cmake")
+##
+# SUPPORT CHECK
+##
-assertRunAsTopLevelBuild(TRUE)
+if(NOT ${QtWebEngine_SUPPORT})
+ add_custom_target(WebEngineErrorMessage ALL
+ ${CMAKE_COMMAND} -E cmake_echo_color --red "QtWebEngine will not be built: ${QtWebEngine_ERROR}"
+ COMMENT "Check 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_widgets_build OFF CACHE BOOL "Build QtWebEngineWidgets" FORCE)
+ set(QT_FEATURE_qtwebengine_quick_build OFF CACHE BOOL "Build QtWebEngineQuick" FORCE)
+endif()
-project(QtWebEngineRepo
- VERSION "${QT_REPO_MODULE_VERSION}"
- DESCRIPTION "QtWebEngineRepo for QtWebEngineCore, QtWebEngine, QtWebEngineWidgets, QtPdf modules"
- HOMEPAGE_URL "https://qt.io"
- LANGUAGES CXX C)
+if(NOT ${QtPdf_SUPPORT})
+ add_custom_target(PdfErrorMessage ALL
+ ${CMAKE_COMMAND} -E cmake_echo_color --red "QtPdf will not be built: ${QtPdf_ERROR}"
+ COMMENT "Check QtPdf support"
+ VERBATIM
+ )
+ message("-- Support check for QtPdf failed: ${QtPdf_ERROR}")
+ set(QT_FEATURE_qtpdf_build OFF CACHE BOOL "Build QtPdf" FORCE)
+ set(QT_FEATURE_qtpdf_widgets_build OFF CACHE BOOL "Build QtPdfWidgets" FORCE)
+ set(QT_FEATURE_qtpdf_quick_build OFF CACHE BOOL "Build QtPdfQuick" FORCE)
+endif()
-# Make sure we use the fixed BASE argument of qt_add_resource.
-set(QT_USE_FIXED_QT_ADD_RESOURCE_BASE TRUE)
+if(NOT QT_FEATURE_qtwebengine_build AND NOT QT_FEATURE_qtpdf_build)
+ return()
+endif()
-find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals Core)
+##
+# MODULES
+##
-qt_build_repo_begin()
if(QT_FEATURE_qtwebengine_build)
add_subdirectory(core)
add_subdirectory(process)
@@ -35,6 +62,16 @@ if(QT_FEATURE_qtwebengine_build)
endif()
if(QT_FEATURE_qtpdf_build)
add_subdirectory(pdf)
+ # keep log order, pdf build after webengine
+ if(QT_FEATURE_qtwebengine_build)
+ add_dependencies(run_pdf_GnReady WebEngineCore)
+ endif()
+ if(QT_FEATURE_qtwebengine_widgets_build)
+ add_dependencies(run_pdf_GnReady WebEngineWidgets)
+ endif()
+ if(QT_FEATURE_qtwebengine_quick_build)
+ add_dependencies(run_pdf_GnReady WebEngineQuick)
+ endif()
if(QT_FEATURE_qtpdf_widgets_build)
add_subdirectory(pdfwidgets)
endif()
@@ -42,5 +79,97 @@ if(QT_FEATURE_qtpdf_build)
add_subdirectory(pdfquick)
endif()
endif()
-qt_build_repo_end()
+
+##
+# NINJA PROJECT
+##
+
+set(installDir ${PROJECT_BINARY_DIR}/install)
+
+if(NOT Ninja_FOUND)
+ externalproject_add(ninja
+ SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/ninja
+ BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/ninja
+ INSTALL_DIR ${installDir}
+ PREFIX ninja
+ USES_TERMINAL_BUILD TRUE
+ EXCLUDE_FROM_ALL TRUE
+ CMAKE_ARGS -DCMAKE_BUILD_TYPE=Release
+ -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
+ -DCMAKE_PREFIX_PATH:PATH=<INSTALL_DIR>
+ )
+ if(QT_FEATURE_qtwebengine_build)
+ add_dependencies(run_core_NinjaReady ninja)
+ endif()
+ if(QT_FEATURE_qtpdf_build)
+ add_dependencies(run_pdf_NinjaReady ninja)
+ endif()
+endif()
+
+##
+# GN PROJECT
+##
+
+if(NOT Gn_FOUND)
+ externalproject_add(gn
+ SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/gn
+ BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/gn
+ INSTALL_DIR ${installDir}
+ PREFIX gn
+ USES_TERMINAL_BUILD TRUE
+ EXCLUDE_FROM_ALL TRUE
+ CMAKE_ARGS -DCMAKE_BUILD_TYPE=Release
+ -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+ -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
+ -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
+ -DCMAKE_PREFIX_PATH:PATH=<INSTALL_DIR>
+ -DWEBENGINE_ROOT_BUILD_DIR=${PROJECT_BINARY_DIR}
+ )
+ if(QT_FEATURE_qtwebengine_build)
+ add_dependencies(run_core_GnReady gn)
+ endif()
+ if(QT_FEATURE_qtpdf_build)
+ add_dependencies(run_pdf_GnReady gn)
+ endif()
+ set(INSTALL_GN 1 CACHE INTERNAL "")
+endif()
+
+##
+# HOST PROJECT
+##
+
+if(CMAKE_CROSSCOMPILING)
+
+ if(NOT Gn_FOUND)
+ message(FATAL_ERROR "\nHost gn not found - cross compilation not possible")
+ endif()
+
+ externalproject_add(hostBuild
+ SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/host
+ BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/host
+ PREFIX host
+ USES_TERMINAL_BUILD TRUE
+ EXCLUDE_FROM_ALL TRUE
+ CMAKE_ARGS -DCMAKE_TOOLCHAIN_FILE=${QT_HOST_PATH}/lib/cmake/Qt6/qt.toolchain.cmake
+ -DWEBENGINE_ROOT_BUILD_DIR=${PROJECT_BINARY_DIR}
+ -DWEBENGINE_ROOT_SOURCE_DIR=${WEBENGINE_ROOT_SOURCE_DIR}
+ -DGN_TARGET_CPU=${TEST_architecture_arch}
+ -DCMAKE_C_FLAGS=
+ -DCMAKE_CXX_FLAGS=
+ -DQT_FEATURE_qtwebengine_build=${QT_FEATURE_qtwebengine_build}
+ -DQT_FEATURE_qtpdf_build=${QT_FEATURE_qtpdf_build}
+ )
+ add_dependencies(run_core_GnReady hostBuild)
+endif()
+
+# install gn for cross build
+if(LINUX AND INSTALL_GN)
+ get_install_config(installConfig)
+ message(${installConfig})
+ install(
+ PROGRAMS ${installDir}/bin/gn
+ CONFIGURATIONS ${installConfig}
+ RUNTIME DESTINATION "${INSTALL_LIBEXECDIR}"
+ )
+endif()
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index ffb327c2e..74ae345dc 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -1,32 +1,19 @@
cmake_minimum_required(VERSION 3.19)
-if(NOT DEFINED WEBENGINE_ROOT_SOURCE_DIR)
- get_filename_component(WEBENGINE_ROOT_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/../.." REALPATH)
-endif()
-if (NOT DEFINED WEBENGINE_ROOT_BUILD_DIR)
- get_filename_component(WEBENGINE_ROOT_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/../.." REALPATH)
-endif()
-
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${WEBENGINE_ROOT_SOURCE_DIR}/cmake")
-set(buildDir "${CMAKE_CURRENT_BINARY_DIR}")
-
-include(${WEBENGINE_ROOT_SOURCE_DIR}/cmake/Functions.cmake)
-assertRunAsTopLevelBuild(TRUE)
-
-add_subdirectory(api)
-add_subdirectory(tools)
-
-find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals Core)
-find_package(Gn ${QT_REPO_MODULE_VERSION} EXACT REQUIRED)
find_package(Ninja 1.7.2 REQUIRED)
find_package(Python2 2.7.5 REQUIRED)
find_package(Nodejs 10.19 REQUIRED)
find_package(PkgConfig)
if(PkgConfig_FOUND)
pkg_check_modules(XSCRNSAVER xscrnsaver)
- create_pkg_config_host_wrapper()
+ create_pkg_config_host_wrapper(${CMAKE_CURRENT_BINARY_DIR})
endif()
+set(buildDir "${CMAKE_CURRENT_BINARY_DIR}")
+
+add_subdirectory(api)
+add_subdirectory(tools)
+
##
# TOOLCHAIN SETUP
##
@@ -36,9 +23,11 @@ if(LINUX)
endif()
##
-# MULTICONFIG SETUP
+# GN BUILD SETUP
##
+addSyncTargets(core)
+
get_configs(configs)
get_architectures(archs)
@@ -49,13 +38,14 @@ foreach(arch ${archs})
# BUILD.gn SETUP
##
- unset(buildGn)
set(buildGn core_${config}_${arch})
- add_gn_target(${buildGn} ${config} ${arch} SOURCES DEFINES CXX_COMPILE_OPTIONS C_COMPILE_OPTIONS INCLUDES)
-
+ add_gn_target(${buildGn} ${config} ${arch}
+ SOURCES DEFINES CXX_COMPILE_OPTIONS C_COMPILE_OPTIONS INCLUDES MOC_PATH RSP_PREFIX
+ )
resolve_target_includes(gnIncludes WebEngineCore)
get_forward_declaration_macro(forwardDeclarationMacro)
get_target_property(qtWebEngineProcessName WebEngineCore QTWEBENGINEPROCESS_NAME)
+ get_target_property(mocFilePath Qt6::moc IMPORTED_LOCATION)
if(QT_FEATURE_debug_and_release AND ("${config}" STREQUAL "Debug"))
set(qtWebEngineProcessName "${qtWebEngineProcessName}${CMAKE_DEBUG_POSTFIX}")
@@ -74,15 +64,19 @@ foreach(arch ${archs})
endif()
extend_gn_target(${buildGn}
+ MOC_PATH
+ ${mocFilePath}
+ RSP_PREFIX
+ src/core/${config}/${arch}
INCLUDES
${gnIncludes}
DEFINES
QT_NO_KEYWORDS
QT_USE_QSTRINGBUILDER
- QTWEBENGINECORE_VERSION_STR=\\\\\"${QT_REPO_MODULE_VERSION}\\\\\"
- QTWEBENGINEPROCESS_NAME=\\\\\"${qtWebEngineProcessName}\\\\\"
+ QTWEBENGINECORE_VERSION_STR=\\\\\\\\\"${QT_REPO_MODULE_VERSION}\\\\\\\\\"
+ QTWEBENGINEPROCESS_NAME=\\\\\\\\\"${qtWebEngineProcessName}\\\\\\\\\"
BUILDING_CHROMIUM
- ${forwardDeclarationMacro}
+ "${forwardDeclarationMacro}"
CXX_COMPILE_OPTIONS
${gnCxxCompileOptions}
SOURCES
@@ -267,13 +261,6 @@ foreach(arch ${archs})
renderer/extensions/resource_request_policy_qt.cpp renderer/extensions/resource_request_policy_qt.h
)
- read_gn_target(${buildGn} ${WEBENGINE_ROOT_BUILD_DIR}/src/core/api/${config}/gn_config.cxx.cmake)
- read_gn_target(${buildGn} ${WEBENGINE_ROOT_BUILD_DIR}/src/core/api/${config}/gn_config.c.cmake)
- configure_gn_target(${buildGn} ${config}
- ${WEBENGINE_ROOT_SOURCE_DIR}/src/core/configure/BUILD.root.gn.in "${buildDir}/${config}/${arch}/BUILD.gn"
- core/${config}/${arch}
- )
-
##
# GN PARAMETERS SETUP
##
@@ -449,17 +436,22 @@ foreach(arch ${archs})
)
endif()
- ##
- # GN CALL
- ##
-
- execute_gn(gnArgArg)
+ add_gn_command(
+ CMAKE_TARGET WebEngineCore
+ NINJA_TARGETS QtWebEngineCore convert_dict
+ GN_TARGET ${buildGn}
+ GN_ARGS "${gnArgArg}"
+ BUILDDIR ${buildDir}/${config}/${arch}
+ MODULE core
+ )
endforeach()
+ create_cxx_configs(WebEngineCore ${arch})
endforeach()
+
##
-# WEBENGINECORE
+# WEBENGINECORE SETUP
##
set(arch ${CMAKE_SYSTEM_PROCESSOR})
@@ -469,7 +461,8 @@ target_include_directories(WebEngineCore PRIVATE
${buildDir}/$<CONFIG>/${arch}/gen/third_party/perfetto/build_config
)
-add_gn_build_aritfacts_to_target(WebEngineCore QtWebEngineCore ${buildDir})
+add_gn_build_aritfacts_to_target(WebEngineCore QtWebEngineCore core ${buildDir})
+add_dependencies(WebEngineCore run_core_NinjaDone)
##
# SANDBOX
@@ -483,6 +476,7 @@ if(WIN32)
TARGET QtWebEngineCoreSandbox
OUTPUT QtWebEngineCoreSandbox.lib
BUILDDIR ${buildDir}/${config}/${arch}
+ MODULE core
)
set(sandboxLibraryPath ${buildDir}/${config}/${arch}/QtWebEngineCoreSandbox.lib)
set_property(TARGET WebEngineCoreSandbox
@@ -490,101 +484,12 @@ if(WIN32)
)
add_custom_target(sandboxLibrary_${config}
DEPENDS ${buildDir}/${config}/${arch}/QtWebEngineCoreSandbox.lib)
- add_dependencies(WebEngineCoreSandbox sandboxLibrary_${config})
+ add_dependencies(run_core_NinjaDone sandboxLibrary_${config})
add_dependencies(WebEngineCoreSandbox WebEngineCore)
endforeach()
endif()
##
-# 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)
-
-get_install_config(config)
-
-foreach(loc ${localeList})
- get_filename_component(locSourcePath ${buildDir}/${config}/${arch}/qtwebengine_locales/${loc}.pak REALPATH)
- list(APPEND localeFiles ${locSourcePath})
-endforeach()
-
-foreach(res ${resourceList})
- get_filename_component(resSourcePath ${buildDir}/${config}/${arch}/${res} REALPATH)
- list(APPEND resourceFiles ${resSourcePath})
-endforeach()
-
-if (NOT QT_FEATURE_webengine_system_icu)
- get_filename_component(icuFile ${buildDir}/${config}/${arch}/icudtl.dat REALPATH)
- list(APPEND resourceFiles ${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 ${buildDir}/${config}/${arch}/QtWebEngineCore.stamp)
- add_custom_target(generate_resources_${config} DEPENDS ${allResourceFiles})
-else()
- install(FILES ${localeFiles}
- DESTINATION translations/qtwebengine_locales
- CONFIGURATIONS ${config}
- )
- install(FILES ${resourceFiles}
- DESTINATION resources
- CONFIGURATIONS ${config}
- )
-# install (again) for superbuild
- install(FILES ${localeFiles}
- DESTINATION ${WEBENGINE_ROOT_BUILD_DIR}/translations/qtwebengine_locales
- CONFIGURATIONS ${config}
- )
- install(FILES ${resourceFiles}
- DESTINATION ${WEBENGINE_ROOT_BUILD_DIR}/resources
- CONFIGURATIONS ${config}
- )
- if(NOT QT_WILL_INSTALL)
- # TODO: Could we get rid of ALL?
- add_custom_target(
- install_resources_${config}
- ALL
- DEPENDS ${buildDir}/${config}/${arch}/QtWebEngineCore.stamp
- COMMAND ${CMAKE_COMMAND} -E make_directory
- ${CMAKE_INSTALL_PREFIX}/resources
- COMMAND ${CMAKE_COMMAND} -E copy
- ${resourceFiles}
- ${CMAKE_INSTALL_PREFIX}/resources)
- add_custom_target(
- install_locales_${config}
- ALL
- DEPENDS ${buildDir}/${config}/${arch}/QtWebEngineCore.stamp
- COMMAND ${CMAKE_COMMAND} -E make_directory
- ${CMAKE_INSTALL_PREFIX}/translations/qtwebengine_locales
- COMMAND ${CMAKE_COMMAND} -E copy
- ${localeFiles}
- ${CMAKE_INSTALL_PREFIX}/translations/qtwebengine_locales)
- endif()
-endif()
-
-##
# WEBENGINECORE DICT TOOL SETUP
##
@@ -593,8 +498,10 @@ if(QT_FEATURE_webengine_spellchecker)
target_include_directories(${dict_target_name} PRIVATE
../3rdparty/chromium
../3rdparty/chromium/third_party/boringssl/src/include
- ${buildDir}/${config}/${arch}/gen
+ ${buildDir}/$<CONFIG>/${arch}/gen
)
- add_gn_build_aritfacts_to_target(${dict_target_name} convert_dict ${buildDir})
+ add_gn_build_aritfacts_to_target(${dict_target_name} convert_dict core ${buildDir})
+ add_dependencies(${dict_target_name} run_core_NinjaDone)
+ add_dependencies(${dict_target_name} WebEngineCore)
endif()
diff --git a/src/core/api/CMakeLists.txt b/src/core/api/CMakeLists.txt
index cee72966d..192afd01b 100644
--- a/src/core/api/CMakeLists.txt
+++ b/src/core/api/CMakeLists.txt
@@ -1,16 +1,9 @@
-if(NOT DEFINED WEBENGINE_ROOT_SOURCE_DIR)
- get_filename_component(WEBENGINE_ROOT_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/../../.." REALPATH)
-endif()
find_package(Qt6 ${PROJECT_VERSION} REQUIRED COMPONENTS Gui Network OpenGL Quick)
find_package(Qt6 ${PROJECT_VERSION} QUIET OPTIONAL_COMPONENTS WebChannel Positioning)
-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
qwebenginecertificateerror.cpp qwebenginecertificateerror.h
@@ -63,8 +56,6 @@ set_target_properties(WebEngineCore PROPERTIES QTWEBENGINEPROCESS_NAME ${qtWebEn
# Chromium included headers are not clean
qt_skip_warnings_are_errors(WebEngineCore)
-make_install_only(WebEngineCore)
-make_config_for_gn(WebEngineCore gn_config)
if(CLANG OR GCC)
target_compile_options(WebEngineCore PRIVATE "-Wno-unused-parameter")
@@ -79,6 +70,77 @@ qt_internal_extend_target(WebEngineCore CONDITION QT_FEATURE_webengine_geolocati
Qt::Positioning
)
+##
+# DOCS
+##
+
qt_internal_add_docs(WebEngineCore
../doc/qtwebengine.qdocconf
)
+
+##
+# WEBENGINECORE RESOURCES
+##
+
+set(arch ${CMAKE_SYSTEM_PROCESSOR})
+#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)
+
+get_install_config(config)
+
+foreach(loc ${localeList})
+ get_filename_component(locSourcePath ${buildDir}/${config}/${arch}/qtwebengine_locales/${loc}.pak REALPATH)
+ list(APPEND localeFiles ${locSourcePath})
+endforeach()
+
+foreach(res ${resourceList})
+ get_filename_component(resSourcePath ${buildDir}/${config}/${arch}/${res} REALPATH)
+ list(APPEND resourceFiles ${resSourcePath})
+endforeach()
+
+if (NOT QT_FEATURE_webengine_system_icu)
+ get_filename_component(icuFile ${buildDir}/${config}/${arch}/icudtl.dat REALPATH)
+ list(APPEND resourceFiles ${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 ${buildDir}/${config}/${arch}/QtWebEngineCore.stamp)
+ add_custom_target(generate_resources_${config} DEPENDS ${allResourceFiles})
+else()
+ install(FILES ${localeFiles}
+ DESTINATION translations/qtwebengine_locales
+ CONFIGURATIONS ${config}
+ )
+ install(FILES ${resourceFiles}
+ DESTINATION resources
+ CONFIGURATIONS ${config}
+ )
+ if(NOT QT_WILL_INSTALL)
+ set(rootPath ${CMAKE_INSTALL_PREFIX})
+ else()
+ set(rootPath ${PROJECT_BINARY_DIR})
+ endif()
+ addCopyCommand(WebEngineCore "${localeFiles}" ${rootPath}/translations/qtwebengine_locales)
+ addCopyCommand(WebEngineCore "${resourceFiles}" ${rootPath}/resources)
+endif()
diff --git a/src/core/tools/CMakeLists.txt b/src/core/tools/CMakeLists.txt
index 9d778bb08..e16bfb926 100644
--- a/src/core/tools/CMakeLists.txt
+++ b/src/core/tools/CMakeLists.txt
@@ -12,7 +12,6 @@ if(QT_FEATURE_webengine_spellchecker)
SOURCES main.cpp
)
qt_skip_warnings_are_errors(${dict_target_name})
- make_install_only(${dict_target_name})
add_dependencies(${dict_target_name} WebEngineCore)
qt_internal_extend_target(${dict_target_name} CONDITION WIN32
DEFINES WIN32_LEAN_AND_MEAN NOMINMAX
diff --git a/src/pdf/CMakeLists.txt b/src/pdf/CMakeLists.txt
index 12f01a73f..da1aa93ff 100644
--- a/src/pdf/CMakeLists.txt
+++ b/src/pdf/CMakeLists.txt
@@ -1,14 +1,19 @@
-if(NOT DEFINED WEBENGINE_ROOT_SOURCE_DIR)
- get_filename_component(WEBENGINE_ROOT_SOURCE_DIR
- "${CMAKE_CURRENT_LIST_DIR}/../.." REALPATH
- )
+cmake_minimum_required(VERSION 3.19)
+find_package(Ninja 1.7.2 REQUIRED)
+find_package(Python2 2.7.5 REQUIRED)
+find_package(Nodejs 10.19 REQUIRED)
+find_package(PkgConfig)
+if(PkgConfig_FOUND)
+ create_pkg_config_host_wrapper(${CMAKE_CURRENT_BINARY_DIR})
endif()
-find_package(Qt6 ${PROJECT_VERSION} REQUIRED COMPONENTS Gui Network OpenGL Quick)
-include(${WEBENGINE_ROOT_SOURCE_DIR}/cmake/Functions.cmake)
-set(buildDir "${CMAKE_CURRENT_BINARY_DIR}")
+set(buildDir "${CMAKE_CURRENT_BINARY_DIR}")
add_subdirectory(plugins/imageformats/pdf)
+##
+# PDF MODULE
+##
+
qt_internal_add_module(Pdf
SOURCES
qpdfbookmarkmodel.cpp qpdfbookmarkmodel.h
@@ -36,128 +41,135 @@ qt_internal_add_module(Pdf
Qt::Gui
)
-make_config_for_gn(Pdf gn_config)
-make_install_only(Pdf)
+##
+# PDF DOCS
+##
+
qt_internal_add_docs(Pdf
doc/qtpdf.qdocconf
)
+
##
-# REPO BUILD
+# TOOLCHAIN SETUP
##
-if(WEBENGINE_REPO_BUILD)
- find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals Core)
- find_package(Gn ${QT_REPO_MODULE_VERSION} EXACT REQUIRED)
- find_package(Ninja 1.7.2 REQUIRED)
- find_package(Python2 2.7.5 REQUIRED)
- find_package(Nodejs 10.19 REQUIRED)
- find_package(PkgConfig)
- if(PkgConfig_FOUND)
- create_pkg_config_host_wrapper()
- endif()
-
- ##
- # TOOLCHAIN SETUP
- ##
-
- if(LINUX)
- setup_toolchains()
- endif()
-
- ##
- # MULTICONFIG SETUP
- ##
-
- get_configs(configs)
- get_architectures(archs)
-
- foreach(arch ${archs})
- foreach(config ${configs})
-
- ##
- # BULID.gn SETUP
- ##
-
- set(buildGn pdf_${config}_${arch})
- add_gn_target(${buildGn} ${config} ${arch} SOURCES DEFINES CXX_COMPILE_OPTIONS C_COMPILE_OPTIONS INCLUDES)
- resolve_target_includes(gnIncludes Pdf)
- get_forward_declaration_macro(forwardDeclarationMacro)
- read_gn_target(${buildGn} ${WEBENGINE_ROOT_BUILD_DIR}/src/pdf/${config}/gn_config.cxx.cmake)
- read_gn_target(${buildGn} ${WEBENGINE_ROOT_BUILD_DIR}/src/pdf/${config}/gn_config.c.cmake)
- configure_gn_target(${buildGn} ${config}
- ${WEBENGINE_ROOT_SOURCE_DIR}/src/pdf/configure/BUILD.root.gn.in "${buildDir}/${config}/${arch}/BUILD.gn"
- pdf/${config}/${arch}
- )
-
- ##
- # GN PARAMETERS
- ##
-
- unset(gnArgArg)
- append_build_type_setup(gnArgArg)
- append_compiler_linker_sdk_setup(gnArgArg)
- append_sanitizer_setup(gnArgArg)
- append_toolchain_setup(gnArgArg)
- append_pkg_config_setup(gnArgArg)
-
- list(APPEND gnArgArg
- qtwebengine_target="${buildDir}/${config}/${arch}:QtPdf"
- enable_remoting=false
- enable_web_speech=false
- chrome_pgo_phase=0
- )
-
- if(LINUX)
- list(APPEND gnArgArg
- use_x11=false
- is_cfi=false
- ozone_auto_platforms=false
- use_gnome_keyring=false)
- endif()
- if(MACOS)
- list(APPEND gnArgArg angle_enable_vulkan=false)
- endif()
- if(WIN32)
- list(APPEND gnArgArg
- ninja_use_custom_environment_files=false
- safe_browsing_mode=0
- )
- endif()
-
- extend_gn_list(gnArgArg
- ARGS pdf_enable_v8
- CONDITION QT_FEATURE_pdf_v8
- )
- extend_gn_list(gnArgArg
- ARGS pdf_enable_xfa
- CONDITION QT_FEATURE_pdf_xfa
- )
- extend_gn_list(gnArgArg
- ARGS pdf_enable_xfa_bmp
- CONDITION QT_FEATURE_pdf_xfa_bmp
- )
- extend_gn_list(gnArgArg
- ARGS pdf_enable_xfa_gif
- CONDITION QT_FEATURE_pdf_xfa_gif
- )
- extend_gn_list(gnArgArg
- ARGS pdf_enable_xfa_png
- CONDITION QT_FEATURE_pdf_xfa_png
- )
- extend_gn_list(gnArgArg
- ARGS pdf_enable_xfa_tiff
- CONDITION QT_FEATURE_pdf_xfa_tiff
- )
-
- ##
- # GN CALL
- ##
-
- execute_gn(gnArgArg)
- endforeach()
- endforeach()
- set(arch ${CMAKE_SYSTEM_PROCESSOR})
- target_include_directories(Pdf PRIVATE ${buildDir}/$<CONFIG>/${arch}/gen)
- add_gn_build_aritfacts_to_target(Pdf QtPdf ${buildDir})
+if(LINUX)
+ setup_toolchains()
endif()
+
+##
+# GN BUILD SETUP
+##
+
+addSyncTargets(pdf)
+
+get_configs(configs)
+get_architectures(archs)
+
+foreach(arch ${archs})
+ foreach(config ${configs})
+
+ ##
+ # BULID.gn SETUP
+ ##
+
+ set(buildGn pdf_${config}_${arch})
+ add_gn_target(${buildGn} ${config} ${arch}
+ SOURCES DEFINES CXX_COMPILE_OPTIONS C_COMPILE_OPTIONS INCLUDES MOC_PATH RSP_PREFIX
+ )
+ resolve_target_includes(gnIncludes Pdf)
+ get_forward_declaration_macro(forwardDeclarationMacro)
+
+ extend_gn_target(${buildGn}
+ MOC_PATH
+ ${mocFilePath}
+ RSP_PREFIX
+ src/pdf/${config}/${arch}
+ INCLUDES
+ ${gnIncludes}
+ )
+
+ ##
+ # GN PARAMETERS
+ ##
+
+ unset(gnArgArg)
+ append_build_type_setup(gnArgArg)
+ append_compiler_linker_sdk_setup(gnArgArg)
+ append_sanitizer_setup(gnArgArg)
+ append_toolchain_setup(gnArgArg)
+ append_pkg_config_setup(gnArgArg)
+
+ list(APPEND gnArgArg
+ qtwebengine_target="${buildDir}/${config}/${arch}:QtPdf"
+ enable_remoting=false
+ enable_web_speech=false
+ chrome_pgo_phase=0
+ )
+
+ if(LINUX)
+ list(APPEND gnArgArg
+ use_x11=false
+ is_cfi=false
+ ozone_auto_platforms=false
+ use_gnome_keyring=false)
+ endif()
+ if(MACOS)
+ list(APPEND gnArgArg angle_enable_vulkan=false)
+ endif()
+ if(WIN32)
+ list(APPEND gnArgArg
+ ninja_use_custom_environment_files=false
+ safe_browsing_mode=0
+ )
+ endif()
+
+ extend_gn_list(gnArgArg
+ ARGS pdf_enable_v8
+ CONDITION QT_FEATURE_pdf_v8
+ )
+ extend_gn_list(gnArgArg
+ ARGS pdf_enable_xfa
+ CONDITION QT_FEATURE_pdf_xfa
+ )
+ extend_gn_list(gnArgArg
+ ARGS pdf_enable_xfa_bmp
+ CONDITION QT_FEATURE_pdf_xfa_bmp
+ )
+ extend_gn_list(gnArgArg
+ ARGS pdf_enable_xfa_gif
+ CONDITION QT_FEATURE_pdf_xfa_gif
+ )
+ extend_gn_list(gnArgArg
+ ARGS pdf_enable_xfa_png
+ CONDITION QT_FEATURE_pdf_xfa_png
+ )
+ extend_gn_list(gnArgArg
+ ARGS pdf_enable_xfa_tiff
+ CONDITION QT_FEATURE_pdf_xfa_tiff
+ )
+
+ add_gn_command(
+ CMAKE_TARGET Pdf
+ NINJA_TARGETS QtPdf
+ GN_TARGET ${buildGn}
+ GN_ARGS "${gnArgArg}"
+ BUILDDIR ${buildDir}/${config}/${arch}
+ MODULE pdf
+ )
+
+ endforeach()
+ create_cxx_configs(Pdf ${arch})
+endforeach()
+
+
+##
+# PDF SETUP
+##
+
+set(arch ${CMAKE_SYSTEM_PROCESSOR})
+target_include_directories(Pdf PRIVATE ${buildDir}/$<CONFIG>/${arch}/gen)
+add_gn_build_aritfacts_to_target(Pdf QtPdf pdf ${buildDir})
+add_dependencies(Pdf run_pdf_NinjaDone)
+
diff --git a/src/pdf/plugins/imageformats/pdf/CMakeLists.txt b/src/pdf/plugins/imageformats/pdf/CMakeLists.txt
index 8a33e590b..ee290782b 100644
--- a/src/pdf/plugins/imageformats/pdf/CMakeLists.txt
+++ b/src/pdf/plugins/imageformats/pdf/CMakeLists.txt
@@ -8,4 +8,3 @@ qt_internal_add_plugin(QPdfPlugin
Qt::PdfPrivate
)
-make_install_only(QPdfPlugin)
diff --git a/src/pdfquick/CMakeLists.txt b/src/pdfquick/CMakeLists.txt
index 12cb393ff..5bbe66959 100644
--- a/src/pdfquick/CMakeLists.txt
+++ b/src/pdfquick/CMakeLists.txt
@@ -1,7 +1,5 @@
find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS Core Gui Qml Quick)
-get_configure_mode(configureMode)
-
set(qml_files
# TODO:
# "qml/+material/PdfStyle.qml"
@@ -48,8 +46,5 @@ qt_internal_extend_target(qtpdfquickplugin
Qt::PdfQuickPrivate
)
-make_install_only(PdfQuick)
-make_install_only(qtpdfquickplugin)
-
diff --git a/src/pdfwidgets/CMakeLists.txt b/src/pdfwidgets/CMakeLists.txt
index 04ca1387e..2d2616556 100644
--- a/src/pdfwidgets/CMakeLists.txt
+++ b/src/pdfwidgets/CMakeLists.txt
@@ -12,4 +12,3 @@ qt_internal_add_module(PdfWidgets
Qt::Widgets
Qt::Pdf
)
-make_install_only(PdfWidgets)
diff --git a/src/process/CMakeLists.txt b/src/process/CMakeLists.txt
index 9b515f1d9..5e7c1130b 100644
--- a/src/process/CMakeLists.txt
+++ b/src/process/CMakeLists.txt
@@ -56,6 +56,7 @@ if(isFramework)
"$<TARGET_BUNDLE_DIR:WebEngineCore>/Versions/A/Helpers/${qtWebEngineProcessName}.app"
COMMAND ${CMAKE_COMMAND} -E create_symlink "Versions/Current/Helpers"
"$<TARGET_BUNDLE_DIR:WebEngineCore>/Helpers"
+ USES_TERMINAL
)
install(TARGETS ${qtWebEngineProcessName}
BUNDLE DESTINATION ./lib/QtWebEngineCore.framework/Versions/A/Helpers
@@ -73,5 +74,3 @@ if(MSVC)
DESTINATION "${INSTALL_LIBEXECDIR}"
)
endif()
-
-make_install_only(${qtWebEngineProcessName})
diff --git a/src/webenginequick/CMakeLists.txt b/src/webenginequick/CMakeLists.txt
index ac9c905e2..30b0fa2cf 100644
--- a/src/webenginequick/CMakeLists.txt
+++ b/src/webenginequick/CMakeLists.txt
@@ -1,12 +1,6 @@
-find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS Gui Qml Quick)
-find_package(Qt6 ${PROJECT_VERSION} CONFIG QUIET OPTIONAL_COMPONENTS PrintSupport WebChannel Positioning Test)
-
-get_configure_mode(configureMode)
-
add_subdirectory(ui)
qt_internal_add_qml_module(WebEngineQuick
- ${configureMode}
URI "QtWebEngine"
VERSION "${PROJECT_VERSION}"
CLASS_NAME QtWebEnginePlugin
@@ -61,6 +55,3 @@ qt_internal_extend_target(qtwebenginequickplugin
Qt::CorePrivate
Qt::WebEngineQuickPrivate
)
-
-make_install_only(WebEngineQuick)
-make_install_only(qtwebenginequickplugin)
diff --git a/src/webenginequick/ui/CMakeLists.txt b/src/webenginequick/ui/CMakeLists.txt
index 2de01a210..aa5832ba6 100644
--- a/src/webenginequick/ui/CMakeLists.txt
+++ b/src/webenginequick/ui/CMakeLists.txt
@@ -35,6 +35,4 @@ qt_internal_add_resource(qtwebenginequickdelegatesplugin "qtwebenginequickdelega
${resource_files}
)
-make_install_only(WebEngineQuickDelegatesQml)
-make_install_only(qtwebenginequickdelegatesplugin)
diff --git a/src/webenginewidgets/CMakeLists.txt b/src/webenginewidgets/CMakeLists.txt
index 425eb1d73..6dedf2187 100644
--- a/src/webenginewidgets/CMakeLists.txt
+++ b/src/webenginewidgets/CMakeLists.txt
@@ -1,10 +1,5 @@
-find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS Gui Widgets Quick QuickWidgets)
-find_package(Qt6 ${PROJECT_VERSION} CONFIG QUIET OPTIONAL_COMPONENTS PrintSupport WebChannel Positioning)
-
-get_configure_mode(configureMode)
qt_internal_add_module(WebEngineWidgets
- ${configureMode}
SOURCES
api/qtwebenginewidgetsglobal.h
api/qwebenginenotificationpresenter.cpp api/qwebenginenotificationpresenter_p.h
@@ -28,7 +23,6 @@ qt_internal_add_module(WebEngineWidgets
Qt::Widgets
Qt::WebEngineCore
)
-make_install_only(WebEngineWidgets)
qt_internal_extend_target(WebEngineWidgets CONDITION QT_FEATURE_webengine_printing_and_pdf
PUBLIC_LIBRARIES