diff options
author | Michal Klocek <michal.klocek@qt.io> | 2016-11-23 20:08:09 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-01-25 09:15:33 +0000 |
commit | 2fab4a04938a4ddc30f9bdb1749e75e26a3df354 (patch) | |
tree | 20ffd5d85f3f851c88beb2652f68f9e9291190b5 /src | |
parent | c2447a308882ba3691d66b2c28df197f571518c7 (diff) |
Add gn build of qtwebengine for linux
This commit uses gn instead of gyp to build on desktop
linux.
Use WEBENGINE_CONFIG+=use_gn to use gn during the build
instead of gyp.
Change-Id: Ifd3d8d0835b47c323a8d39c320eb55e5e1024dee
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/core/config/common.pri | 82 | ||||
-rw-r--r-- | src/core/config/desktop_linux.pri | 48 | ||||
-rw-r--r-- | src/core/core.pro | 29 | ||||
-rw-r--r-- | src/core/core_gn_config.pri | 6 | ||||
-rw-r--r-- | src/core/core_module.pro | 113 | ||||
-rw-r--r-- | src/core/gn_run.pro | 33 | ||||
-rw-r--r-- | src/core/qtwebengine.gni | 45 | ||||
-rw-r--r-- | src/core/qtwebengine_resources.gni | 90 | ||||
-rw-r--r-- | src/core/qtwebengine_sources.gni | 118 | ||||
-rw-r--r-- | src/src.pro | 51 | ||||
-rw-r--r-- | src/tools/qwebengine_convert_dict/qwebengine_convert_dict.pro | 22 |
11 files changed, 509 insertions, 128 deletions
diff --git a/src/core/config/common.pri b/src/core/config/common.pri index f822ab7cc..d13d9f8d9 100644 --- a/src/core/config/common.pri +++ b/src/core/config/common.pri @@ -1,33 +1,61 @@ # Shared configuration for all our supported platforms -# Trigger Qt-specific build conditions. -GYP_CONFIG += use_qt=1 -# We do not want to ship more external binary blobs, so let v8 embed its startup data. -GYP_CONFIG += v8_use_external_startup_data=0 -# WebSpeech requires Google API keys and adds dependencies on speex and flac. -GYP_CONFIG += enable_web_speech=0 -# We do not use or even include the extensions -GYP_CONFIG += enable_extensions=0 - -sanitize_address: GYP_CONFIG += asan=1 -sanitize_thread: GYP_CONFIG += tsan=1 -sanitize_memory: GYP_CONFIG += msan=1 -sanitize_undefined: GYP_CONFIG += ubsan=1 - -use?(printing) { - GYP_CONFIG += enable_basic_printing=1 enable_print_preview=1 -} else { - GYP_CONFIG += enable_basic_printing=0 enable_print_preview=0 -} +use?(gn) { -use?(pdf) { - GYP_CONFIG += enable_pdf=1 -} else { - GYP_CONFIG += enable_pdf=0 -} + use?(printing) { + gn_args += enable_basic_printing=true enable_print_preview=true + } else { + gn_args += enable_basic_printing=false enable_print_preview=false + } + + use?(pdf) { + gn_args += enable_pdf=true + } else { + gn_args += enable_pdf=false + } + + use?(pepper_plugins) { + gn_args += enable_plugins=true enable_widevine=true + } else { + gn_args += enable_plugins=false enable_widevine=false + } + + use?(spellchecker) { + gn_args += enable_spellcheck=true + } else { + gn_args += enable_spellcheck=false + } -use?(pepper_plugins) { - GYP_CONFIG += enable_plugins=1 enable_widevine=1 } else { - GYP_CONFIG += enable_plugins=0 enable_widevine=0 + # Trigger Qt-specific build conditions. + GYP_CONFIG += use_qt=1 + # We do not want to ship more external binary blobs, so let v8 embed its startup data. + GYP_CONFIG += v8_use_external_startup_data=0 + # WebSpeech requires Google API keys and adds dependencies on speex and flac. + GYP_CONFIG += enable_web_speech=0 + # We do not use or even include the extensions + GYP_CONFIG += enable_extensions=0 + + sanitize_address: GYP_CONFIG += asan=1 + sanitize_thread: GYP_CONFIG += tsan=1 + sanitize_memory: GYP_CONFIG += msan=1 + sanitize_undefined: GYP_CONFIG += ubsan=1 + + use?(printing) { + GYP_CONFIG += enable_basic_printing=1 enable_print_preview=1 + } else { + GYP_CONFIG += enable_basic_printing=0 enable_print_preview=0 + } + + use?(pdf) { + GYP_CONFIG += enable_pdf=1 + } else { + GYP_CONFIG += enable_pdf=0 + } + + use?(pepper_plugins) { + GYP_CONFIG += enable_plugins=1 enable_widevine=1 + } else { + GYP_CONFIG += enable_plugins=0 enable_widevine=0 + } } diff --git a/src/core/config/desktop_linux.pri b/src/core/config/desktop_linux.pri index 92491fc1c..f8bd42ce8 100644 --- a/src/core/config/desktop_linux.pri +++ b/src/core/config/desktop_linux.pri @@ -1,17 +1,41 @@ -GYP_ARGS += "-D qt_os=\"desktop_linux\"" -include(linux.pri) +use?(gn) { + include(common.pri) + gn_args += \ + use_qt=true \ + is_clang=false \ + use_sysroot=false \ + enable_remoting=false \ + enable_nacl=false \ + use_kerberos=false \ + is_component_build=false \ + use_experimental_allocator_shim=false \ + use_allocator=\"none\" \ + v8_use_external_startup_data=false \ + linux_use_bundled_binutils=false \ + treat_warnings_as_errors=false -GYP_CONFIG += \ - desktop_linux=1 + use?(icecc) { + gn_args += use_debug_fission=false + } -clang { - GYP_CONFIG += werror= - clang_full_path = $$which($${QMAKE_CXX}) - # Remove the "/bin/clang++" part. - clang_prefix = $$section(clang_full_path, /, 0, -3) - GYP_CONFIG += clang=1 host_clang=1 clang_use_chrome_plugins=0 make_clang_dir=$${clang_prefix} - linux-clang-libc++: GYP_CONFIG += use_system_libcxx=1 } else { - GYP_CONFIG += clang=0 host_clang=0 + + GYP_ARGS += "-D qt_os=\"desktop_linux\"" + + include(linux.pri) + + GYP_CONFIG += \ + desktop_linux=1 + + clang { + GYP_CONFIG += werror= + clang_full_path = $$which($${QMAKE_CXX}) + # Remove the "/bin/clang++" part. + clang_prefix = $$section(clang_full_path, /, 0, -3) + GYP_CONFIG += clang=1 host_clang=1 clang_use_chrome_plugins=0 make_clang_dir=$${clang_prefix} + linux-clang-libc++: GYP_CONFIG += use_system_libcxx=1 + } else { + GYP_CONFIG += clang=0 host_clang=0 + } } diff --git a/src/core/core.pro b/src/core/core.pro index e495685eb..42906cbca 100644 --- a/src/core/core.pro +++ b/src/core/core.pro @@ -14,15 +14,38 @@ core_module.depends = core_api core_generator.file = core_generator.pro core_generator.depends = core_headers - use?(gn) { + # core_gn_generator.pro is a dummy .pro file that is used by qmake + # to generate our main BUILD.gn file + + core_icu.files = $$OUT_PWD/$$getConfigDir()/icudtl.dat + core_icu.path = $$[QT_INSTALL_DATA]/resources + core_icu.CONFIG += no_check_exist + + core_locales.files = $$OUT_PWD/$$getConfigDir()/qtwebengine_locales/*.pak + core_locales.path = $$[QT_INSTALL_TRANSLATIONS]/qtwebengine_locales + core_locales.CONFIG += no_check_exist + + core_resources.files = \ + $$OUT_PWD/$$getConfigDir()/qtwebengine_resources.pak \ + $$OUT_PWD/$$getConfigDir()/qtwebengine_resources_100p.pak \ + $$OUT_PWD/$$getConfigDir()/qtwebengine_resources_200p.pak \ + $$OUT_PWD/$$getConfigDir()/qtwebengine_devtools_resources.pak + core_resources.path = $$[QT_INSTALL_DATA]/resources + core_resources.CONFIG += no_check_exist + INSTALLS += core_resources core_locales core_icu gn_run.file = gn_run.pro gn_run.depends = core_generator - SUBDIRS += gn_run \ + core_api.depends = gn_run + + SUBDIRS += \ + core_api \ core_headers \ - core_generator + core_generator \ + core_module \ + gn_run } else { # gyp_run.pro calls gyp through gyp_qtwebengine on the qmake step, and ninja on the make step. diff --git a/src/core/core_gn_config.pri b/src/core/core_gn_config.pri index ea45977f5..fb671ddb2 100644 --- a/src/core/core_gn_config.pri +++ b/src/core/core_gn_config.pri @@ -1,6 +1,10 @@ CONFIG = gn_generator $$CONFIG GN_SRC_DIR = $$PWD -GN_FILE = $$OUT_PWD/BUILD.gn +GN_FILE = $$OUT_PWD/$$getConfigDir()/BUILD.gn GN_FIND_MOCABLES_SCRIPT = $$shell_path($$QTWEBENGINE_ROOT/tools/scripts/gn_find_mocables.py) GN_RUN_BINARY_SCRIPT = $$shell_path($$QTWEBENGINE_ROOT/tools/scripts/gn_run_binary.py) +GN_IMPORTS = $$PWD/qtwebengine.gni +GN_INCLUDES = $$PWD/qtwebengine_sources.gni $$PWD/qtwebengine_resources.gni +GN_CREATE_PRI = true +QMAKE_INTERNAL_INCLUDED_FILES = $$GN_IMPORTS $$GN_INCLUDES $$GN_FILE diff --git a/src/core/core_module.pro b/src/core/core_module.pro index 596993457..fc1c32786 100644 --- a/src/core/core_module.pro +++ b/src/core/core_module.pro @@ -4,9 +4,11 @@ include(core_common.pri) # Needed to set a CFBundleIdentifier QMAKE_INFO_PLIST = Info_mac.plist -# Look for linking information produced by gyp for our target according to core_generated.gyp -!include($$OUT_PWD/$$getConfigDir()/$${TARGET}_linking.pri) { - error("Could not find the linking information that gyp should have generated.") +use?(gn): linking_pri = $$OUT_PWD/$$getConfigDir()/$${TARGET}.pri +else: linking_pri = $$OUT_PWD/$$getConfigDir()/$${TARGET}_linking.pri + +!include($$linking_pri) { + error("Could not find the linking information that gyp/gn should have generated.") } load(qt_module) @@ -17,6 +19,18 @@ api_library_path = $$OUT_PWD/api/$$getConfigDir() # Do not precompile any headers. We are only interested in the linker step. PRECOMPILED_HEADER = +use?(gn){ + isEmpty(NINJA_OBJECTS): error("Missing object files from QtWebEngineCore linking pri.") + isEmpty(NINJA_LFLAGS): error("Missing linker flags from QtWebEngineCore linking pri") + isEmpty(NINJA_ARCHIVES): error("Missing archive files from QtWebEngineCore linking pri") + isEmpty(NINJA_LIBS): error("Missing library files from QtWebEngineCore linking pri") + OBJECTS = $$NINJA_OBJECTS + linux: LIBS_PRIVATE = -Wl,-whole-archive $$NINJA_ARCHIVES -Wl,-no-whole-archive + LIBS_PRIVATE += $$NINJA_LIB_DIRS $$NINJA_LIBS + QMAKE_LFLAGS += $$NINJA_LFLAGS + POST_TARGETDEPS += $$NINJA_TARGETDEPS +} + LIBS_PRIVATE += -L$$api_library_path CONFIG *= no_smart_library_merge osx { @@ -44,55 +58,58 @@ qtConfig(egl): CONFIG += egl linux:qtConfig(separate_debug_info): QMAKE_POST_LINK="cd $(DESTDIR) && $(STRIP) --strip-unneeded $(TARGET)" -REPACK_DIR = $$OUT_PWD/$$getConfigDir()/gen/repack -# Duplicated from resources/resources.gyp -LOCALE_LIST = 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 -for(LOC, LOCALE_LIST) { - locales.files += $$REPACK_DIR/qtwebengine_locales/$${LOC}.pak -} -resources.files = $$REPACK_DIR/qtwebengine_resources.pak \ - $$REPACK_DIR/qtwebengine_resources_100p.pak \ - $$REPACK_DIR/qtwebengine_resources_200p.pak \ - $$REPACK_DIR/qtwebengine_devtools_resources.pak - -icu.files = $$OUT_PWD/$$getConfigDir()/icudtl.dat - -!debug_and_release|!build_all|CONFIG(release, debug|release) { - qtConfig(framework) { - locales.version = Versions - locales.path = Resources/qtwebengine_locales - resources.version = Versions - resources.path = Resources - icu.version = Versions - icu.path = Resources - # No files, this prepares the bundle Helpers symlink, process.pro will create the directories - qtwebengineprocessplaceholder.version = Versions - qtwebengineprocessplaceholder.path = Helpers - QMAKE_BUNDLE_DATA += icu locales resources qtwebengineprocessplaceholder - } else { - locales.CONFIG += no_check_exist - locales.path = $$[QT_INSTALL_TRANSLATIONS]/qtwebengine_locales - resources.CONFIG += no_check_exist - resources.path = $$[QT_INSTALL_DATA]/resources - INSTALLS += locales resources - - !use?(system_icu) { - icu.CONFIG += no_check_exist - icu.path = $$[QT_INSTALL_DATA]/resources - INSTALLS += icu - } +!use?(gn) { + + REPACK_DIR = $$OUT_PWD/$$getConfigDir()/gen/repack + # Duplicated from resources/resources.gyp + LOCALE_LIST = 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 + for(LOC, LOCALE_LIST) { + locales.files += $$REPACK_DIR/qtwebengine_locales/$${LOC}.pak } + resources.files = $$REPACK_DIR/qtwebengine_resources.pak \ + $$REPACK_DIR/qtwebengine_resources_100p.pak \ + $$REPACK_DIR/qtwebengine_resources_200p.pak \ + $$REPACK_DIR/qtwebengine_devtools_resources.pak + + icu.files = $$OUT_PWD/$$getConfigDir()/icudtl.dat + + !debug_and_release|!build_all|CONFIG(release, debug|release) { + qtConfig(framework) { + locales.version = Versions + locales.path = Resources/qtwebengine_locales + resources.version = Versions + resources.path = Resources + icu.version = Versions + icu.path = Resources + # No files, this prepares the bundle Helpers symlink, process.pro will create the directories + qtwebengineprocessplaceholder.version = Versions + qtwebengineprocessplaceholder.path = Helpers + QMAKE_BUNDLE_DATA += icu locales resources qtwebengineprocessplaceholder + } else { + locales.CONFIG += no_check_exist + locales.path = $$[QT_INSTALL_TRANSLATIONS]/qtwebengine_locales + resources.CONFIG += no_check_exist + resources.path = $$[QT_INSTALL_DATA]/resources + INSTALLS += locales resources + + !use?(system_icu) { + icu.CONFIG += no_check_exist + icu.path = $$[QT_INSTALL_DATA]/resources + INSTALLS += icu + } + } - !qtConfig(framework):!force_independent { - # - # Copy essential files to the qtbase build directory for non-prefix builds - # + !qtConfig(framework):!force_independent { + # + # Copy essential files to the qtbase build directory for non-prefix builds + # - !use?(system_icu) { - COPIES += icu - } + !use?(system_icu) { + COPIES += icu + } - COPIES += resources locales + COPIES += resources locales + } } } diff --git a/src/core/gn_run.pro b/src/core/gn_run.pro index c379f9510..5bb90d8b6 100644 --- a/src/core/gn_run.pro +++ b/src/core/gn_run.pro @@ -7,8 +7,14 @@ TEMPLATE = aux build_pass|!debug_and_release { + linux: include(config/desktop_linux.pri) + isEmpty(gn_args): error(No gn_args found please make sure you have valid configuration.) + ninja_binary = ninja + gn_binary = gn + runninja.target = run_ninja + rungn.target = run_gn !qtConfig(system-ninja) { ninja_binary = $$shell_quote($$shell_path($$ninjaPath())) @@ -18,18 +24,35 @@ build_pass|!debug_and_release { runninja.depends = buildninja } + CONFIG(release, debug|release): + gn_args += is_debug=false + + gn_args += "qtwebengine_target=\"$$shell_path($$OUT_PWD/$$getConfigDir()):QtWebEngineCore\"" + !qtConfig(system-gn) { + gn_binary = $$shell_quote($$shell_path($$gnPath())) buildgn.target = build_gn - buildgn.commands = $$buildGn() - !qtConfig(system-ninja): buildgn.depends = buildninja + buildgn.commands = $$buildGn($$gn_args) + !qtConfig(system-ninja) { + buildgn.depends = buildninja + rungn.depends = buildninja + } QMAKE_EXTRA_TARGETS += buildgn - runninja.depends = buildgn } - runninja.commands = $$ninja_binary \$\(NINJAFLAGS\) -C $$shell_quote($$OUT_PWD/$$getConfigDir()) + gn_args = $$shell_quote($$gn_args) + gn_src_root = $$shell_quote($$shell_path($$QTWEBENGINE_ROOT/$$getChromiumSrcDir())) + gn_build_root = $$shell_quote($$shell_path($$OUT_PWD/$$getConfigDir())) + rungn.commands = $$gn_binary gen $$gn_build_root --args=$$gn_args --root=$$gn_src_root + QMAKE_EXTRA_TARGETS += rungn + + runninja.commands = $$ninja_binary \$\(NINJAFLAGS\) -v -C $$shell_quote($$OUT_PWD/$$getConfigDir()) QtWebEngineCore + runninja.depends += rungn QMAKE_EXTRA_TARGETS += runninja - default_target.depends = buildgn + build_pass:build_all: default_target.target = all + else: default_target.target = first + default_target.depends = runninja QMAKE_EXTRA_TARGETS += default_target } else { diff --git a/src/core/qtwebengine.gni b/src/core/qtwebengine.gni new file mode 100644 index 000000000..e73f9eb82 --- /dev/null +++ b/src/core/qtwebengine.gni @@ -0,0 +1,45 @@ +chromium_version = exec_script("//build/util/version.py", [ "-f", rebase_path("//chrome/VERSION"), + "-t", "@MAJOR@.@MINOR@.@BUILD@.@PATCH@"], + "list lines") + +declare_args() { + use_qt = true +} + +include_dirs = [ + "//skia/config", + "//third_party/skia/include/core" +] + +deps = [ + "//base", + "//components/devtools_http_handler", + "//components/error_page/common", + "//components/keyed_service/content", + "//components/visitedlink/browser", + "//components/visitedlink/renderer", + "//components/web_cache/browser", + "//components/web_cache/public/interfaces", + "//components/web_cache/renderer", + "//content/public/app:browser", + "//content/public/browser", + "//content/public/common", + "//net:net_browser_services", + "//services/shell/public/cpp", + "//skia", + "//third_party/WebKit/public:blink", + "//third_party/widevine/cdm:version_h", + "//ui/accessibility", + ":qtwebengine_sources", + ":qtwebengine_resources" +] + +if (enable_widevine) { + deps += [ "//components/cdm/renderer"] +} + +# fixme: +defines = [ + "QTWEBENGINEPROCESS_NAME=\"QtWebEngineProcess\"", + "CHROMIUM_VERSION=\"" + chromium_version[0] + "\"" +] diff --git a/src/core/qtwebengine_resources.gni b/src/core/qtwebengine_resources.gni new file mode 100644 index 000000000..e6d3b5a32 --- /dev/null +++ b/src/core/qtwebengine_resources.gni @@ -0,0 +1,90 @@ +import("//tools/grit/repack.gni") +import("//build/config/locales.gni") +import("//chrome/chrome_repack_locales.gni") + +group("qtwebengine_resources") { + deps = [ + "//chrome/app:generated_resources", + "//components/resources:components_resources", + ":qtwebengine_repack_resources", + ":qtwebengine_repack_resources_100", + ":qtwebengine_repack_resources_200", + ":qtwebengine_repack_resources_devtools", + ":qtwebengine_repack_locales_pack" + ] +} + +repack("qtwebengine_repack_resources") { + sources = [ + "$root_gen_dir/blink/public/resources/blink_resources.pak", + "$root_gen_dir/components/components_resources.pak", + "$root_gen_dir/content/content_resources.pak", + "$root_gen_dir/net/net_resources.pak", + "$root_gen_dir/ui/resources/webui_resources.pak", + ] + output = "$root_out_dir/qtwebengine_resources.pak" + deps = [ + "//components/resources:components_resources_grit", + "//content:resources_grit", + "//net:net_resources_grit", + "//third_party/WebKit/public:resources_grit", + "//ui/resources:webui_resources_grd_grit", + ] +} + +repack("qtwebengine_repack_resources_100") { + sources = [ + "$root_gen_dir/ui/resources/ui_resources_100_percent.pak", + "$root_gen_dir/components/components_resources_100_percent.pak", + "$root_gen_dir/content/app/resources/content_resources_100_percent.pak", + "$root_gen_dir/chrome/renderer_resources_100_percent.pak", + "$root_gen_dir/blink/public/resources/blink_image_resources_100_percent.pak", + ] + output = "$root_out_dir/qtwebengine_resources_100p.pak" + deps = [ + "//third_party/WebKit/public:image_resources_grit", + "//chrome/renderer:resources_grit", + "//components/resources:components_scaled_resources_grit", + "//content/app/resources:resources_grit", + "//ui/resources:ui_resources_grd_grit" + ] +} + +repack("qtwebengine_repack_resources_200") { + sources = [ + "$root_gen_dir/ui/resources/ui_resources_200_percent.pak", + "$root_gen_dir/components/components_resources_200_percent.pak", + "$root_gen_dir/content/app/resources/content_resources_200_percent.pak", + "$root_gen_dir/chrome/renderer_resources_200_percent.pak", + "$root_gen_dir/blink/public/resources/blink_image_resources_200_percent.pak", + ] + output = "$root_out_dir/qtwebengine_resources_200p.pak" + deps = [ + "//third_party/WebKit/public:image_resources_grit", + "//chrome/renderer:resources_grit", + "//components/resources:components_scaled_resources_grit", + "//content/app/resources:resources_grit", + "//ui/resources:ui_resources_grd_grit" + ] +} + +repack("qtwebengine_repack_resources_devtools") { + sources = [ + "$root_gen_dir/blink/devtools_resources.pak", + ] + output = "$root_out_dir/qtwebengine_devtools_resources.pak" + deps = [ + "//content/browser/devtools:devtools_resources_grit" + ] +} + +chrome_repack_locales("qtwebengine_repack_locales_pack") { + input_locales = locales + output_dir_name = "qtwebengine_locales" + if (is_mac) { + output_locales = locales_as_mac_outputs + } else { + output_locales = locales + } +} + diff --git a/src/core/qtwebengine_sources.gni b/src/core/qtwebengine_sources.gni new file mode 100644 index 000000000..6389bdf60 --- /dev/null +++ b/src/core/qtwebengine_sources.gni @@ -0,0 +1,118 @@ +source_set("qtwebengine_sources") { + include_dirs = [ + "//skia/config", + "//third_party/skia/include/core" + ] + deps = [] + sources = [ + "//chrome/browser/media/desktop_media_list.h", + "//chrome/browser/media/desktop_streams_registry.cc", + "//chrome/browser/media/desktop_streams_registry.h", + "//chrome/common/chrome_switches.cc", + "//chrome/common/chrome_switches.h", + "//components/prefs/testing_pref_store.cc", + "//components/prefs/testing_pref_store.h", + "//extensions/common/constants.cc", + "//extensions/common/constants.h", + "//extensions/common/url_pattern.cc", + "//extensions/common/url_pattern.h", + ] + + if (enable_plugins) { + sources += [ + "//chrome/browser/renderer_host/pepper/pepper_flash_clipboard_message_filter.cc", + "//chrome/browser/renderer_host/pepper/pepper_flash_clipboard_message_filter.h", + "//chrome/renderer/pepper/pepper_flash_font_file_host.cc", + "//chrome/renderer/pepper/pepper_flash_font_file_host.h", + "//chrome/renderer/pepper/pepper_shared_memory_message_filter.cc", + "//chrome/renderer/pepper/pepper_shared_memory_message_filter.h", + ] + } + + if (enable_spellcheck) { + sources += [ + "//chrome/browser/spellchecker/feedback.cc", + "//chrome/browser/spellchecker/feedback.h", + "//chrome/browser/spellchecker/feedback_sender.cc", + "//chrome/browser/spellchecker/feedback_sender.h", + "//chrome/browser/spellchecker/misspelling.cc", + "//chrome/browser/spellchecker/misspelling.h", + "//chrome/browser/spellchecker/spellcheck_action.cc", + "//chrome/browser/spellchecker/spellcheck_action.h", + "//chrome/browser/spellchecker/spellcheck_custom_dictionary.cc", + "//chrome/browser/spellchecker/spellcheck_custom_dictionary.h", + "//chrome/browser/spellchecker/spellcheck_factory.cc", + "//chrome/browser/spellchecker/spellcheck_factory.h", + "//chrome/browser/spellchecker/spellcheck_host_metrics.cc", + "//chrome/browser/spellchecker/spellcheck_host_metrics.h", + "//chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc", + "//chrome/browser/spellchecker/spellcheck_hunspell_dictionary.h", + "//chrome/browser/spellchecker/spellcheck_message_filter.cc", + "//chrome/browser/spellchecker/spellcheck_message_filter.h", + "//chrome/browser/spellchecker/spellcheck_message_filter_platform.h", + "//chrome/browser/spellchecker/spellcheck_message_filter_platform_mac.cc", + "//chrome/browser/spellchecker/spellcheck_platform_mac.mm", + "//chrome/browser/spellchecker/spellcheck_service.cc", + "//chrome/browser/spellchecker/spellcheck_service.h", + "//chrome/browser/spellchecker/spelling_service_client.cc", + "//chrome/browser/spellchecker/spelling_service_client.h", + "//chrome/browser/spellchecker/word_trimmer.cc", + "//chrome/browser/spellchecker/word_trimmer.h", + "//chrome/common/common_message_generator.cc", + "//chrome/common/pref_names.cc", + "//chrome/common/pref_names.h", + "//chrome/common/spellcheck_bdict_language.h", + "//chrome/common/spellcheck_common.cc", + "//chrome/common/spellcheck_common.h", + "//chrome/common/spellcheck_marker.h", + "//chrome/common/spellcheck_messages.h", + "//chrome/common/spellcheck_result.h", + "//chrome/renderer/spellchecker/custom_dictionary_engine.cc", + "//chrome/renderer/spellchecker/custom_dictionary_engine.h", + "//chrome/renderer/spellchecker/hunspell_engine.cc", + "//chrome/renderer/spellchecker/hunspell_engine.h", + "//chrome/renderer/spellchecker/spellcheck.cc", + "//chrome/renderer/spellchecker/spellcheck.h", + "//chrome/renderer/spellchecker/spellcheck_language.cc", + "//chrome/renderer/spellchecker/spellcheck_language.h", + "//chrome/renderer/spellchecker/spellcheck_provider.cc", + "//chrome/renderer/spellchecker/spellcheck_provider.h", + "//chrome/renderer/spellchecker/spellcheck_worditerator.cc", + "//chrome/renderer/spellchecker/spellcheck_worditerator.h", + "//chrome/renderer/spellchecker/spelling_engine.h", + ] + include_dirs += [ + "//third_party/WebKit" + ] + deps = [ + "//third_party/icu", + "//third_party/hunspell", + "//chrome/tools/convert_dict" + ] + } + + if (enable_basic_printing || enable_print_preview) { + sources += [ + "//chrome/browser/printing/printer_query.cc", + "//chrome/browser/printing/printer_query.h", + "//chrome/browser/printing/print_job.cc", + "//chrome/browser/printing/print_job.h", + "//chrome/browser/printing/print_job_manager.cc", + "//chrome/browser/printing/print_job_manager.h", + "//chrome/browser/printing/print_job_worker.cc", + "//chrome/browser/printing/print_job_worker.h", + "//chrome/browser/printing/print_job_worker_owner.cc", + "//chrome/browser/printing/print_job_worker_owner.h", + ] + } + + if (enable_pdf) { + deps += [ + "//pdf", + "//components/printing/browser", + "//components/printing/renderer", + ] + } + +} + diff --git a/src/src.pro b/src/src.pro index 26abd52cc..7f8b39cd6 100644 --- a/src/src.pro +++ b/src/src.pro @@ -7,37 +7,32 @@ webengine_plugin.subdir = webengine/plugin webengine_plugin.target = sub-webengine-plugin webengine_plugin.depends = webengine -SUBDIRS += core +SUBDIRS += core \ + process \ + webengine \ + webengine_plugin \ + plugins -!use?(gn) { - SUBDIRS += process \ - webengine \ - webengine_plugin \ - plugins +use?(spellchecker):!use?(native_spellchecker):!cross_compile { + SUBDIRS += qwebengine_convert_dict + qwebengine_convert_dict.subdir = tools/qwebengine_convert_dict + qwebengine_convert_dict.depends = core +} - # allow only desktop builds of qwebengine_convert_dict - contains(WEBENGINE_CONFIG, use_spellchecker):!contains(WEBENGINE_CONFIG, use_native_spellchecker):!cross_compile { - SUBDIRS += qwebengine_convert_dict - qwebengine_convert_dict.subdir = tools/qwebengine_convert_dict - qwebengine_convert_dict.depends = core - } +isQMLTestSupportApiEnabled() { + webengine_testsupport_plugin.subdir = webengine/plugin/testsupport + webengine_testsupport_plugin.target = sub-webengine-testsupport-plugin + webengine_testsupport_plugin.depends = webengine + SUBDIRS += webengine_testsupport_plugin +} - isQMLTestSupportApiEnabled() { - webengine_testsupport_plugin.subdir = webengine/plugin/testsupport - webengine_testsupport_plugin.target = sub-webengine-testsupport-plugin - webengine_testsupport_plugin.depends = webengine - SUBDIRS += webengine_testsupport_plugin - } +!contains(WEBENGINE_CONFIG, no_ui_delegates) { + SUBDIRS += webengine/ui \ + webengine/ui2 +} - # FIXME: We probably want a bit more control over config options to tweak what to build/ship or not. - # Another example of where this could be necessary is to make it easy to build proprietery codecs support. - !contains(WEBENGINE_CONFIG, no_ui_delegates) { - SUBDIRS += webengine/ui \ - webengine/ui2 - } - qtHaveModule(widgets) { - SUBDIRS += webenginewidgets - plugins.depends = webenginewidgets - } +qtHaveModule(widgets) { + SUBDIRS += webenginewidgets + plugins.depends = webenginewidgets } diff --git a/src/tools/qwebengine_convert_dict/qwebengine_convert_dict.pro b/src/tools/qwebengine_convert_dict/qwebengine_convert_dict.pro index 715081b5f..21add0154 100644 --- a/src/tools/qwebengine_convert_dict/qwebengine_convert_dict.pro +++ b/src/tools/qwebengine_convert_dict/qwebengine_convert_dict.pro @@ -1,12 +1,26 @@ option(host_build) # Look for linking information produced by gyp for our target according to core_generated.gyp -!include($$OUT_PWD/../../core/$$getConfigDir()/convert_dict_linking.pri) { - error("Could not find the linking information that gyp should have generated.") +use?(gn): linking_pri = $$OUT_PWD/../../core/$$getConfigDir()/convert_dict.pri +else: linking_pri = $$OUT_PWD/../../core/$$getConfigDir()/convert_dict_linking.pri + +!include($$linking_pri) { + error("Could not find the linking information that gyp/gn should have generated.") } -# skip dummy main.cpp file -OBJECTS = +use?(gn){ + isEmpty(NINJA_OBJECTS): error("Missing object files from QtWebEngineCore linking pri.") + isEmpty(NINJA_LFLAGS): error("Missing linker flags from QtWebEngineCore linking pri") + isEmpty(NINJA_ARCHIVES): error("Missing archive files from QtWebEngineCore linking pri") + isEmpty(NINJA_LIBS): error("Missing library files from QtWebEngineCore linking pri") + linux: LIBS_PRIVATE = $$NINJA_OBJECTS -Wl,-whole-archive $$NINJA_ARCHIVES -Wl,-no-whole-archive + LIBS_PRIVATE += $$NINJA_LIB_DIRS $$NINJA_LIBS + QMAKE_LFLAGS += $$NINJA_LFLAGS + POST_TARGETDEPS += $$NINJA_TARGETDEPS +} else { + # skip dummy main.cpp file + OBJECTS = +} # Fixme: -Werror=unused-parameter in core QMAKE_CXXFLAGS_WARN_ON = |