# Copyright 2016 The Chromium 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/config/android/rules.gni")

java_prebuilt("asm_java") {
  testonly = true
  jar_path = "lib/asm-5.0.1.jar"
}

java_prebuilt("asm_tree_java") {
  testonly = true
  jar_path = "lib/asm-tree-5.0.1.jar"
  deps = [
    ":asm_java",
  ]
}

java_prebuilt("asm_analysis_java") {
  testonly = true
  jar_path = "lib/asm-analysis-5.0.1.jar"
  deps = [
    ":asm_tree_java",
  ]
}

java_prebuilt("asm_commons_java") {
  testonly = true
  jar_path = "lib/asm-commons-5.0.1.jar"
  deps = [
    ":asm_tree_java",
  ]
}

java_prebuilt("asm_util_java") {
  testonly = true
  jar_path = "lib/asm-util-5.0.1.jar"
  deps = [
    ":asm_tree_java",
  ]
}
