15f9996aaSopenharmony_ci# Copyright 2014 The Chromium Authors. All rights reserved.
25f9996aaSopenharmony_ci# Use of this source code is governed by a BSD-style license that can be
35f9996aaSopenharmony_ci# found in the LICENSE file.
45f9996aaSopenharmony_ci
55f9996aaSopenharmony_ci# Creates a zip archive of the inputs.
65f9996aaSopenharmony_ci#
75f9996aaSopenharmony_ci# inputs (required)
85f9996aaSopenharmony_ci#     List of input files relative to the current directory.
95f9996aaSopenharmony_ci#
105f9996aaSopenharmony_ci# output (required)
115f9996aaSopenharmony_ci#     File name to write.
125f9996aaSopenharmony_ci#
135f9996aaSopenharmony_ci# base_dir (optional)
145f9996aaSopenharmony_ci#     If provided, the archive paths will be relative to this directory.
155f9996aaSopenharmony_ci#
165f9996aaSopenharmony_ci# deps, public_deps, data_deps, testonly, visibility (optional)
175f9996aaSopenharmony_ci#     Normal meaning.
185f9996aaSopenharmony_citemplate("zip") {
195f9996aaSopenharmony_ci  action(target_name) {
205f9996aaSopenharmony_ci    script = "//build/zip.py"
215f9996aaSopenharmony_ci    depfile = "$target_gen_dir/$target_name.d"
225f9996aaSopenharmony_ci    inputs = invoker.inputs
235f9996aaSopenharmony_ci    outputs = [ invoker.output ]
245f9996aaSopenharmony_ci
255f9996aaSopenharmony_ci    assert(defined(invoker.inputs))
265f9996aaSopenharmony_ci    rebase_inputs = rebase_path(invoker.inputs, root_build_dir)
275f9996aaSopenharmony_ci
285f9996aaSopenharmony_ci    assert(defined(invoker.output))
295f9996aaSopenharmony_ci    rebase_output = rebase_path(invoker.output, root_build_dir)
305f9996aaSopenharmony_ci
315f9996aaSopenharmony_ci    args = [
325f9996aaSopenharmony_ci      "--depfile",
335f9996aaSopenharmony_ci      rebase_path(depfile, root_build_dir),
345f9996aaSopenharmony_ci      "--inputs=$rebase_inputs",
355f9996aaSopenharmony_ci      "--output=$rebase_output",
365f9996aaSopenharmony_ci    ]
375f9996aaSopenharmony_ci    if (defined(invoker.base_dir)) {
385f9996aaSopenharmony_ci      args += [
395f9996aaSopenharmony_ci        "--base-dir",
405f9996aaSopenharmony_ci        rebase_path(invoker.base_dir, root_build_dir),
415f9996aaSopenharmony_ci      ]
425f9996aaSopenharmony_ci    }
435f9996aaSopenharmony_ci
445f9996aaSopenharmony_ci    forward_variables_from(invoker,
455f9996aaSopenharmony_ci                           [
465f9996aaSopenharmony_ci                             "testonly",
475f9996aaSopenharmony_ci                             "deps",
485f9996aaSopenharmony_ci                             "public_deps",
495f9996aaSopenharmony_ci                             "data_deps",
505f9996aaSopenharmony_ci                             "visibility",
515f9996aaSopenharmony_ci                           ])
525f9996aaSopenharmony_ci  }
535f9996aaSopenharmony_ci}
54