diff options
author | Michal Klocek <michal.klocek@qt.io> | 2021-05-28 19:59:48 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-06-15 10:53:32 +0000 |
commit | e0979612a57d0a71c2b4f5d646547b5a5f6ab99c (patch) | |
tree | 4f01307f92341fb6e978773aef0998b9839fad90 /src | |
parent | ad036413b1044c802253a5843568048d22523ebf (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.txt | 45 | ||||
-rw-r--r-- | src/core/api/configure.cmake | 1 | ||||
-rw-r--r-- | src/core/configure/BUILD.root.gn.in | 16 | ||||
-rw-r--r-- | src/core/tools/CMakeLists.txt | 21 | ||||
-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 |