| def r8RootDir = System.properties['r8.root.dir'] |
| |
| allprojects { |
| buildscript { |
| repositories { |
| maven { url r8RootDir+ '/third_party/gradle-plugin' } |
| // We don't use 'google()' in order to support projects using gradle |
| // lower to 4.1 version. |
| maven { url 'https://maven.google.com' } |
| jcenter() |
| } |
| dependencies { |
| classpath files(r8RootDir + '/build/libs/r8.jar') |
| classpath 'com.android.tools.build:gradle:3.2.0-dev' |
| } |
| } |
| repositories { |
| maven { url r8RootDir+ '/third_party/gradle-plugin' } |
| maven { url 'https://maven.google.com' } |
| jcenter() |
| mavenCentral() |
| } |
| } |
| |
| // |
| // Dump detailed timings per subtask |
| // |
| import java.util.concurrent.TimeUnit; |
| class TimingsListener implements TaskExecutionListener, BuildListener { |
| private long startTimeInNs; |
| private timings = [] |
| |
| @Override |
| void beforeExecute(Task task) { |
| startTimeInNs = System.nanoTime(); |
| } |
| |
| @Override |
| void afterExecute(Task task, TaskState taskState) { |
| def ms = TimeUnit.MILLISECONDS.convert( |
| System.nanoTime() - startTimeInNs, TimeUnit.NANOSECONDS); |
| timings.add([task.path,ms]) |
| } |
| |
| @Override |
| void buildStarted(Gradle gradle) { |
| } |
| |
| @Override |
| void buildFinished(BuildResult result) { |
| def total=0 |
| for (timing in timings) { |
| total += timing[1] |
| } |
| |
| for (timing in timings) { |
| printf "BENCH,%s,%s\n", timing |
| } |
| |
| printf "BENCH,totalGradleTasks,%s\n", total |
| |
| } |
| |
| @Override |
| void projectsEvaluated(Gradle gradle) {} |
| |
| @Override |
| void projectsLoaded(Gradle gradle) {} |
| |
| @Override |
| void settingsEvaluated(Settings settings) {} |
| } |
| |
| gradle.addListener new TimingsListener() |