| # Copyright 2018 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| assert(is_fuchsia) |
| |
| import("//build/config/fuchsia/fidl_library.gni") |
| import("//build/config/fuchsia/rules.gni") |
| import("//build/util/process_version.gni") |
| import("//testing/test.gni") |
| import("//tools/grit/repack.gni") |
| |
| config("webrunner_implementation") { |
| defines = [ "WEBRUNNER_IMPLEMENTATION" ] |
| } |
| |
| fuchsia_package("webrunner_pkg") { |
| binary = ":webrunner_exe" |
| package_name_override = "web_runner" |
| sandbox_policy = "app/sandbox_policy" |
| } |
| |
| fuchsia_package_runner("webrunner") { |
| package = ":webrunner_pkg" |
| package_name_override = "web_runner" |
| install_only = true |
| package_deps = [ [ |
| ":service_pkg", |
| "chromium", |
| ] ] |
| } |
| |
| executable("webrunner_exe") { |
| sources = [ |
| "app/component_controller_impl.cc", |
| "app/component_controller_impl.h", |
| "app/main.cc", |
| "app/web_content_runner.cc", |
| "app/web_content_runner.h", |
| ] |
| deps = [ |
| ":web_fidl", |
| "//base", |
| "//url", |
| ] |
| } |
| |
| fuchsia_package("service_pkg") { |
| binary = ":service_exe" |
| package_name_override = "chromium" |
| sandbox_policy = "service/sandbox_policy" |
| } |
| |
| executable("service_exe") { |
| deps = [ |
| ":service_lib", |
| ":web_fidl", |
| "//base", |
| "//content/public/app:both", |
| "//services/service_manager/embedder:embedder_switches", |
| ] |
| sources = [ |
| "service/web_content_service_main.cc", |
| ] |
| } |
| |
| fuchsia_package_runner("service_runner") { |
| package = ":service_pkg" |
| package_name_override = "chromium" |
| install_only = true |
| } |
| |
| component("service_lib") { |
| deps = [ |
| ":service_pak", |
| "//base", |
| "//components/version_info", |
| "//content/public/app:both", |
| "//content/public/browser", |
| "//content/public/child", |
| "//content/public/common", |
| "//content/public/renderer", |
| "//services/network/public/cpp", |
| "//ui/aura", |
| "//ui/display", |
| "//ui/ozone", |
| "//ui/platform_window", |
| "//ui/wm", |
| "//ui/wm/public", |
| ] |
| |
| data_deps = [ |
| ":service_pak", |
| ] |
| data = [ |
| "$root_out_dir/webrunner.pak", |
| ] |
| public_deps = [ |
| ":web_fidl", |
| ] |
| configs += [ ":webrunner_implementation" ] |
| |
| sources = [ |
| "browser/context_impl.cc", |
| "browser/context_impl.h", |
| "browser/frame_impl.cc", |
| "browser/frame_impl.h", |
| "browser/webrunner_browser_context.cc", |
| "browser/webrunner_browser_context.h", |
| "browser/webrunner_browser_main.cc", |
| "browser/webrunner_browser_main.h", |
| "browser/webrunner_browser_main_parts.cc", |
| "browser/webrunner_browser_main_parts.h", |
| "browser/webrunner_content_browser_client.cc", |
| "browser/webrunner_content_browser_client.h", |
| "browser/webrunner_net_log.cc", |
| "browser/webrunner_net_log.h", |
| "browser/webrunner_screen.cc", |
| "browser/webrunner_screen.h", |
| "browser/webrunner_url_request_context_getter.cc", |
| "browser/webrunner_url_request_context_getter.h", |
| "common/webrunner_content_client.cc", |
| "common/webrunner_content_client.h", |
| "common/webrunner_export.h", |
| "service/common.cc", |
| "service/common.h", |
| "service/context_provider_impl.cc", |
| "service/context_provider_impl.h", |
| "service/context_provider_main.cc", |
| "service/context_provider_main.h", |
| "service/webrunner_main_delegate.cc", |
| "service/webrunner_main_delegate.h", |
| ] |
| } |
| |
| repack("service_pak") { |
| sources = [ |
| "$root_gen_dir/components/components_resources.pak", |
| "$root_gen_dir/components/strings/components_strings_en-US.pak", |
| "$root_gen_dir/content/app/resources/content_resources_100_percent.pak", |
| "$root_gen_dir/content/app/strings/content_strings_en-US.pak", |
| "$root_gen_dir/content/browser/devtools/devtools_resources.pak", |
| "$root_gen_dir/content/browser/tracing/tracing_resources.pak", |
| "$root_gen_dir/content/content_resources.pak", |
| "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak", |
| "$root_gen_dir/net/net_resources.pak", |
| "$root_gen_dir/third_party/blink/public/resources/blink_resources.pak", |
| "$root_gen_dir/third_party/blink/public/resources/blink_scaled_resources_100_percent.pak", |
| "$root_gen_dir/ui/resources/ui_resources_100_percent.pak", |
| "$root_gen_dir/ui/resources/webui_resources.pak", |
| "$root_gen_dir/ui/strings/app_locale_settings_en-US.pak", |
| "$root_gen_dir/ui/strings/ui_strings_en-US.pak", |
| ] |
| |
| deps = [ |
| "//components/resources:components_resources", |
| "//components/strings", |
| "//content:resources", |
| "//content/app/resources", |
| "//content/app/strings", |
| "//content/browser/devtools:resources", |
| "//content/browser/tracing:resources", |
| "//mojo/public/js:resources", |
| "//net:net_resources", |
| "//third_party/blink/public:resources", |
| "//third_party/blink/public:scaled_resources_100_percent", |
| "//ui/resources", |
| "//ui/strings", |
| ] |
| |
| output = "$root_out_dir/webrunner.pak" |
| } |
| |
| test("webrunner_browsertests") { |
| sources = [ |
| "browser/context_impl_browsertest.cc", |
| "browser/frame_impl_browsertest.cc", |
| "browser/test_common.cc", |
| "browser/test_common.h", |
| "browser/webrunner_browser_test.cc", |
| "browser/webrunner_browser_test.h", |
| "browser/webrunner_test_launcher.cc", |
| ] |
| defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] |
| data = [ |
| "browser/test/data", |
| ] |
| deps = [ |
| ":service_lib", |
| ":web_fidl", |
| "//base/test:test_support", |
| "//content/test:test_support", |
| "//net:test_support", |
| "//testing/gmock", |
| "//testing/gtest", |
| "//ui/ozone", |
| ] |
| } |
| |
| test("webrunner_unittests") { |
| sources = [ |
| "service/context_provider_impl_unittest.cc", |
| ] |
| deps = [ |
| ":service_lib", |
| ":web_fidl", |
| "//base/test:run_all_unittests", |
| "//base/test:test_support", |
| "//testing/gmock", |
| "//testing/gtest", |
| ] |
| } |
| |
| fidl_library("web_fidl") { |
| library_name = "web" |
| namespace = "chromium" |
| |
| sources = [ |
| "fidl/web/context.fidl", |
| "fidl/web/context_provider.fidl", |
| "fidl/web/frame.fidl", |
| "fidl/web/navigation_controller.fidl", |
| "fidl/web/navigation_event_observer.fidl", |
| ] |
| |
| public_deps = [ |
| "//third_party/fuchsia-sdk/sdk:gfx", |
| "//third_party/fuchsia-sdk/sdk:sys", |
| "//third_party/fuchsia-sdk/sdk:viewsv1", |
| ] |
| } |
| |
| # gn binary location. |
| if (host_os == "mac") { |
| _gn_path = "//buildtools/mac/gn" |
| } else if (host_os == "linux") { |
| _gn_path = "//buildtools/linux64/gn" |
| } |
| |
| # Build location where all Fuchsia archive source files are placed. |
| _artifact_root = "$root_out_dir/fuchsia_artifacts" |
| |
| # Produces a LICENSE file for webrunner and its transitive dependencies. |
| _license_path = "$_artifact_root/LICENSE" |
| action("license") { |
| script = "//tools/licenses.py" |
| inputs = [ |
| "$_gn_path", |
| ] |
| outputs = [ |
| _license_path, |
| ] |
| args = [ |
| "license_file", |
| rebase_path(_license_path, root_build_dir), |
| "--gn-target", |
| "//webrunner:webrunner_pkg", |
| "--gn-out-dir", |
| ".", |
| ] |
| } |
| |
| # Extracts the numeric Chrome build ID and writes it to a file in the output |
| # directory. |
| # |
| # To check out the repository on the commit where the build ID was generated, |
| # simply call `git checkout <build-id>`, and Git will check out the commit |
| # associated with the <build-id> tag. |
| process_version("build_id") { |
| template_file = "cipd/build_id.template" |
| sources = [ |
| "//chrome/VERSION", |
| ] |
| output = "$_artifact_root/build_id.txt" |
| process_only = true |
| } |
| |
| # Puts copies of files at the top level of the CIPD archive's structure. |
| copy("restaged_packages") { |
| sources = [ |
| "$root_gen_dir/webrunner/chromium/chromium.far", |
| "$root_gen_dir/webrunner/web_runner/web_runner.far", |
| ] |
| outputs = [ |
| "$_artifact_root/{{source_file_part}}", |
| ] |
| deps = [ |
| ":service_pkg", |
| ":webrunner_pkg", |
| ] |
| } |
| |
| # Specifies the build steps that must be performed before the creation of |
| # a CIPD archive. |
| group("archive_sources") { |
| deps = [ |
| ":build_id", |
| ":license", |
| ":restaged_packages", |
| ] |
| } |