1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-26 08:27:12 -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.dokka:dokka-fatjar:0.9.3",
"org.jetbrains.kotlinx:kotlinx.dom:0.0.4", "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.beust:jcommander:1.48",
"com.squareup.okhttp:okhttp:2.5.0", "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 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, val maxSdkVersion: String? = null,
var targetSdkVersion: String? = null, var targetSdkVersion: String? = null,
var versionCode: Int? = null, var versionCode: Int? = null,

View file

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