# Copyright 2018 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/config/python.gni")

# Used by Android's binary size trybot's "gn analyze" step in order to trigger
# builds when changes are made to these scripts.
python_library("binary_size_trybot_py") {
  pydeps_file = "supersize.pydeps"
  data = [
    "diagnose_bloat.py",
    "supersize.json",
    "trybot_commit_size_checker.py",
    "//build/android/resource_sizes.py",
    "//infra/config/generated/builders/try/android-binary-size/gn-args.json",
  ]
}

python_library("sizes_py") {
  testonly = true
  pydeps_file = "sizes.pydeps"
  data_deps = [
    "//build/util:test_results",
    "//third_party/catapult/tracing:convert_chart_json",
  ]
}

if (is_linux) {
  group("caspian_all") {
    testonly = true
    deps = [
      "//tools/binary_size/libsupersize/viewer/caspian:caspian_cli",
      "//tools/binary_size/libsupersize/viewer/caspian:caspian_unittests",
    ]
  }
}

# is_wasm is defined in BUILDCONFIG.gn only when wasmbuild.patch is applied.
if (defined(is_wasm)) {
  group("caspian_web") {
    deps = [ "//tools/binary_size/libsupersize/viewer/caspian:caspian_web(//build/toolchain/wasm:wasm)" ]
  }
}
