mirror of
https://github.com/ethauvin/kobalt.git
synced 2025-04-26 00:17:11 -07:00
Android work.
This commit is contained in:
parent
6853e1992c
commit
5bd113692b
1 changed files with 29 additions and 14 deletions
|
@ -1,27 +1,29 @@
|
|||
package com.beust.kobalt.plugin.android
|
||||
|
||||
import com.beust.kobalt.api.BasePlugin
|
||||
import com.beust.kobalt.api.Kobalt
|
||||
import com.beust.kobalt.api.KobaltContext
|
||||
import com.beust.kobalt.api.Project
|
||||
import com.beust.kobalt.api.annotation.Directive
|
||||
import com.beust.kobalt.api.annotation.Task
|
||||
import com.beust.kobalt.internal.TaskResult
|
||||
import com.beust.kobalt.maven.FileDependency
|
||||
import com.beust.kobalt.misc.RunCommand
|
||||
import com.beust.kobalt.misc.log
|
||||
import com.google.inject.Inject
|
||||
import com.google.inject.Singleton
|
||||
import java.io.File
|
||||
import java.nio.file.Paths
|
||||
import com.beust.kobalt.api.Project
|
||||
import com.beust.kobalt.api.annotation.Directive
|
||||
import com.beust.kobalt.api.annotation.Task
|
||||
import java.nio.file.Path
|
||||
import javax.inject.Inject
|
||||
import javax.inject.Singleton
|
||||
import java.nio.file.Paths
|
||||
|
||||
class AndroidConfiguration() {
|
||||
}
|
||||
class AndroidConfiguration(var compileSdkVersion : String = "23",
|
||||
var buildToolsVersion : String = "23.0.1")
|
||||
|
||||
@Directive
|
||||
public fun android(init: AndroidConfiguration.() -> Unit) : AndroidConfiguration {
|
||||
fun Project.android(init: AndroidConfiguration.() -> Unit) : AndroidConfiguration {
|
||||
val pd = AndroidConfiguration()
|
||||
pd.init()
|
||||
(Kobalt.findPlugin("android") as AndroidPlugin).setConfiguration(this, pd)
|
||||
return pd
|
||||
}
|
||||
|
||||
|
@ -30,14 +32,21 @@ public class AndroidPlugin @Inject constructor() : BasePlugin() {
|
|||
val ANDROID_HOME = "/Users/beust/android/adt-bundle-mac-x86_64-20140702/sdk"
|
||||
override val name = "android"
|
||||
|
||||
val compileSdkVersion = "23"
|
||||
val buildToolsVersion = "23.0.1"
|
||||
|
||||
override fun apply(project: Project, context: KobaltContext) {
|
||||
log(1, "Applying plug-in Android on project $project")
|
||||
// project.compileDependencies.add(FileDependency(androidJar.toString()))
|
||||
if (accept(project)) {
|
||||
project.compileDependencies.add(FileDependency(androidJar(project).toString()))
|
||||
}
|
||||
}
|
||||
|
||||
val configurations = hashMapOf<String, AndroidConfiguration>()
|
||||
|
||||
fun setConfiguration(p: Project, configuration: AndroidConfiguration) {
|
||||
configurations.put(p.name!!, configuration)
|
||||
}
|
||||
|
||||
override fun accept(p: Project) = configurations.containsKeyRaw(p.name)
|
||||
|
||||
fun dirGet(dir: Path, vararg others: String) : String {
|
||||
val result = Paths.get(dir.toString(), *others)
|
||||
with(result.toFile()) {
|
||||
|
@ -47,12 +56,18 @@ public class AndroidPlugin @Inject constructor() : BasePlugin() {
|
|||
return result.toString()
|
||||
}
|
||||
|
||||
val androidJar = Paths.get(ANDROID_HOME, "platforms", "android-$compileSdkVersion", "android.jar")
|
||||
fun compileSdkVersion(project: Project) = configurations.get(project.name!!)?.compileSdkVersion
|
||||
fun buildToolsVersion(project: Project) = configurations.get(project.name!!)?.buildToolsVersion
|
||||
|
||||
fun androidJar(project: Project) : Path =
|
||||
Paths.get(ANDROID_HOME, "platforms", "android-${compileSdkVersion(project)}", "android.jar")
|
||||
|
||||
@Task(name = "generateR", description = "Generate the R.java file", runBefore = arrayOf("compile"))
|
||||
fun taskGenerateRFile(project: Project) : TaskResult {
|
||||
|
||||
val flavor = "debug"
|
||||
val compileSdkVersion = compileSdkVersion(project)
|
||||
val buildToolsVersion = buildToolsVersion(project)
|
||||
val androidJar = Paths.get(ANDROID_HOME, "platforms", "android-$compileSdkVersion", "android.jar")
|
||||
val applicationId = "com.beust.example"
|
||||
val intermediates = Paths.get(project.directory, "app", "build", "intermediates")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue