xref: /aosp_15_r20/external/angle/build/fuchsia/cipd/BUILD.gn (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker# Copyright 2019 The Chromium Authors
2*8975f5c5SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*8975f5c5SAndroid Build Coastguard Worker# found in the LICENSE file.
4*8975f5c5SAndroid Build Coastguard Worker
5*8975f5c5SAndroid Build Coastguard Worker# Build targets for constructing CIPD release archives.
6*8975f5c5SAndroid Build Coastguard Worker
7*8975f5c5SAndroid Build Coastguard Workerassert(is_fuchsia)
8*8975f5c5SAndroid Build Coastguard Worker
9*8975f5c5SAndroid Build Coastguard Workerimport("//build/cipd/cipd.gni")
10*8975f5c5SAndroid Build Coastguard Workerimport("//build/config/chrome_build.gni")
11*8975f5c5SAndroid Build Coastguard Workerimport("//build/config/compiler/compiler.gni")
12*8975f5c5SAndroid Build Coastguard Workerimport("//build/util/process_version.gni")
13*8975f5c5SAndroid Build Coastguard Workerimport("//third_party/fuchsia-gn-sdk/src/build_id_dir.gni")
14*8975f5c5SAndroid Build Coastguard Workerimport("//third_party/fuchsia-gn-sdk/src/cipd.gni")
15*8975f5c5SAndroid Build Coastguard Worker
16*8975f5c5SAndroid Build Coastguard Workervisibility = [ ":*" ]
17*8975f5c5SAndroid Build Coastguard Worker
18*8975f5c5SAndroid Build Coastguard Worker# Allows a builder to explicitly declare the CIPD path. The base path is what
19*8975f5c5SAndroid Build Coastguard Worker# comes after `.../p/` in the CIPD URL.
20*8975f5c5SAndroid Build Coastguard Workerdeclare_args() {
21*8975f5c5SAndroid Build Coastguard Worker  fuchsia_cipd_package_base_path = ""
22*8975f5c5SAndroid Build Coastguard Worker}
23*8975f5c5SAndroid Build Coastguard Worker
24*8975f5c5SAndroid Build Coastguard Worker# TODO(zijiehe): Eliminate the use of 'package_base_path' during the
25*8975f5c5SAndroid Build Coastguard Worker# refactoring.
26*8975f5c5SAndroid Build Coastguard Workerif (fuchsia_cipd_package_base_path == "") {
27*8975f5c5SAndroid Build Coastguard Worker  if (is_chrome_branded) {
28*8975f5c5SAndroid Build Coastguard Worker    package_base_path = "chrome_internal/fuchsia"
29*8975f5c5SAndroid Build Coastguard Worker  } else {
30*8975f5c5SAndroid Build Coastguard Worker    package_base_path = "chromium/fuchsia"
31*8975f5c5SAndroid Build Coastguard Worker  }
32*8975f5c5SAndroid Build Coastguard Worker} else {
33*8975f5c5SAndroid Build Coastguard Worker  package_base_path = fuchsia_cipd_package_base_path
34*8975f5c5SAndroid Build Coastguard Worker}
35*8975f5c5SAndroid Build Coastguard Worker
36*8975f5c5SAndroid Build Coastguard Worker# Archives related specifically to `fuchsia.web`
37*8975f5c5SAndroid Build Coastguard Worker_web_engine_directory = "web_engine"
38*8975f5c5SAndroid Build Coastguard Worker
39*8975f5c5SAndroid Build Coastguard Worker# Archives of tools intended to be run on a Linux/Mac host rather than the
40*8975f5c5SAndroid Build Coastguard Worker# Fuchsia device.
41*8975f5c5SAndroid Build Coastguard Worker_host_tools_directory = "host_tools"
42*8975f5c5SAndroid Build Coastguard Worker
43*8975f5c5SAndroid Build Coastguard Worker_archive_suffix = "_archive"
44*8975f5c5SAndroid Build Coastguard Worker
45*8975f5c5SAndroid Build Coastguard Worker# Extracts the numeric Chrome version and writes it to a file in the output
46*8975f5c5SAndroid Build Coastguard Worker# directory.
47*8975f5c5SAndroid Build Coastguard Worker#
48*8975f5c5SAndroid Build Coastguard Worker# To check out the repository on the commit where the version was generated,
49*8975f5c5SAndroid Build Coastguard Worker# simply call `git checkout <version>`, and Git will check out the commit
50*8975f5c5SAndroid Build Coastguard Worker# associated with the <version> tag.
51*8975f5c5SAndroid Build Coastguard Workerprocess_version("version") {
52*8975f5c5SAndroid Build Coastguard Worker  template_file = "version.template"
53*8975f5c5SAndroid Build Coastguard Worker  sources = [ "//chrome/VERSION" ]
54*8975f5c5SAndroid Build Coastguard Worker  output = "${target_gen_dir}/VERSION"
55*8975f5c5SAndroid Build Coastguard Worker  process_only = true
56*8975f5c5SAndroid Build Coastguard Worker}
57*8975f5c5SAndroid Build Coastguard Worker
58*8975f5c5SAndroid Build Coastguard Workerif (target_cpu == "x64") {
59*8975f5c5SAndroid Build Coastguard Worker  targetarch = "amd64"
60*8975f5c5SAndroid Build Coastguard Worker} else {
61*8975f5c5SAndroid Build Coastguard Worker  targetarch = "arm64"
62*8975f5c5SAndroid Build Coastguard Worker}
63*8975f5c5SAndroid Build Coastguard Worker
64*8975f5c5SAndroid Build Coastguard Worker# Prepares a CIPD archive, produces a corresponding LICENSE file,
65*8975f5c5SAndroid Build Coastguard Worker# LICENSE.spdx.json file and generates a manifest file.
66*8975f5c5SAndroid Build Coastguard Worker#
67*8975f5c5SAndroid Build Coastguard Worker# Parameters:
68*8975f5c5SAndroid Build Coastguard Worker#   package_subdirectory: Specify the subdirectory relative to
69*8975f5c5SAndroid Build Coastguard Worker#                         |package_base_path| in which the package is put.
70*8975f5c5SAndroid Build Coastguard Worker#   description: Sets the "description" field in CIPD package definition.
71*8975f5c5SAndroid Build Coastguard Worker#
72*8975f5c5SAndroid Build Coastguard Worker# Optional parameters used directly by fuchsia_cipd_package template:
73*8975f5c5SAndroid Build Coastguard Worker#   "install_mode",
74*8975f5c5SAndroid Build Coastguard Worker#   "sources",
75*8975f5c5SAndroid Build Coastguard Worker#   "data",
76*8975f5c5SAndroid Build Coastguard Worker#   "data_deps"
77*8975f5c5SAndroid Build Coastguard Worker#   "deps",
78*8975f5c5SAndroid Build Coastguard Worker#   "testonly",
79*8975f5c5SAndroid Build Coastguard Worker
80*8975f5c5SAndroid Build Coastguard Workertemplate("cipd_archive") {
81*8975f5c5SAndroid Build Coastguard Worker  forward_variables_from(invoker,
82*8975f5c5SAndroid Build Coastguard Worker                         [
83*8975f5c5SAndroid Build Coastguard Worker                           "package_subdirectory",
84*8975f5c5SAndroid Build Coastguard Worker                           "description",
85*8975f5c5SAndroid Build Coastguard Worker                           "install_mode",
86*8975f5c5SAndroid Build Coastguard Worker                           "sources",
87*8975f5c5SAndroid Build Coastguard Worker                           "data",
88*8975f5c5SAndroid Build Coastguard Worker                           "data_deps",
89*8975f5c5SAndroid Build Coastguard Worker                           "deps",
90*8975f5c5SAndroid Build Coastguard Worker                           "testonly",
91*8975f5c5SAndroid Build Coastguard Worker                         ])
92*8975f5c5SAndroid Build Coastguard Worker
93*8975f5c5SAndroid Build Coastguard Worker  _license_path = "${target_gen_dir}/${target_name}/LICENSE"
94*8975f5c5SAndroid Build Coastguard Worker  _invoker_dir = get_label_info(":${invoker.target_name}", "dir")
95*8975f5c5SAndroid Build Coastguard Worker  _license_target = "${_invoker_dir}:${invoker.target_name}${_archive_suffix}"
96*8975f5c5SAndroid Build Coastguard Worker
97*8975f5c5SAndroid Build Coastguard Worker  # GN is used by the script and is thus an input.
98*8975f5c5SAndroid Build Coastguard Worker  if (host_os == "mac") {
99*8975f5c5SAndroid Build Coastguard Worker    _gn_path = "//buildtools/mac/gn"
100*8975f5c5SAndroid Build Coastguard Worker  } else if (host_os == "linux") {
101*8975f5c5SAndroid Build Coastguard Worker    _gn_path = "//buildtools/linux64/gn"
102*8975f5c5SAndroid Build Coastguard Worker  }
103*8975f5c5SAndroid Build Coastguard Worker
104*8975f5c5SAndroid Build Coastguard Worker  # Produces a consolidated license file.
105*8975f5c5SAndroid Build Coastguard Worker  action("${target_name}_license") {
106*8975f5c5SAndroid Build Coastguard Worker    script = "//tools/licenses/licenses.py"
107*8975f5c5SAndroid Build Coastguard Worker    inputs = [ "$_gn_path" ]
108*8975f5c5SAndroid Build Coastguard Worker    outputs = [ _license_path ]
109*8975f5c5SAndroid Build Coastguard Worker    args = [
110*8975f5c5SAndroid Build Coastguard Worker      "license_file",
111*8975f5c5SAndroid Build Coastguard Worker      rebase_path(_license_path, root_build_dir),
112*8975f5c5SAndroid Build Coastguard Worker      "--gn-target",
113*8975f5c5SAndroid Build Coastguard Worker      _license_target,
114*8975f5c5SAndroid Build Coastguard Worker      "--gn-out-dir",
115*8975f5c5SAndroid Build Coastguard Worker      ".",
116*8975f5c5SAndroid Build Coastguard Worker    ]
117*8975f5c5SAndroid Build Coastguard Worker  }
118*8975f5c5SAndroid Build Coastguard Worker
119*8975f5c5SAndroid Build Coastguard Worker  # Produces a consolidated license file in spdx format.
120*8975f5c5SAndroid Build Coastguard Worker  action("${target_name}_license_spdx") {
121*8975f5c5SAndroid Build Coastguard Worker    _license_path_spdx = "${_license_path}.spdx.json"
122*8975f5c5SAndroid Build Coastguard Worker
123*8975f5c5SAndroid Build Coastguard Worker    script = "//tools/licenses/licenses.py"
124*8975f5c5SAndroid Build Coastguard Worker    inputs = [ "$_gn_path" ]
125*8975f5c5SAndroid Build Coastguard Worker    outputs = [ _license_path_spdx ]
126*8975f5c5SAndroid Build Coastguard Worker    args = [
127*8975f5c5SAndroid Build Coastguard Worker      "license_file",
128*8975f5c5SAndroid Build Coastguard Worker      rebase_path(_license_path_spdx, root_build_dir),
129*8975f5c5SAndroid Build Coastguard Worker      "--gn-target",
130*8975f5c5SAndroid Build Coastguard Worker      _license_target,
131*8975f5c5SAndroid Build Coastguard Worker      "--gn-out-dir",
132*8975f5c5SAndroid Build Coastguard Worker      ".",
133*8975f5c5SAndroid Build Coastguard Worker      "--format",
134*8975f5c5SAndroid Build Coastguard Worker      "spdx",
135*8975f5c5SAndroid Build Coastguard Worker      "--spdx-doc-name",
136*8975f5c5SAndroid Build Coastguard Worker      "${invoker.target_name}",
137*8975f5c5SAndroid Build Coastguard Worker    ]
138*8975f5c5SAndroid Build Coastguard Worker  }
139*8975f5c5SAndroid Build Coastguard Worker
140*8975f5c5SAndroid Build Coastguard Worker  if (!defined(deps)) {
141*8975f5c5SAndroid Build Coastguard Worker    deps = []
142*8975f5c5SAndroid Build Coastguard Worker  }
143*8975f5c5SAndroid Build Coastguard Worker  deps += [
144*8975f5c5SAndroid Build Coastguard Worker    ":${target_name}_license",
145*8975f5c5SAndroid Build Coastguard Worker    ":${target_name}_license_spdx",
146*8975f5c5SAndroid Build Coastguard Worker    ":version",
147*8975f5c5SAndroid Build Coastguard Worker  ]
148*8975f5c5SAndroid Build Coastguard Worker
149*8975f5c5SAndroid Build Coastguard Worker  if (!defined(sources)) {
150*8975f5c5SAndroid Build Coastguard Worker    sources = []
151*8975f5c5SAndroid Build Coastguard Worker  }
152*8975f5c5SAndroid Build Coastguard Worker  sources += get_target_outputs(":${target_name}_license") +
153*8975f5c5SAndroid Build Coastguard Worker             get_target_outputs(":${target_name}_license_spdx") +
154*8975f5c5SAndroid Build Coastguard Worker             [ "${target_gen_dir}/VERSION" ]
155*8975f5c5SAndroid Build Coastguard Worker
156*8975f5c5SAndroid Build Coastguard Worker  fuchsia_cipd_package("${target_name}${_archive_suffix}") {
157*8975f5c5SAndroid Build Coastguard Worker    package = "${package_base_path}/${package_subdirectory}/${targetarch}/${invoker.target_name}"
158*8975f5c5SAndroid Build Coastguard Worker    package_root = "${target_gen_dir}/${invoker.target_name}"
159*8975f5c5SAndroid Build Coastguard Worker    package_definition_name = "${invoker.target_name}.yaml"
160*8975f5c5SAndroid Build Coastguard Worker
161*8975f5c5SAndroid Build Coastguard Worker    # Always use absolute path.
162*8975f5c5SAndroid Build Coastguard Worker    use_absolute_root_path = true
163*8975f5c5SAndroid Build Coastguard Worker  }
164*8975f5c5SAndroid Build Coastguard Worker}
165*8975f5c5SAndroid Build Coastguard Worker
166*8975f5c5SAndroid Build Coastguard Worker# Prepares a CIPD test archive, which is a regular CIPD archive that generates
167*8975f5c5SAndroid Build Coastguard Worker# test manifests for a given list of test_sets.
168*8975f5c5SAndroid Build Coastguard Worker#
169*8975f5c5SAndroid Build Coastguard Worker# Parameters:
170*8975f5c5SAndroid Build Coastguard Worker#   test_sets: A list of scopes for which test manifests will be created. Each
171*8975f5c5SAndroid Build Coastguard Worker#              set contains:
172*8975f5c5SAndroid Build Coastguard Worker#     manifest_path: The path to the generated manifest JSON file.
173*8975f5c5SAndroid Build Coastguard Worker#     far_sources: An optional list of CFv2 test component .far files.
174*8975f5c5SAndroid Build Coastguard Worker#
175*8975f5c5SAndroid Build Coastguard Worker# Required parameters used by the cipd_archive template:
176*8975f5c5SAndroid Build Coastguard Worker#   "package_subdirectory",
177*8975f5c5SAndroid Build Coastguard Worker#
178*8975f5c5SAndroid Build Coastguard Worker# Optional parameters used by the cipd_archive template:
179*8975f5c5SAndroid Build Coastguard Worker#   "description"
180*8975f5c5SAndroid Build Coastguard Worker#   "install_mode",
181*8975f5c5SAndroid Build Coastguard Worker#   "data",
182*8975f5c5SAndroid Build Coastguard Worker#   "data_deps"
183*8975f5c5SAndroid Build Coastguard Worker#   "deps",
184*8975f5c5SAndroid Build Coastguard Worker#   "testonly",
185*8975f5c5SAndroid Build Coastguard Worker
186*8975f5c5SAndroid Build Coastguard Workertemplate("cipd_test_archive") {
187*8975f5c5SAndroid Build Coastguard Worker  forward_variables_from(invoker,
188*8975f5c5SAndroid Build Coastguard Worker                         [
189*8975f5c5SAndroid Build Coastguard Worker                           "package_subdirectory",
190*8975f5c5SAndroid Build Coastguard Worker                           "description",
191*8975f5c5SAndroid Build Coastguard Worker                           "install_mode",
192*8975f5c5SAndroid Build Coastguard Worker                           "data",
193*8975f5c5SAndroid Build Coastguard Worker                           "data_deps",
194*8975f5c5SAndroid Build Coastguard Worker                           "deps",
195*8975f5c5SAndroid Build Coastguard Worker                           "testonly",
196*8975f5c5SAndroid Build Coastguard Worker                           "test_sets",
197*8975f5c5SAndroid Build Coastguard Worker                         ])
198*8975f5c5SAndroid Build Coastguard Worker
199*8975f5c5SAndroid Build Coastguard Worker  assert(defined(test_sets) && defined(testonly) && testonly == true)
200*8975f5c5SAndroid Build Coastguard Worker
201*8975f5c5SAndroid Build Coastguard Worker  cipd_archive(target_name) {
202*8975f5c5SAndroid Build Coastguard Worker    # Build JSON manifests for each suite of tests and include them in the
203*8975f5c5SAndroid Build Coastguard Worker    # archive.
204*8975f5c5SAndroid Build Coastguard Worker    sources = []
205*8975f5c5SAndroid Build Coastguard Worker    foreach(test_set, test_sets) {
206*8975f5c5SAndroid Build Coastguard Worker      assert(defined(test_set.far_sources))
207*8975f5c5SAndroid Build Coastguard Worker      sources += [ test_set.manifest_path ]
208*8975f5c5SAndroid Build Coastguard Worker      _manifest_contents = []
209*8975f5c5SAndroid Build Coastguard Worker      if (defined(test_set.far_sources)) {
210*8975f5c5SAndroid Build Coastguard Worker        foreach(source, test_set.far_sources) {
211*8975f5c5SAndroid Build Coastguard Worker          package_name = get_path_info(source, "name")
212*8975f5c5SAndroid Build Coastguard Worker
213*8975f5c5SAndroid Build Coastguard Worker          _manifest_contents += [
214*8975f5c5SAndroid Build Coastguard Worker            {
215*8975f5c5SAndroid Build Coastguard Worker              package = package_name
216*8975f5c5SAndroid Build Coastguard Worker              component_name = package_name + ".cm"
217*8975f5c5SAndroid Build Coastguard Worker            },
218*8975f5c5SAndroid Build Coastguard Worker          ]
219*8975f5c5SAndroid Build Coastguard Worker        }
220*8975f5c5SAndroid Build Coastguard Worker        sources += test_set.far_sources
221*8975f5c5SAndroid Build Coastguard Worker      }
222*8975f5c5SAndroid Build Coastguard Worker      write_file(test_set.manifest_path, _manifest_contents, "json")
223*8975f5c5SAndroid Build Coastguard Worker    }
224*8975f5c5SAndroid Build Coastguard Worker  }
225*8975f5c5SAndroid Build Coastguard Worker}
226*8975f5c5SAndroid Build Coastguard Worker
227*8975f5c5SAndroid Build Coastguard Workercipd_archive("web_engine") {
228*8975f5c5SAndroid Build Coastguard Worker  package_subdirectory = _web_engine_directory
229*8975f5c5SAndroid Build Coastguard Worker  description = "Prebuilt WebEngine binaries for Fuchsia."
230*8975f5c5SAndroid Build Coastguard Worker
231*8975f5c5SAndroid Build Coastguard Worker  deps = [ "//fuchsia_web/webengine:web_engine" ]
232*8975f5c5SAndroid Build Coastguard Worker  sources =
233*8975f5c5SAndroid Build Coastguard Worker      [ "${root_gen_dir}/fuchsia_web/webengine/web_engine/web_engine.far" ]
234*8975f5c5SAndroid Build Coastguard Worker}
235*8975f5c5SAndroid Build Coastguard Worker
236*8975f5c5SAndroid Build Coastguard Workercipd_archive("cast_runner") {
237*8975f5c5SAndroid Build Coastguard Worker  package_subdirectory = _web_engine_directory
238*8975f5c5SAndroid Build Coastguard Worker  description = "Prebuilt Cast application Runner binaries for Fuchsia."
239*8975f5c5SAndroid Build Coastguard Worker
240*8975f5c5SAndroid Build Coastguard Worker  deps = [ "//fuchsia_web/runners:cast_runner_pkg" ]
241*8975f5c5SAndroid Build Coastguard Worker  sources =
242*8975f5c5SAndroid Build Coastguard Worker      [ "${root_gen_dir}/fuchsia_web/runners/cast_runner/cast_runner.far" ]
243*8975f5c5SAndroid Build Coastguard Worker}
244*8975f5c5SAndroid Build Coastguard Worker
245*8975f5c5SAndroid Build Coastguard Workercipd_archive("web_engine_shell") {
246*8975f5c5SAndroid Build Coastguard Worker  package_subdirectory = _web_engine_directory
247*8975f5c5SAndroid Build Coastguard Worker  description = "Simple command-line embedder for WebEngine."
248*8975f5c5SAndroid Build Coastguard Worker  testonly = true
249*8975f5c5SAndroid Build Coastguard Worker
250*8975f5c5SAndroid Build Coastguard Worker  deps = [ "//fuchsia_web/shell:web_engine_shell_pkg" ]
251*8975f5c5SAndroid Build Coastguard Worker  sources = [
252*8975f5c5SAndroid Build Coastguard Worker    "${root_gen_dir}/fuchsia_web/shell/web_engine_shell/web_engine_shell.far",
253*8975f5c5SAndroid Build Coastguard Worker  ]
254*8975f5c5SAndroid Build Coastguard Worker}
255*8975f5c5SAndroid Build Coastguard Worker
256*8975f5c5SAndroid Build Coastguard Worker_stripped_chromedriver_file = "${root_out_dir}/clang_x64/stripped/chromedriver"
257*8975f5c5SAndroid Build Coastguard Worker
258*8975f5c5SAndroid Build Coastguard Workeraction("strip_chromedriver_binary") {
259*8975f5c5SAndroid Build Coastguard Worker  testonly = true
260*8975f5c5SAndroid Build Coastguard Worker
261*8975f5c5SAndroid Build Coastguard Worker  prog_name = "${root_out_dir}/clang_x64/chromedriver"
262*8975f5c5SAndroid Build Coastguard Worker
263*8975f5c5SAndroid Build Coastguard Worker  deps = [ "//chrome/test/chromedriver:chromedriver_server($host_toolchain)" ]
264*8975f5c5SAndroid Build Coastguard Worker  script = "//build/gn_run_binary.py"
265*8975f5c5SAndroid Build Coastguard Worker  sources = [
266*8975f5c5SAndroid Build Coastguard Worker    "//buildtools/third_party/eu-strip/bin/eu-strip",
267*8975f5c5SAndroid Build Coastguard Worker    prog_name,
268*8975f5c5SAndroid Build Coastguard Worker  ]
269*8975f5c5SAndroid Build Coastguard Worker  outputs = [ _stripped_chromedriver_file ]
270*8975f5c5SAndroid Build Coastguard Worker  args = [
271*8975f5c5SAndroid Build Coastguard Worker    rebase_path("//buildtools/third_party/eu-strip/bin/eu-strip",
272*8975f5c5SAndroid Build Coastguard Worker                root_build_dir),
273*8975f5c5SAndroid Build Coastguard Worker    "-o",
274*8975f5c5SAndroid Build Coastguard Worker    rebase_path(_stripped_chromedriver_file, root_build_dir),
275*8975f5c5SAndroid Build Coastguard Worker    rebase_path(prog_name, root_build_dir),
276*8975f5c5SAndroid Build Coastguard Worker  ]
277*8975f5c5SAndroid Build Coastguard Worker
278*8975f5c5SAndroid Build Coastguard Worker  visibility = []
279*8975f5c5SAndroid Build Coastguard Worker  visibility = [
280*8975f5c5SAndroid Build Coastguard Worker    ":*",
281*8975f5c5SAndroid Build Coastguard Worker    "//fuchsia_web/av_testing:*",
282*8975f5c5SAndroid Build Coastguard Worker  ]
283*8975f5c5SAndroid Build Coastguard Worker}
284*8975f5c5SAndroid Build Coastguard Worker
285*8975f5c5SAndroid Build Coastguard Workercipd_archive("chromedriver") {
286*8975f5c5SAndroid Build Coastguard Worker  package_subdirectory = "${_host_tools_directory}/\${os}"
287*8975f5c5SAndroid Build Coastguard Worker  description = "Prebuilt Chromedriver binary for Fuchsia host."
288*8975f5c5SAndroid Build Coastguard Worker  install_mode = "copy"
289*8975f5c5SAndroid Build Coastguard Worker  testonly = true
290*8975f5c5SAndroid Build Coastguard Worker
291*8975f5c5SAndroid Build Coastguard Worker  deps = [ ":strip_chromedriver_binary" ]
292*8975f5c5SAndroid Build Coastguard Worker  sources = [ _stripped_chromedriver_file ]
293*8975f5c5SAndroid Build Coastguard Worker}
294*8975f5c5SAndroid Build Coastguard Worker
295*8975f5c5SAndroid Build Coastguard Workercipd_test_archive("tests") {
296*8975f5c5SAndroid Build Coastguard Worker  package_subdirectory = _web_engine_directory
297*8975f5c5SAndroid Build Coastguard Worker  description = "Prebuilt Chromium tests for Fuchsia."
298*8975f5c5SAndroid Build Coastguard Worker  testonly = true
299*8975f5c5SAndroid Build Coastguard Worker
300*8975f5c5SAndroid Build Coastguard Worker  _common_tests = [
301*8975f5c5SAndroid Build Coastguard Worker    "${root_gen_dir}/base/base_unittests/base_unittests.far",
302*8975f5c5SAndroid Build Coastguard Worker    "${root_gen_dir}/ipc/ipc_tests/ipc_tests.far",
303*8975f5c5SAndroid Build Coastguard Worker    "${root_gen_dir}/media/media_unittests/media_unittests.far",
304*8975f5c5SAndroid Build Coastguard Worker    "${root_gen_dir}/mojo/mojo_unittests/mojo_unittests.far",
305*8975f5c5SAndroid Build Coastguard Worker    "${root_gen_dir}/skia/skia_unittests/skia_unittests.far",
306*8975f5c5SAndroid Build Coastguard Worker    "${root_gen_dir}/third_party/blink/common/blink_common_unittests/blink_common_unittests.far",
307*8975f5c5SAndroid Build Coastguard Worker  ]
308*8975f5c5SAndroid Build Coastguard Worker  deps = [
309*8975f5c5SAndroid Build Coastguard Worker    "//base:base_unittests_pkg",
310*8975f5c5SAndroid Build Coastguard Worker    "//ipc:ipc_tests_pkg",
311*8975f5c5SAndroid Build Coastguard Worker    "//media:media_unittests_pkg",
312*8975f5c5SAndroid Build Coastguard Worker    "//mojo:mojo_unittests_pkg",
313*8975f5c5SAndroid Build Coastguard Worker    "//skia:skia_unittests_pkg",
314*8975f5c5SAndroid Build Coastguard Worker    "//third_party/blink/common:blink_common_unittests_pkg",
315*8975f5c5SAndroid Build Coastguard Worker  ]
316*8975f5c5SAndroid Build Coastguard Worker
317*8975f5c5SAndroid Build Coastguard Worker  _web_engine_tests = [ "${root_gen_dir}/fuchsia_web/webengine/web_engine_integration_tests/web_engine_integration_tests.far" ]
318*8975f5c5SAndroid Build Coastguard Worker  deps += [ "//fuchsia_web/webengine:web_engine_integration_tests_pkg" ]
319*8975f5c5SAndroid Build Coastguard Worker
320*8975f5c5SAndroid Build Coastguard Worker  _cast_runner_tests = [ "${root_gen_dir}/fuchsia_web/runners/cast_runner_integration_tests/cast_runner_integration_tests.far" ]
321*8975f5c5SAndroid Build Coastguard Worker  deps += [ "//fuchsia_web/runners:cast_runner_integration_tests_pkg" ]
322*8975f5c5SAndroid Build Coastguard Worker
323*8975f5c5SAndroid Build Coastguard Worker  _all_tests = _common_tests + _web_engine_tests + _cast_runner_tests
324*8975f5c5SAndroid Build Coastguard Worker
325*8975f5c5SAndroid Build Coastguard Worker  test_sets = [
326*8975f5c5SAndroid Build Coastguard Worker    {
327*8975f5c5SAndroid Build Coastguard Worker      manifest_path = "${target_gen_dir}/test_manifest.json"
328*8975f5c5SAndroid Build Coastguard Worker      far_sources = _all_tests
329*8975f5c5SAndroid Build Coastguard Worker    },
330*8975f5c5SAndroid Build Coastguard Worker    {
331*8975f5c5SAndroid Build Coastguard Worker      manifest_path = "${target_gen_dir}/common_tests_manifest.json"
332*8975f5c5SAndroid Build Coastguard Worker      far_sources = _common_tests
333*8975f5c5SAndroid Build Coastguard Worker    },
334*8975f5c5SAndroid Build Coastguard Worker    {
335*8975f5c5SAndroid Build Coastguard Worker      manifest_path = "${target_gen_dir}/web_engine_tests_manifest.json"
336*8975f5c5SAndroid Build Coastguard Worker      far_sources = _web_engine_tests
337*8975f5c5SAndroid Build Coastguard Worker    },
338*8975f5c5SAndroid Build Coastguard Worker    {
339*8975f5c5SAndroid Build Coastguard Worker      manifest_path = "${target_gen_dir}/cast_runner_tests_manifest.json"
340*8975f5c5SAndroid Build Coastguard Worker      far_sources = _cast_runner_tests
341*8975f5c5SAndroid Build Coastguard Worker    },
342*8975f5c5SAndroid Build Coastguard Worker  ]
343*8975f5c5SAndroid Build Coastguard Worker}
344*8975f5c5SAndroid Build Coastguard Worker
345*8975f5c5SAndroid Build Coastguard Worker# Construct a consolidated directory of web_engine debugging symbols using the
346*8975f5c5SAndroid Build Coastguard Worker# GNU .build_id structure for CIPD archival.
347*8975f5c5SAndroid Build Coastguard Worker_web_engine_build_ids_target = "web_engine_debug_symbol_directory"
348*8975f5c5SAndroid Build Coastguard Worker_web_engine_debug_symbols_archive_name = "web_engine_debug_symbols"
349*8975f5c5SAndroid Build Coastguard Worker_web_engine_debug_symbols_outdir = "${target_gen_dir}/${_web_engine_debug_symbols_archive_name}/${_web_engine_build_ids_target}"
350*8975f5c5SAndroid Build Coastguard Worker
351*8975f5c5SAndroid Build Coastguard Workerbuild_id_dir(_web_engine_build_ids_target) {
352*8975f5c5SAndroid Build Coastguard Worker  testonly = true  # Some of the archives contain test packages.
353*8975f5c5SAndroid Build Coastguard Worker  output_path = _web_engine_debug_symbols_outdir
354*8975f5c5SAndroid Build Coastguard Worker  deps = [ ":web_engine_archives_with_tests" ]
355*8975f5c5SAndroid Build Coastguard Worker}
356*8975f5c5SAndroid Build Coastguard Worker
357*8975f5c5SAndroid Build Coastguard Workerfuchsia_cipd_package(_web_engine_debug_symbols_archive_name) {
358*8975f5c5SAndroid Build Coastguard Worker  testonly = true
359*8975f5c5SAndroid Build Coastguard Worker  package = "${package_base_path}/${_web_engine_directory}/${targetarch}/debug-symbols"
360*8975f5c5SAndroid Build Coastguard Worker  package_root = _web_engine_debug_symbols_outdir
361*8975f5c5SAndroid Build Coastguard Worker  package_definition_name = "${target_name}.yaml"
362*8975f5c5SAndroid Build Coastguard Worker  package_definition_dir = "${target_gen_dir}/${target_name}"
363*8975f5c5SAndroid Build Coastguard Worker  description = "Debugging symbols for prebuilt binaries from Chromium."
364*8975f5c5SAndroid Build Coastguard Worker  use_absolute_root_path = true
365*8975f5c5SAndroid Build Coastguard Worker
366*8975f5c5SAndroid Build Coastguard Worker  directories = [ "." ]
367*8975f5c5SAndroid Build Coastguard Worker  deps = [ ":${_web_engine_build_ids_target}" ]
368*8975f5c5SAndroid Build Coastguard Worker}
369*8975f5c5SAndroid Build Coastguard Worker
370*8975f5c5SAndroid Build Coastguard Worker# A group for production archives to ensure nothing is testonly.
371*8975f5c5SAndroid Build Coastguard Workergroup("web_engine_production_archives") {
372*8975f5c5SAndroid Build Coastguard Worker  deps = [
373*8975f5c5SAndroid Build Coastguard Worker    ":cast_runner${_archive_suffix}",
374*8975f5c5SAndroid Build Coastguard Worker    ":web_engine${_archive_suffix}",
375*8975f5c5SAndroid Build Coastguard Worker  ]
376*8975f5c5SAndroid Build Coastguard Worker}
377*8975f5c5SAndroid Build Coastguard Worker
378*8975f5c5SAndroid Build Coastguard Worker# Used by both the main group as well as :debug_symbols.
379*8975f5c5SAndroid Build Coastguard Workergroup("web_engine_archives_with_tests") {
380*8975f5c5SAndroid Build Coastguard Worker  testonly = true  # tests and web_engine_shell are testonly.
381*8975f5c5SAndroid Build Coastguard Worker  deps = [
382*8975f5c5SAndroid Build Coastguard Worker    ":tests${_archive_suffix}",
383*8975f5c5SAndroid Build Coastguard Worker    ":web_engine_production_archives",
384*8975f5c5SAndroid Build Coastguard Worker    ":web_engine_shell${_archive_suffix}",
385*8975f5c5SAndroid Build Coastguard Worker  ]
386*8975f5c5SAndroid Build Coastguard Worker}
387*8975f5c5SAndroid Build Coastguard Worker
388*8975f5c5SAndroid Build Coastguard Worker# TODO(zijiehe): Rename to "cipd_yaml" when possible.
389*8975f5c5SAndroid Build Coastguard Worker# This target only creates yaml files and related archives for cipd rather
390*8975f5c5SAndroid Build Coastguard Worker# than executing the cipd instance to upload them.
391*8975f5c5SAndroid Build Coastguard Worker# Currently it's named as "cipd" to match the folder name which introduces
392*8975f5c5SAndroid Build Coastguard Worker# confusions.
393*8975f5c5SAndroid Build Coastguard Workergroup("cipd") {
394*8975f5c5SAndroid Build Coastguard Worker  testonly = true  # Some archives are testonly.
395*8975f5c5SAndroid Build Coastguard Worker  deps = [
396*8975f5c5SAndroid Build Coastguard Worker    ":web_engine_archives_with_tests",
397*8975f5c5SAndroid Build Coastguard Worker
398*8975f5c5SAndroid Build Coastguard Worker    # Symbols are not uploaded for the following.
399*8975f5c5SAndroid Build Coastguard Worker    ":chromedriver${_archive_suffix}",
400*8975f5c5SAndroid Build Coastguard Worker    ":web_engine_debug_symbols",
401*8975f5c5SAndroid Build Coastguard Worker  ]
402*8975f5c5SAndroid Build Coastguard Worker  visibility = []  # Required to replace the file default.
403*8975f5c5SAndroid Build Coastguard Worker  visibility = [ "//:gn_all" ]
404*8975f5c5SAndroid Build Coastguard Worker}
405