Gradle plugin: add compatibility with android-gradle-plugin 0.10.+

#KT-4984 Fixed
This commit is contained in:
Natalia Ukhorskaya
2014-05-12 19:08:24 +04:00
parent 35802640cb
commit da4e62e4be
3 changed files with 57 additions and 1 deletions
@@ -73,6 +73,12 @@
<artifactId>kotlin-stdlib</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.5</version>
<scope>provided</scope>
</dependency>
</dependencies>
@@ -90,9 +96,38 @@
<resource>
<directory>${project.basedir}/src/main/resources</directory>
</resource>
<resource>
<directory>${project.build.outputDirectory}/../groovyOutput</directory>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.5</version>
<configuration>
<providerSelection>2.0</providerSelection>
<source/>
</configuration>
<executions>
<execution>
<phase>process-sources</phase>
<goals> <goal>compile</goal></goals>
<configuration>
<sources>
<fileset>
<directory>${project.basedir}/src/main/kotlin</directory>
<includes>
<include>**/*.groovy</include>
</includes>
</fileset>
</sources>
<outputDirectory>${project.build.outputDirectory}/../groovyOutput</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId>
@@ -108,6 +143,12 @@
<id>compile</id>
<phase>compile</phase>
<goals> <goal>compile</goal> </goals>
<configuration>
<sourceDirs>
<sourceDir>${project.basedir}/src/main/kotlin</sourceDir>
<sourceDir>${project.build.outputDirectory}/../groovyOutput</sourceDir>
</sourceDirs>
</configuration>
</execution>
<execution>
@@ -39,6 +39,7 @@ import org.gradle.api.artifacts.Dependency
import java.util.HashSet
import org.gradle.api.UnknownDomainObjectException
import org.gradle.api.initialization.dsl.ScriptHandler
import org.jetbrains.kotlin.gradle.plugin.android.AndroidGradleWrapper
val DEFAULT_ANNOTATIONS = "org.jebrains.kotlin.gradle.defaultAnnotations"
@@ -250,7 +251,7 @@ open class KotlinAndroidPlugin(val scriptHandler: ScriptHandler): Plugin<Project
}
val basePlugin : BasePlugin = plugin as BasePlugin
val javaSources = project.files(javaSourceList)
val androidRT = project.files(basePlugin.getRuntimeJarList())
val androidRT = project.files(AndroidGradleWrapper.getRuntimeJars(basePlugin))
val fullClasspath = (javaTask.getClasspath() + (javaSources + androidRT)) - project.files(kotlinTask.kotlinDestinationDir)
(task as AbstractCompile).setClasspath(fullClasspath)
})
@@ -0,0 +1,14 @@
package org.jetbrains.kotlin.gradle.plugin.android
import com.android.build.gradle.BasePlugin
class AndroidGradleWrapper {
static def getRuntimeJars(BasePlugin basePlugin) {
if (basePlugin.getMetaClass().getMetaMethod("getRuntimeJarList")) {
return basePlugin.getRuntimeJarList()
}
else {
return basePlugin.getBootClasspath()
}
}
}