summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2021-05-28 19:59:48 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-06-15 10:53:32 +0000
commite0979612a57d0a71c2b4f5d646547b5a5f6ab99c (patch)
tree4f01307f92341fb6e978773aef0998b9839fad90 /src
parentad036413b1044c802253a5843568048d22523ebf (diff)
Add spellchecker support and qwebengine_covert_dict to cmake
Add spellchecker dictionary conversion tool. Change scope of gn object imported variables to function scope. Change-Id: Ice579a89e20b80034b675e7f767a774100478472 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit 9451ceee24e832d32a86ae6a2f37eea781acaa2f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r--src/core/CMakeLists.txt45
-rw-r--r--src/core/api/configure.cmake1
-rw-r--r--src/core/configure/BUILD.root.gn.in16
-rw-r--r--src/core/tools/CMakeLists.txt21
-rw-r--r--src/core/tools/main.cpp (renamed from src/tools/qwebengine_convert_dict/main.cpp)0
5 files changed, 57 insertions, 26 deletions
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index 8dc6a8e9d..b5c30d3b9 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -14,6 +14,7 @@ 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)
@@ -528,7 +529,6 @@ foreach(config ${configs})
string(REGEX REPLACE "\n$" "" gnOutput "${gnOutput}")
message("-- GN ${gnOutput}")
endif()
- include(${buildDir}/${config}/QtWebEngineCore.cmake)
##
@@ -577,30 +577,10 @@ endif()
foreach(config ${configs})
- string(TOUPPER ${config} cfg)
-
- add_library(GnObjects_${config} OBJECT IMPORTED GLOBAL)
- target_link_libraries(WebEngineCore PRIVATE $<$<CONFIG:${config}>:GnObjects_${config}>)
- add_dependencies(GnObjects_${config} ninja_${config})
- #TODO: remove GnObjects_${config} with CMAKE 3.20
- set_property(TARGET GnObjects_${config} PROPERTY IMPORTED_OBJECTS_${cfg} ${${cfg}_NINJA_OBJECTS})
- set_source_files_properties(${${cfg}_NINJA_OBJECTS} PROPERTIES GENERATED TRUE)
-
- if(LINUX)
- target_link_libraries(WebEngineCore
- PRIVATE "-Wl,--start-group" "$<$<CONFIG:${config}>:${${cfg}_NINJA_ARCHIVES}>" "-Wl,--end-group")
- else()
- target_link_libraries(WebEngineCore PRIVATE "$<$<CONFIG:${config}>:${${cfg}_NINJA_ARCHIVES}>")
- endif()
-
- target_link_libraries(WebEngineCore PUBLIC "$<$<CONFIG:${config}>:${${cfg}_NINJA_LIBS}>")
-
- # we depend on WebEnigneCore stamp, but ninja backend generator needs more
- add_custom_command(OUTPUT ${${cfg}_NINJA_OBJECTS} ${${cfg}_NINJA_ARCHIVES}
- DEPENDS ${buildDir}/${config}/QtWebEngineCore.stamp)
- add_custom_target(generate_${cfg} DEPENDS ${${cfg}_NINJA_OBJECTS} ${${cfg}_NINJA_ARCHIVES})
+ extend_target_with_gn_objects(WebEngineCore ${config} QtWebEngineCore.cmake QtWebEngineCore.stamp)
if(WIN32)
+ string(TOUPPER ${config} cfg)
set(sandboxLibraryPath ${buildDir}/${config}/QtWebEngineCoreSandbox.lib)
set_property(TARGET WebEngineCoreSandbox
PROPERTY IMPORTED_LOCATION_${cfg} ${sandboxLibraryPath})
@@ -612,7 +592,7 @@ foreach(config ${configs})
endforeach()
##
-# RESOURCES
+# WEBENGINECORE RESOURCES
##
#TODO: use simply filter / globbing-expressions
@@ -712,3 +692,20 @@ else()
${CMAKE_INSTALL_PREFIX}/translations/qtwebengine_locales)
endif()
endif()
+
+##
+# WEBENGINECORE DICT TOOL SETUP
+##
+
+if(QT_FEATURE_webengine_spellchecker)
+ qt_get_tool_target_name(dict_target_name qwebengine_convert_dict)
+ target_include_directories(${dict_target_name} PRIVATE
+ ../3rdparty/chromium
+ ../3rdparty/chromium/third_party/boringssl/src/include
+ ${buildDir}/${config}/gen
+ )
+ foreach(config ${configs})
+ extend_target_with_gn_objects(${dict_target_name} ${config} convert_dict.cmake "")
+ endforeach()
+endif()
+
diff --git a/src/core/api/configure.cmake b/src/core/api/configure.cmake
index 8e8b6044e..35d28e87f 100644
--- a/src/core/api/configure.cmake
+++ b/src/core/api/configure.cmake
@@ -81,7 +81,6 @@ qt_feature("webengine-kerberos" PRIVATE
qt_feature("webengine-spellchecker" PUBLIC
LABEL "Spellchecker"
PURPOSE "Provides a spellchecker."
- AUTODETECT OFF
)
qt_feature("webengine-native-spellchecker" PUBLIC
LABEL "Native Spellchecker"
diff --git a/src/core/configure/BUILD.root.gn.in b/src/core/configure/BUILD.root.gn.in
index 28882050f..b0e52511c 100644
--- a/src/core/configure/BUILD.root.gn.in
+++ b/src/core/configure/BUILD.root.gn.in
@@ -258,7 +258,8 @@ source_set("qtwebengine_sources") {
if (enable_spellcheck) {
deps += [
":qtwebengine_spellcheck_sources",
- "//chrome/tools/convert_dict",
+ "//chrome/tools/convert_dict:lib",
+ "//third_party/hunspell",
]
}
if (enable_plugins) {
@@ -530,3 +531,16 @@ if (enable_extensions) {
]
}
}
+
+if (enable_spellcheck) {
+ shared_library("convert_dict") {
+ cmake_config = "@GN_CONFIG@"
+ configs += [ "//build/config/compiler:wexit_time_destructors" ]
+ deps = [
+ "//chrome/tools/convert_dict:lib",
+ "//base",
+ "//base:i18n",
+ "//third_party/hunspell",
+ ]
+ }
+}
diff --git a/src/core/tools/CMakeLists.txt b/src/core/tools/CMakeLists.txt
new file mode 100644
index 000000000..d191f57b9
--- /dev/null
+++ b/src/core/tools/CMakeLists.txt
@@ -0,0 +1,21 @@
+
+##
+# WEBENGINECORE DICT CONVERT TOOL
+##
+
+if(QT_FEATURE_webengine_spellchecker)
+ qt_get_tool_target_name(dict_target_name qwebengine_convert_dict)
+ qt_internal_add_tool(${dict_target_name}
+ TARGET_DESCRIPTION "QtWebEngine Dictionary Conversion Tool"
+ INSTALL_DIR ${INSTALL_LIBEXECDIR}
+ TOOLS_TARGET WebEngineCore
+ 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
+ )
+endif()
+
diff --git a/src/tools/qwebengine_convert_dict/main.cpp b/src/core/tools/main.cpp
index d79132510..d79132510 100644
--- a/src/tools/qwebengine_convert_dict/main.cpp
+++ b/src/core/tools/main.cpp