chromium/tools/binary_size/sizes.gni

# Copyright 2019 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/util/generate_wrapper.gni")
if (is_mac) {
  import("//build/config/mac/mac_sdk.gni")
}

template("sizes_test") {
  generate_wrapper(target_name) {
    forward_variables_from(invoker, [ "data" ])
    testonly = true
    executable = "//tools/binary_size/sizes.py"
    wrapper_script = "$root_out_dir/bin/run_${target_name}"

    data_deps = [ "//tools/binary_size:sizes_py" ]
    if (defined(invoker.data_deps)) {
      data_deps += invoker.data_deps
    }

    executable_args = [
      "--output-directory",
      "@WrappedPath(.)",
    ]
    if (defined(invoker.executable_args)) {
      executable_args += invoker.executable_args
    }
    if (is_mac) {
      executable_args += [
        "--size-path",
        mac_bin_path + "size",
      ]

      if (!defined(data)) {
        data = []
      }

      # 'size' is a symlink to 'llvm-size', so throw both in there, but don't
      # add the entire bin path since it's large.
      data += [
        mac_bin_path + "llvm-size",
        mac_bin_path + "size",
        mac_bin_path + "size-classic",
      ]
    }
  }
}