blob: b3125458d8fbce958b172b74ed4f3a62b0146ab3 [file] [log] [blame]
apply plugin: 'java'
apply plugin: 'kotlin'
apply plugin: 'jacoco-tools-base'
apply plugin: 'clone-artifacts'
apply plugin: 'antlr'
apply plugin: 'com.google.protobuf'
protobuf {
protoc {
artifact = 'com.google.protobuf:protoc:3.0.0'
}
}
configurations {
provided
includeInJar
}
// Incremental update test support
File classesDir = new File(project.buildDir, "classes/incremental-test")
File baseClasses = new File(classesDir, "base")
File baseInstrumentedClasses = new File(classesDir, "baseInstrumented")
sourceSets {
main {
java.srcDirs += 'src/fromGradle/java'
resources.srcDirs = ['src/main/resources', 'src/fromGradle/resources']
compileClasspath += configurations.provided
}
test {
compileClasspath += files(baseClasses)
runtimeClasspath += files(baseInstrumentedClasses)
}
}
dependencies {
compileOnly libs.auto_value
compile project(':base:builder')
compile project(':base:lint')
compile project(':base:uast')
compile project(':base:gradle-api')
compile project(':dataBinding:compilerCommon')
compile libs.kotlin_stdlib
compile libs.transform_api_deprecated
compile libs.asm
compile libs.asm_analysis
compile libs.asm_commons
compile libs.asm_util
compile libs.jacoco_core, {
exclude group: 'org.ow2.asm', module: 'asm-debug-all'
}
compile libs.jacoco_report, {
exclude group: 'org.ow2.asm', module: 'asm-debug-all'
}
compile libs.jopt
compile libs.kotlin_stdlib
compile libs.proguard
compile libs.protobuf
testCompile project(':base:instant-run:instant-run-annotations')
testCompile project(':base:instant-run:instant-run-runtime')
// Add gradleApi to classpath for compilation, but use provided configuration so that groovy is
// not exposed as a runtime dependency.
provided gradleApi()
// Package the instant-run-server.jar, nothing else.
includeInJar project(path: ':base:instant-run:instant-run-server', configuration: 'archives')
antlr libs.antlr3
testCompile gradleApi()
testCompile libs.junit
testCompile libs.truth
testCompile libs.mockito_core
testCompile libs.guava
testCompile libs.equalsverifier
testCompile project(':base:project-test-lib')
testCompile project(':base:testutils')
testCompile libs.jsoup
}
jar {
into('instant-run') {
from configurations.includeInJar
}
}
group = 'com.android.tools.build'
archivesBaseName = 'gradle-core'
version = rootProject.ext.buildVersion
project.ext.pomName = 'Core Library for Android Gradle Plug-in'
project.ext.pomDesc = 'Core library to build Android Gradle plugin.'
apply from: "$rootDir/buildSrc/base/publish.gradle"
apply from: "$rootDir/buildSrc/base/bintray.gradle"
test {
environment("CUSTOM_REPO",
rootProject.file("../out/repo").toString()
+ File.pathSeparator
+ rootProject.file("../prebuilts/tools/common/m2/repository/").toString())
testLogging {
events "failed"
}
maxParallelForks = Runtime.runtime.availableProcessors() / 2
exclude "**/GradleCoreBazelSuite*"
}
javadoc {
exclude "**/internal/**"
options.docTitle "Gradle Plugin for Android"
options.header ""
options.footer "Copyright (C) 2012 The Android Open Source Project"
}
task javadocJar(type: Jar, dependsOn:javadoc) {
classifier 'javadoc'
from javadoc.destinationDir
}
tasks.withType(Javadoc) {
classpath += configurations.provided
}
// Only package JavaDoc if using --init-script=buildSrc/base/release.gradle
if (project.hasProperty("release")) {
artifacts {
archives javadocJar
}
}
// Package instant run instrumentation inside of gradle-core.
configurations {
subsumedProvided
sourcesSubsumedProvided
}
dependencies {
subsumedProvided(project(':base:instant-run-instrumentation')) {
transitive = false
}
sourcesSubsumedProvided(project(path:':base:instant-run-instrumentation', configuration:'sourcesOnly')) {
transitive = false
}
}
sourceSets.main.compileClasspath += configurations.subsumedProvided
sourceSets.test.compileClasspath += configurations.subsumedProvided
sourceSets.test.runtimeClasspath += configurations.subsumedProvided
tasks.compileJava.dependsOn(configurations.subsumedProvided)
tasks.sourcesJar.dependsOn(configurations.sourcesSubsumedProvided)
tasks.jar {
from({ zipTree(configurations.subsumedProvided.singleFile)})
}
tasks.sourcesJar {
from({zipTree(configurations.sourcesSubsumedProvided.singleFile)})
}
javadoc {
classpath += configurations.subsumedProvided
}
// End Package instant run instrumentation inside of gradle-core.
// Incremental update test support
javadoc {
classpath += configurations.provided
}
// setup annotation processor output directory
File generatedSources = new File(project.buildDir, 'generated/generated')
tasks.compileJava {
doFirst {
generatedSources.mkdirs()
}
options.compilerArgs += ['-s', generatedSources]
outputs.dir(generatedSources)
}