| # Copyright 2016 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/package.gni") |
| import("//topaz/runtime/chromium/chromium.gni") |
| import("//topaz/runtime/web_view/config.gni") |
| |
| if (enable_chromium_based_web_runner) { |
| # If chromium is the web runner, we don't need any of these targets. |
| # Leave empty build & package targets for package configurations that still |
| # reference these. |
| package("web_view") { |
| deprecated_system_image = true |
| # Empty |
| } |
| |
| group("webkit") { |
| # Empty |
| } |
| |
| package("web_view_link_test_package") { |
| deprecated_system_image = true |
| # Empty |
| } |
| } else { |
| executable("web_view_bin") { |
| output_name = "web_view" |
| |
| sources = [ |
| "main.cpp", |
| "web_view_impl.cpp", |
| "web_view_impl.h", |
| "web_view_provider.cpp", |
| "web_view_provider.h", |
| ] |
| |
| deps = [ |
| ":webkit", |
| "//garnet/public/fidl/fuchsia.math", |
| "//garnet/public/fidl/fuchsia.ui.app", |
| "//garnet/public/fidl/fuchsia.ui.viewsv1", |
| "//garnet/public/lib/component/cpp", |
| "//garnet/public/lib/fxl", |
| "//garnet/public/lib/icu_data/cpp", |
| "//garnet/public/lib/ui/base_view/cpp", |
| "//garnet/public/lib/url", |
| "//peridot/lib/rapidjson", |
| "//peridot/public/fidl/fuchsia.modular", |
| "//third_party/boringssl", |
| "//third_party/rapidjson", |
| "//topaz/runtime/web_runner/services", |
| "//zircon/public/lib/async-loop-cpp", |
| "//zircon/public/lib/hid", |
| ] |
| |
| if (experimental_web_entity_extraction) { |
| sources += [ |
| "schema_org_context.cpp", |
| "schema_org_context.h", |
| ] |
| defines = [ "EXPERIMENTAL_WEB_ENTITY_EXTRACTION" ] |
| } |
| |
| ldflags = [ "-Wl,-z,stack-size=1048576" ] |
| } |
| |
| group("webkit") { |
| visibility = [ |
| # Allow the webkit library to be built as a standalone. |
| "//build/gn/*", |
| "//topaz/*", |
| "//vendor/google/*", |
| ] |
| |
| if (use_prebuilt_webkit) { |
| public_configs = [ ":prebuilt_webkit_config" ] |
| deps = [ |
| ":copy_prebuilt_webkit($shlib_toolchain)", |
| "//third_party/boringssl:ssl", |
| "//third_party/cairo", |
| "//third_party/curl:libcurl", |
| "//third_party/freetype2", |
| "//third_party/harfbuzz", |
| "//third_party/icu:icui18n", |
| "//third_party/icu:icuuc", |
| "//third_party/libjpeg-turbo:libjpeg", |
| "//third_party/libpng", |
| "//third_party/libxml2", |
| "//third_party/sqlite", |
| "//third_party/zlib", |
| ] |
| } else { |
| public_deps = [ |
| "//third_party/webkit", |
| ] |
| } |
| } |
| |
| if (use_prebuilt_webkit) { |
| assert( |
| toolchain_variant.name == "" || toolchain_variant.name == "debug" || |
| toolchain_variant.name == "release", |
| "Set use_prebuilt_webkit=false when selecting variants for web_view.") |
| |
| if (target_cpu == "x64") { |
| webkit_arch = "x86_64" |
| } else if (target_cpu == "arm64") { |
| webkit_arch = "aarch64" |
| } else { |
| assert(false, "Target architecture not supported") |
| } |
| prebuilt_webkit = "prebuilt/${webkit_arch}/libwebkit.so" |
| |
| config("prebuilt_webkit_config") { |
| include_dirs = [ |
| "//third_party/webkit/DerivedSources/ForwardingHeaders", |
| "//third_party/webkit/DerivedSources/ForwardingHeaders/JavaScriptCore", |
| "//third_party/webkit/DerivedSources/ForwardingHeaders/WebCore", |
| "//third_party/webkit/DerivedSources/WebCore", |
| "//third_party/webkit/Source", |
| "//third_party/webkit/Source/WTF", |
| "//third_party/webkit/Source/WebCore/ForwardingHeaders/", |
| "//third_party/webkit/Source/WebCore/cssjit", |
| "//third_party/webkit/Source/WebKit/fuchsia", |
| ] |
| libs = [ prebuilt_webkit ] |
| cflags = [ "-includeWebKitPrefix.h" ] |
| configs = [ "//third_party/icu:icu_config" ] |
| } |
| |
| if (current_toolchain == shlib_toolchain) { |
| # This is needed to get the prebuilt into the place that package.gni |
| # wants to find it. |
| copy("copy_prebuilt_webkit") { |
| sources = [ |
| prebuilt_webkit, |
| ] |
| outputs = [ |
| "$root_out_dir/libwebkit.so", |
| ] |
| } |
| } |
| } |
| |
| package("web_view") { |
| deps = [ |
| ":web_view_bin", |
| ] |
| |
| binary = "web_view" |
| |
| resources = [ |
| { |
| path = rebase_path( |
| "//garnet/bin/fonts/third_party/roboto/Roboto-Regular.ttf") |
| dest = "webkit/Roboto-Regular.ttf" |
| }, |
| { |
| path = rebase_path("//third_party/icu/common/icudtl.dat") |
| dest = "icudtl.dat" |
| }, |
| ] |
| |
| meta = [ |
| { |
| path = rebase_path("meta/web_view.cmx") |
| dest = "web_view.cmx" |
| }, |
| ] |
| |
| if (experimental_web_entity_extraction) { |
| resources += [ |
| { |
| path = rebase_path("js/dist/bundle.js") |
| dest = "js/extract_schema_org.js" |
| }, |
| ] |
| } |
| } |
| |
| executable("web_view_test") { |
| sources = [ |
| "test_webview.cpp", |
| ] |
| |
| deps = [ |
| ":webkit", |
| ] |
| } |
| |
| package("web_view_test_package") { |
| deprecated_system_image = true |
| |
| deps = [ |
| ":web_view_test", |
| ] |
| |
| binaries = [ |
| { |
| name = "web_view_test" |
| }, |
| ] |
| } |
| |
| executable("web_view_link_test") { |
| sources = [ |
| "test_webview_link.cpp", |
| ] |
| |
| deps = [ |
| ":webkit", |
| ] |
| } |
| |
| package("web_view_link_test_package") { |
| deprecated_system_image = true |
| |
| deps = [ |
| ":web_view_link_test", |
| ] |
| |
| tests = [ |
| { |
| name = "web_view_link_test" |
| }, |
| ] |
| } |
| } |