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

Update AndroidBuilder to 2.0.0-alpha3.

This commit is contained in:
Cedric Beust 2015-12-14 22:31:41 +04:00
parent 421a5a6d4a
commit 3aab5e36ab
4 changed files with 16 additions and 12 deletions

View file

@ -71,7 +71,7 @@ val kobalt = kotlinProject(wrapper) {
"org.jetbrains.dokka:dokka-fatjar:0.9.3",
"org.jetbrains.kotlinx:kotlinx.dom:0.0.4",
"com.android.tools.build:builder:1.5.0",
"com.android.tools.build:builder:2.0.0-alpha3",
"com.beust:jcommander:1.48",
"com.squareup.okhttp:okhttp:2.5.0",

View file

@ -479,7 +479,7 @@ public class AndroidPlugin @Inject constructor(val javaCompiler: JavaCompiler,
override fun tasksFor(context: KobaltContext): List<DynamicTask> = taskContributor.dynamicTasks
}
class DefaultConfig(var minSdkVersion: String? = null,
class DefaultConfig(var minSdkVersion: Int? = null,
val maxSdkVersion: String? = null,
var targetSdkVersion: String? = null,
var versionCode: Int? = null,

View file

@ -17,8 +17,8 @@ class AppInfo(val androidManifest: File, val config: AndroidConfig) {
val versionName : String
get() = config.defaultConfig.versionName ?: versionCode.toString()
val minSdkVersion: String?
get() = config.defaultConfig.minSdkVersion ?: AndroidManifest.getMinSdkVersion(abstractManifest)?.toString()
val minSdkVersion: Int
get() = config.defaultConfig.minSdkVersion ?: (AndroidManifest.getMinSdkVersion(abstractManifest) as Int)
val maxSdkVersion: Int?
get() = config.defaultConfig.maxSdkVersion?.toInt()

View file

@ -11,6 +11,7 @@ import com.android.builder.model.SyncIssue
import com.android.builder.sdk.DefaultSdkLoader
import com.android.builder.sdk.SdkLoader
import com.android.ide.common.blame.Message
import com.android.ide.common.internal.ExecutorSingleton
import com.android.ide.common.process.*
import com.android.ide.common.res2.*
import com.android.manifmerger.ManifestMerger2
@ -92,13 +93,13 @@ class KobaltResourceMerger {
//
// Manifests
//
processManifests(project, variant, androidBuilder, config)
val appInfo = processManifests(project, variant, androidBuilder, config)
//
// Resources
//
KobaltProcessOutputHandler().let {
processResources(project, variant, androidBuilder, aarDependencies, logger, it)
processResources(project, variant, androidBuilder, aarDependencies, logger, it, appInfo.minSdkVersion)
mergeResources(project, variant, androidBuilder, aarDependencies, rDirectory, it)
}
}
@ -166,7 +167,9 @@ class KobaltResourceMerger {
}
private fun processManifests(project: Project, variant: Variant, androidBuilder: AndroidBuilder,
config: AndroidConfig) {
config: AndroidConfig): AppInfo {
val mainManifest = File("src/main/AndroidManifest.xml")
val appInfo = AppInfo(mainManifest, config)
logWrap(2, " Processing manifests...", "done") {
val manifestOverlays = variant.allDirectories(project).map {
File("src/$it/AndroidManifest.xml")
@ -177,13 +180,11 @@ class KobaltResourceMerger {
val outManifest = AndroidFiles.mergedManifest(project, variant)
val outAaptSafeManifestLocation = KFiles.joinDir(project.directory, project.buildDirectory, "generatedSafeAapt")
val reportFile = File(KFiles.joinDir(project.directory, project.buildDirectory, "manifest-merger-report.txt"))
val mainManifest = File("src/main/AndroidManifest.xml")
val appInfo = AppInfo(mainManifest, config)
androidBuilder.mergeManifests(mainManifest, manifestOverlays, libraries,
null /* package override */,
appInfo.versionCode,
appInfo.versionName,
appInfo.minSdkVersion,
appInfo.minSdkVersion.toString(),
appInfo.targetSdkVersion,
appInfo.maxSdkVersion,
outManifest,
@ -193,15 +194,17 @@ class KobaltResourceMerger {
emptyMap() /* placeHolders */,
reportFile)
}
return appInfo
}
private fun processResources(project: Project, variant: Variant, androidBuilder: AndroidBuilder,
aarDependencies: List<File>, logger: ILogger, processOutputHandler: KobaltProcessOutputHandler) {
aarDependencies: List<File>, logger: ILogger, processOutputHandler: KobaltProcessOutputHandler,
minSdk: Int) {
logWrap(2, " Processing resources...", "done") {
val layout = ProjectLayout()
val preprocessor = NoOpResourcePreprocessor()
val outputDir = AndroidFiles.mergedResources(project, variant)
val resourceMerger = ResourceMerger()
val resourceMerger = ResourceMerger(minSdk)
val fullVariantDir = File(variant.toCamelcaseDir())
val srcList = listOf("main", variant.productFlavor.name, variant.buildType.name, fullVariantDir.path)
.map { "src" + File.separator + it }
@ -226,6 +229,7 @@ class KobaltResourceMerger {
layout.mergeBlame,
preprocessor)
resourceMerger.mergeData(writer, true)
ExecutorSingleton.getExecutor().shutdown()
}
}