blob: e544f7d7eba652e44d7f7988567300da53dc675e [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("//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 = [
":fidl",
"//base",
"//url",
]
}
fuchsia_package("service_pkg") {
binary = ":service_exe"
package_name_override = "chromium"
sandbox_policy = "service/sandbox_policy"
}
executable("service_exe") {
deps = [
":fidl",
":service_lib",
"//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 = [
":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 = [
":fidl",
":service_lib",
"//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 = [
":fidl",
":service_lib",
"//base/test:run_all_unittests",
"//base/test:test_support",
"//testing/gmock",
"//testing/gtest",
]
}
fidl_library("fidl") {
library_name = "web"
namespace = "chromium"
sources = [
"fidl/context.fidl",
"fidl/context_provider.fidl",
"fidl/frame.fidl",
"fidl/navigation_controller.fidl",
"fidl/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",
]
}