1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-26 08:27:12 -07:00

Fix bogus app/ directories.

This commit is contained in:
Cedric Beust 2015-11-22 21:46:55 -08:00
parent cf1ebb29bb
commit 88ac8ed492
4 changed files with 30 additions and 24 deletions

View file

@ -3,7 +3,6 @@ package com.beust.kobalt
import com.beust.kobalt.api.* import com.beust.kobalt.api.*
import com.beust.kobalt.misc.KFiles import com.beust.kobalt.misc.KFiles
import com.beust.kobalt.misc.log import com.beust.kobalt.misc.log
import com.beust.kobalt.misc.warn
import java.io.File import java.io.File
/** /**
@ -53,11 +52,17 @@ class Variant(val initialProductFlavor: ProductFlavorConfig? = null,
} }
fun archiveName(project: Project, archiveName: String?, suffix: String) : String { fun archiveName(project: Project, archiveName: String?, suffix: String) : String {
val base = if (archiveName != null) archiveName.substring(0, archiveName.length - suffix.length) val result =
else project.name + "-" + project.version if (isDefault) {
val result: String = archiveName ?: project.name + "-" + project.version + suffix
base + "-${productFlavor.name}" + "-${buildType.name}" } else {
val base = if (archiveName != null) archiveName.substring(0, archiveName.length - suffix.length)
else project.name + "-" + project.version
val result: String =
base + "-${productFlavor.name}" + "-${buildType.name}"
result
}
return result return result
} }
@ -132,7 +137,6 @@ class Variant(val initialProductFlavor: ProductFlavorConfig? = null,
fun toIntermediateDir() : String { fun toIntermediateDir() : String {
if (isDefault) { if (isDefault) {
warn("DEFAULT VARIANT NOT IMPLEMENTED")
return "" return ""
} else { } else {
return KFiles.joinDir(productFlavor.name, buildType.name) return KFiles.joinDir(productFlavor.name, buildType.name)

View file

@ -43,7 +43,7 @@ fun Project.android(init: AndroidConfig.() -> Unit) : AndroidConfig {
@Singleton @Singleton
public class AndroidPlugin @Inject constructor(val javaCompiler: JavaCompiler, val merger: Merger) public class AndroidPlugin @Inject constructor(val javaCompiler: JavaCompiler, val merger: Merger)
: ConfigPlugin<AndroidConfig>(), IClasspathContributor, IRepoContributor, ICompilerFlagContributor, : ConfigPlugin<AndroidConfig>(), IClasspathContributor, IRepoContributor, ICompilerFlagContributor,
ICompilerInterceptor, ISourceDirectoriesIncerceptor, IBuildDirectoryIncerceptor { ICompilerInterceptor, IBuildDirectoryIncerceptor {
override val name = "android" override val name = "android"
fun isAndroid(project: Project) = configurationFor(project) != null fun isAndroid(project: Project) = configurationFor(project) != null
@ -347,22 +347,27 @@ public class AndroidPlugin @Inject constructor(val javaCompiler: JavaCompiler, v
// IBuildDirectoryInterceptor // IBuildDirectoryInterceptor
override fun intercept(project: Project, context: KobaltContext, buildDirectory: String): String { override fun intercept(project: Project, context: KobaltContext, buildDirectory: String): String {
val result = KFiles.joinDir(AndroidFiles.intermediates(project), "classes", if (isAndroid(project)) {
context.variant.toIntermediateDir()) val result = KFiles.joinDir(AndroidFiles.intermediates(project), "classes",
return result context.variant.toIntermediateDir())
} return result
} else {
// ISourceDirectoriesInterceptor return buildDirectory
override fun intercept(project: Project, context: KobaltContext, sourceDirectories: List<File>): List<File> { }
return sourceDirectories.map { File("app", it.path)}
} }
// ICompilerInterceptor // ICompilerInterceptor
override fun intercept(project: Project, context: KobaltContext, actionInfo: CompilerActionInfo) override fun intercept(project: Project, context: KobaltContext, actionInfo: CompilerActionInfo)
: CompilerActionInfo { : CompilerActionInfo {
val newOutputDir = KFiles.joinDir("kobaltBuild", "intermediates", "classes", val result: CompilerActionInfo =
context.variant.toIntermediateDir()) if (isAndroid(project)) {
return actionInfo.copy(outputDir = File(newOutputDir)) val newOutputDir = KFiles.joinDir("kobaltBuild", "intermediates", "classes",
context.variant.toIntermediateDir())
actionInfo.copy(outputDir = File(newOutputDir))
} else {
actionInfo
}
return result
} }

View file

@ -33,7 +33,7 @@ class Merger @Inject constructor() {
private fun mergeAndroidManifest(project: Project, variant: Variant) { private fun mergeAndroidManifest(project: Project, variant: Variant) {
val dest = AndroidFiles.mergedManifest(project, variant) val dest = AndroidFiles.mergedManifest(project, variant)
log(1, "Manifest merging not implemented, copying it to $dest") log(1, "Manifest merging not implemented, copying it to $dest")
KFiles.copy(Paths.get("app/src/main/AndroidManifest.xml"), Paths.get(dest)) KFiles.copy(Paths.get("src/main/AndroidManifest.xml"), Paths.get(dest))
} }
interface IFileMerger { interface IFileMerger {
@ -101,11 +101,11 @@ class Merger @Inject constructor() {
*/ */
private fun mergeResources(project: Project, variant: Variant) { private fun mergeResources(project: Project, variant: Variant) {
val dest = AndroidFiles.Companion.mergedResources(project, variant) val dest = AndroidFiles.Companion.mergedResources(project, variant)
log(1, "Resource merging not implemented, copying app/src/main/res to $dest") log(1, "Resource merging not implemented, copying src/main/res to $dest")
listOf(variant.buildType.name, variant.productFlavor.name, "main").forEach { listOf(variant.buildType.name, variant.productFlavor.name, "main").forEach {
log(1, " CURRENT VARIANT: $it, Copying app/src/$it/res into $dest") log(1, " CURRENT VARIANT: $it, Copying app/src/$it/res into $dest")
val fromDir = File("app/src/$it/res") val fromDir = File("src/$it/res")
KFiles.findRecursively(fromDir).forEach { KFiles.findRecursively(fromDir).forEach {
val fromFile = File(fromDir, it) val fromFile = File(fromDir, it)
val toFile = File(dest, it) val toFile = File(dest, it)

View file

@ -34,9 +34,6 @@
<build-directory-interceptors> <build-directory-interceptors>
<class-name>com.beust.kobalt.plugin.android.AndroidPlugin</class-name> <class-name>com.beust.kobalt.plugin.android.AndroidPlugin</class-name>
</build-directory-interceptors> </build-directory-interceptors>
<source-directories-interceptors>
<class-name>com.beust.kobalt.plugin.android.AndroidPlugin</class-name>
</source-directories-interceptors>
<compiler-interceptors> <compiler-interceptors>
<class-name>com.beust.kobalt.plugin.android.AndroidPlugin</class-name> <class-name>com.beust.kobalt.plugin.android.AndroidPlugin</class-name>
</compiler-interceptors> </compiler-interceptors>