diff --git a/src/main/kotlin/com/beust/kobalt/plugin/kotlin/KotlinProjectInfo.kt b/src/main/kotlin/com/beust/kobalt/plugin/kotlin/KotlinProjectInfo.kt index 9ffd7cc5..6be7d7a1 100644 --- a/src/main/kotlin/com/beust/kobalt/plugin/kotlin/KotlinProjectInfo.kt +++ b/src/main/kotlin/com/beust/kobalt/plugin/kotlin/KotlinProjectInfo.kt @@ -11,8 +11,33 @@ class KotlinProjectInfo : IProjectInfo { override val defaultSourceDirectories = hashSetOf("src/main/kotlin", "src/main/resources") override val defaultTestDirectories = hashSetOf("src/test/kotlin", "src/test/resources") + private fun generate(type: String, name: String, value: Any) = + " val $name : $type = $value" + override fun generateBuildConfig(packageName: String, variant: Variant, buildConfigs: List) : String { - return "package $packageName" + val lines = arrayListOf() + with(lines) { + add("package $packageName") + add("") + add("class BuildConfig {") + add(" companion object {") + if (variant.productFlavor != null) { + add(generate("String", "PRODUCT_FLAVOR", "\"" + variant.productFlavor.name + "\"")) + } + if (variant.buildType != null) { + add(generate("String", "BUILD_TYPE", "\"" + variant.buildType.name + "\"")) + } + buildConfigs.forEach { + it.fields.forEach { field -> + add(generate(field.type, field.name, field.value)) + } + } + add(" }") + add("}") + add("") + } + + return lines.joinToString("\n") } }