blob: ddec0ae72479bd946e61973b78c812b559d21da0 [file] [log] [blame]
# Copyright 2019 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/host.gni")
import("//build/packages/prebuilt_test_manifest.gni")
import("//src/chromium/build_args.gni")
import("//src/chromium/generate_pkg_and_config.gni")
import("//src/lib/icu/tzdata/icu_tzdata_config_data.gni")
# Helper template that generates prebuilt Chromium packages.
#
# Parameters:
# archive_path_suffix: For a given package target, the archive_path_suffix
# is appended to the innermost folder of the base paths
# passed into the generate_pkg_and_config template.
template("generate_chromium_targets") {
assert(defined(invoker.archive_path_suffix))
prebuilt_archive_base_path = "//prebuilt/third_party"
debug_archive_base_path = "//prebuilt/build_ids/${target_cpu}"
build_output_gen_base_path = "/gen/fuchsia"
# This target is provided for use by the //src:src target. Dependencies on
# Chromium-supplied packages should refer explicitly to the desired package.
group(target_name) {
public_deps = [
":web_engine",
":web_runner",
]
}
group("web_engine") {
deps = [
":tzdata_for_web_engine",
":web_engine_config",
":web_engine_pkg",
]
}
# TODO(fxbug.dev/70573): Remove when use_chromium_canary is deprecated.
if (use_chromium_canary) {
package_flavor_selections += [
{
name = "web_engine_pkg"
flavor = "canary"
},
{
name = "web_engine_shell_pkg"
flavor = "canary"
},
{
name = "web_runner_pkg"
flavor = "canary"
},
]
}
if (chromium_build_dir != "") {
package_flavor_selections += [
{
name = "web_engine_pkg"
flavor = "custom"
},
{
name = "web_engine_shell_pkg"
flavor = "custom"
},
{
name = "web_runner_pkg"
flavor = "custom"
},
]
}
generate_pkg_and_config("web_engine") {
# TODO(crbug.com/1148608): Move these two to `/web_engine`.
prebuilt_archive_base_path =
"${prebuilt_archive_base_path}/chromium${invoker.archive_path_suffix}"
debug_archive_base_path =
"${debug_archive_base_path}/chromium${invoker.archive_path_suffix}"
custom_package_path =
"${build_output_gen_base_path}/engine/web_engine/web_engine.far"
selections = package_flavor_selections
# Config data arguments.
for_pkg = "sysmgr"
sources = [ rebase_path("config/web_context_provider.config") ]
}
icu_tzdata_config_data("tzdata_for_web_engine") {
for_pkg = "web_engine"
}
group("web_engine_shell") {
deps = [ ":web_engine_shell_pkg" ]
testonly = true
}
generate_flavors("web_engine_shell") {
# TODO(crbug.com/1148608): Make the other two targets follow this pattern and
# potentially make these the default values in generate_flavors.gni.
prebuilt_archive_base_path = "${prebuilt_archive_base_path}/${target_name}${invoker.archive_path_suffix}"
debug_archive_base_path = "${debug_archive_base_path}/${target_name}${invoker.archive_path_suffix}"
custom_package_path =
"${build_output_gen_base_path}/engine/${target_name}/${target_name}.far"
selections = package_flavor_selections
testonly = true
}
group("web_runner") {
deps = [
":web_runner_config",
":web_runner_pkg",
]
}
generate_pkg_and_config("web_runner") {
# TODO(crbug.com/1148608): Move these two to `/web_runner`.
prebuilt_archive_base_path =
"${prebuilt_archive_base_path}/chromium${invoker.archive_path_suffix}"
debug_archive_base_path =
"${debug_archive_base_path}/chromium${invoker.archive_path_suffix}"
custom_package_path =
"${build_output_gen_base_path}/runners/web_runner/web_runner.far"
selections = package_flavor_selections
# Config data arguments.
for_pkg = "appmgr"
sources = [ rebase_path("config/http_scheme_map.config") ]
outputs = [ "scheme_map/http.config" ]
}
# TODO(fxbug.dev/71642): Migrate the uses of this variable below to
# generate_flavors.gni. A simple function with a Boolean could be sufficient.
if (use_chromium_canary) {
canary_suffix = "_latest"
}
if (is_host) {
copy("chromedriver") {
outputs = [ "${host_tools_dir}/chromedriver" ]
if (use_chromium_canary) {
sources = [ "${prebuilt_archive_base_path}/chromedriver${invoker.archive_path_suffix}${canary_suffix}/linux-x64/chromedriver" ]
} else {
sources = [ "${prebuilt_archive_base_path}/chromedriver${invoker.archive_path_suffix}/linux-x64/chromedriver" ]
}
}
} else {
# Prebuilt FAR tests
test_env = [ nuc_env ]
group("chromium_tests_group") {
testonly = true
deps = [
":chromium_tests",
# The targets below have exactly the same contents, so will not be taking
# extra storage in configurations that use them both.
":tzdata_for_base_unittests",
":tzdata_for_chromium_tests_base_unittests",
":tzdata_for_media_unittests",
]
}
# The specific tests binaries are specified by the "tests" target in
# https://source.chromium.org/chromium/chromium/src/+/master:fuchsia/cipd/BUILD.gn.
prebuilt_test_manifest("chromium_tests") {
if (use_chromium_canary) {
archive_dir = "${prebuilt_archive_base_path}/chromium_tests${invoker.archive_path_suffix}${canary_suffix}/arch/x64"
} else {
archive_dir = "${prebuilt_archive_base_path}/chromium_tests${invoker.archive_path_suffix}/arch/x64"
}
environments = test_env
log_settings = {
max_severity = "ERROR"
}
}
icu_tzdata_config_data("tzdata_for_chromium_tests_base_unittests") {
for_pkg = "chromium_tests_base_unittests"
testonly = true
}
icu_tzdata_config_data("tzdata_for_base_unittests") {
for_pkg = "base_unittests"
testonly = true
}
icu_tzdata_config_data("tzdata_for_media_unittests") {
for_pkg = "media_unittests"
testonly = true
}
group("tests") {
testonly = true
deps = [
":chromium_tests_group",
":web_engine",
":web_runner",
"web_runner_tests:tests",
"//src/fonts:downstream_test_deps",
]
}
}
}