| // Copyright (c) 2022, the R8 project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| package com.android.tools.r8.benchmarks; |
| |
| import java.nio.file.Path; |
| import java.nio.file.Paths; |
| |
| public class BenchmarkDependency { |
| |
| public static BenchmarkDependency getRuntimeJarJava8() { |
| return new BenchmarkDependency( |
| "java8rtjar", "openjdk-rt-1.8", Paths.get("third_party", "openjdk")); |
| } |
| |
| public static BenchmarkDependency getAndroidJar30() { |
| return new BenchmarkDependency( |
| "android30jar", "lib-v30", Paths.get("third_party", "android_jar")); |
| } |
| |
| // Nice name of the dependency. Must be a valid dart identifier. |
| private final String name; |
| |
| // Directory name of the dependency. |
| private final String directoryName; |
| |
| // Location in the R8 source tree. |
| // This should never be directly exposed as its actual location will differ on golem. |
| // See `getRoot` to obtain the actual dependency root. |
| private final Path location; |
| |
| public BenchmarkDependency(String name, String directoryName, Path location) { |
| this.name = name; |
| this.directoryName = directoryName; |
| this.location = location; |
| String firstChar = name.substring(0, 1); |
| if (!firstChar.equals(firstChar.toLowerCase()) || name.contains("_")) { |
| throw new BenchmarkConfigError("Benchmark name should use lowerCamelCase, found: " + name); |
| } |
| } |
| |
| public String getName() { |
| return name; |
| } |
| |
| public Path getTarball() { |
| return location.resolve(directoryName + ".tar.gz"); |
| } |
| |
| public Path getSha1() { |
| return location.resolve(directoryName + ".tar.gz.sha1"); |
| } |
| |
| public Path getRoot(BenchmarkEnvironment environment) { |
| return environment.translateDependencyPath(directoryName, location); |
| } |
| } |