blob: adb6bd2514befd6334a01dc7f98dc3af57a6769a [file] [log] [blame]
# 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("//mojo/public/tools/bindings/mojom.gni")
import("//testing/test.gni")
import("//tools/grit/repack.gni")
config("webrunner_implementation") {
defines = [ "WEBRUNNER_IMPLEMENTATION" ]
}
fuchsia_package("app_config_manager_pkg") {
binary = ":app_config_manager_exe"
package_name_override = "application_config_manager"
sandbox_policy = "app/cast/application_config_manager/sandbox_policy"
}
fuchsia_package_runner("app_config_manager_runner") {
package = ":app_config_manager_pkg"
package_name_override = "application_config_manager"
install_only = true
}
source_set("app_config_manager_common") {
sources = [
"app/cast/application_config_manager/application_config_manager.cc",
"app/cast/application_config_manager/application_config_manager.h",
]
public_deps = [
":cast_fidl",
"//base",
]
}
source_set("app_config_manager_test_support") {
testonly = true
sources = [
"app/cast/application_config_manager/test/fake_application_config_manager.cc",
"app/cast/application_config_manager/test/fake_application_config_manager.h",
]
public_deps = [
":cast_fidl",
"//base",
"//net:test_support",
]
}
executable("app_config_manager_exe") {
sources = [
"app/cast/application_config_manager/main.cc",
]
deps = [
":app_config_manager_common",
]
}
test("app_config_manager_unittest") {
sources = [
"app/cast/application_config_manager/application_config_manager_unittest.cc",
]
deps = [
":app_config_manager_common",
"//base/test:run_all_unittests",
"//base/test:test_support",
"//testing/gtest",
]
}
fuchsia_package("castrunner_pkg") {
binary = ":castrunner_exe"
package_name_override = "cast_runner"
sandbox_policy = "app/cast/sandbox_policy"
}
fuchsia_package_runner("castrunner") {
package = ":castrunner_pkg"
package_name_override = "cast_runner"
install_only = true
package_deps = [ [
":service_pkg",
"chromium",
":app_config_manager_pkg",
"application_config_manager",
] ]
}
source_set("castrunner_common") {
sources = [
"app/cast/cast_runner.cc",
"app/cast/cast_runner.h",
]
deps = [
":web_fidl",
"//base",
"//url",
]
public_deps = [
":cast_fidl",
":webrunner_common",
]
}
executable("castrunner_exe") {
sources = [
"app/cast/main.cc",
]
deps = [
":castrunner_common",
":webrunner_common",
"//base",
]
}
source_set("castrunner_test_support") {
sources = [
"app/cast/test_common.cc",
"app/cast/test_common.h",
]
public_deps = [
"//base",
"//third_party/fuchsia-sdk/sdk:sys",
]
}
test("castrunner_unittests") {
sources = [
"app/cast/cast_runner_unittest.cc",
]
deps = [
":app_config_manager_test_support",
":castrunner_common",
":castrunner_test_support",
":test_common",
":test_support",
"//base/test:run_all_unittests",
"//base/test:test_support",
"//testing/gtest",
]
}
test("castrunner_integration_tests") {
sources = [
"app/cast/cast_runner_integration_test.cc",
]
deps = [
":app_config_manager_test_support",
":castrunner_common",
":castrunner_test_support",
":test_common",
":test_support",
"//base/test:run_all_unittests",
"//base/test:test_support",
"//net:test_support",
"//testing/gtest",
]
package_deps = [ [
":service_pkg",
"chromium",
] ]
}
source_set("named_message_port_connector") {
sources = [
"common/named_message_port_connector.cc",
"common/named_message_port_connector.h",
]
data = [
"common/named_message_port_connector.js",
]
deps = [
":common",
":web_fidl",
"//base",
"//third_party/fuchsia-sdk/sdk:mem",
]
}
source_set("common") {
sources = [
"common/mem_buffer_util.cc",
"common/mem_buffer_util.h",
"common/webrunner_export.h",
]
deps = [
"//base",
"//third_party/fuchsia-sdk/sdk:mem",
]
}
fuchsia_package("webrunner_pkg") {
binary = ":webrunner_exe"
package_name_override = "web_runner"
sandbox_policy = "app/web/sandbox_policy"
}
fuchsia_package_runner("webrunner") {
package = ":webrunner_pkg"
package_name_override = "web_runner"
install_only = true
package_deps = [ [
":service_pkg",
"chromium",
] ]
}
source_set("webrunner_common") {
sources = [
"app/common/web_component.cc",
"app/common/web_component.h",
"app/common/web_content_runner.cc",
"app/common/web_content_runner.h",
]
deps = [
":web_fidl",
"//base",
"//third_party/fuchsia-sdk/sdk:ui_app",
"//third_party/fuchsia-sdk/sdk:ui_viewsv1",
"//url",
]
public_deps = [
"//third_party/fuchsia-sdk/sdk:sys",
]
}
executable("webrunner_exe") {
sources = [
"app/web/main.cc",
]
deps = [
":web_fidl",
":webrunner_common",
"//base",
]
}
source_set("test_support") {
testonly = true
sources = [
"test/fake_context.cc",
"test/fake_context.h",
"test/promise.h",
]
deps = [
"//base",
]
public_deps = [
":web_fidl",
]
}
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
}
mojom("mojom") {
sources = [
"common/on_load_script_injector.mojom",
]
public_deps = [
"//mojo/public/mojom/base",
]
}
component("service_lib") {
deps = [
":common",
":mojom",
":service_pak",
"//base",
"//components/version_info",
"//content/public/app:both",
"//content/public/browser",
"//content/public/child",
"//content/public/common",
"//content/public/renderer",
"//mojo/public/cpp/bindings",
"//services/network/public/cpp",
"//services/service_manager/sandbox",
"//skia/public/interfaces",
"//third_party/blink/public/common",
"//ui/aura",
"//ui/base/ime",
"//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/message_port_impl.cc",
"browser/message_port_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",
"renderer/on_load_script_injector.cc",
"renderer/on_load_script_injector.h",
"renderer/webrunner_content_renderer_client.cc",
"renderer/webrunner_content_renderer_client.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"
}
source_set("test_common") {
testonly = true
sources = [
"common/test/test_common.cc",
"common/test/test_common.h",
]
deps = [
":common",
":web_fidl",
"//base",
"//base/test:test_config",
"//content/test:test_support",
]
}
source_set("browsertest_common") {
testonly = true
sources = [
"common/test/webrunner_browser_test.cc",
"common/test/webrunner_browser_test.h",
"common/test/webrunner_test_launcher.cc",
]
deps = [
":service_lib",
":web_fidl",
"//content/public/browser",
"//content/test:test_support",
"//net:test_support",
"//testing/gtest",
"//ui/ozone",
]
}
test("webrunner_browsertests") {
sources = [
"browser/context_impl_browsertest.cc",
"browser/frame_impl_browsertest.cc",
"common/named_message_port_connector_browsertest.cc",
]
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
data = [
"browser/test/data",
"common/test/data",
]
data_deps = [
":common",
]
deps = [
":browsertest_common",
":common",
":named_message_port_connector",
":service_lib",
":test_common",
":test_support",
":web_fidl",
"//base/test:test_support",
"//content/public/browser",
"//net:test_support",
"//testing/gmock",
"//testing/gtest",
"//ui/ozone",
]
}
test("webrunner_unittests") {
sources = [
"service/context_provider_impl_unittest.cc",
]
deps = [
":service_lib",
":test_support",
":web_fidl",
"//base/test:run_all_unittests",
"//base/test:test_support",
"//testing/gmock",
"//testing/gtest",
]
}
test("webrunner_smoketests") {
sources = [
"app/web/webrunner_smoke_test.cc",
]
deps = [
":test_common",
"//base",
"//base/test:run_all_unittests",
"//base/test:test_support",
"//net:test_support",
"//testing/gtest",
"//third_party/fuchsia-sdk/sdk:sys",
]
package_deps = [
[
":service_pkg",
"chromium",
],
[
":webrunner_pkg",
"web_runner",
],
]
}
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:sys",
"//third_party/fuchsia-sdk/sdk:ui_gfx",
"//third_party/fuchsia-sdk/sdk:ui_viewsv1token",
]
}
fidl_library("cast_fidl") {
library_name = "cast"
namespace = "chromium"
sources = [
"fidl/cast/application_config.fidl",
]
}
# 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/application_config_manager/application_config_manager.far",
"$root_gen_dir/webrunner/cast_runner/cast_runner.far",
"$root_gen_dir/webrunner/chromium/chromium.far",
"$root_gen_dir/webrunner/net_http/http/http.far",
"$root_gen_dir/webrunner/web_runner/web_runner.far",
]
outputs = [
"$_artifact_root/{{source_file_part}}",
]
deps = [
":app_config_manager_pkg",
":castrunner_pkg",
":service_pkg",
":webrunner_pkg",
"net_http:http_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",
]
}