Wizard: relocate AndroidManifest.xml for MPP module
This commit is contained in:
committed by
Kirill Shmakov
parent
b3d48cda8c
commit
f330cd3697
+1
@@ -56,6 +56,7 @@ kotlin {
|
||||
}
|
||||
android {
|
||||
compileSdkVersion 29
|
||||
sourceSets.main.manifest.srcFile('src/androidMain/AndroidManifest.xml')
|
||||
defaultConfig {
|
||||
minSdkVersion 24
|
||||
targetSdkVersion 29
|
||||
|
||||
+1
@@ -50,6 +50,7 @@ kotlin {
|
||||
}
|
||||
android {
|
||||
compileSdkVersion(29)
|
||||
sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
|
||||
defaultConfig {
|
||||
minSdkVersion(24)
|
||||
targetSdkVersion(29)
|
||||
|
||||
+1
@@ -54,6 +54,7 @@ kotlin {
|
||||
}
|
||||
android {
|
||||
compileSdkVersion 29
|
||||
sourceSets.main.manifest.srcFile('src/androidMain/AndroidManifest.xml')
|
||||
defaultConfig {
|
||||
minSdkVersion 24
|
||||
targetSdkVersion 29
|
||||
|
||||
+1
@@ -48,6 +48,7 @@ kotlin {
|
||||
}
|
||||
android {
|
||||
compileSdkVersion(29)
|
||||
sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
|
||||
defaultConfig {
|
||||
minSdkVersion(24)
|
||||
targetSdkVersion(29)
|
||||
|
||||
+13
-1
@@ -3,14 +3,26 @@ package org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle
|
||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.FreeIR
|
||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.GradlePrinter
|
||||
import org.jetbrains.kotlin.tools.projectWizard.settings.JavaPackage
|
||||
import java.nio.file.Path
|
||||
|
||||
interface AndroidIR : GradleIR
|
||||
|
||||
//TODO parematrize
|
||||
data class AndroidConfigIR(val javaPackage: JavaPackage?) : AndroidIR, FreeIR {
|
||||
data class AndroidConfigIR(val javaPackage: JavaPackage?, val newManifestPath: Path?) : AndroidIR, FreeIR {
|
||||
override fun GradlePrinter.renderGradle() {
|
||||
sectionCall("android", needIndent = true) {
|
||||
call("compileSdkVersion") { +"29" }; nlIndented() // TODO dehardcode
|
||||
if (newManifestPath != null) {
|
||||
when (dsl) {
|
||||
GradlePrinter.GradleDsl.KOTLIN -> {
|
||||
+"""sourceSets["main"].manifest.srcFile("$newManifestPath")"""
|
||||
}
|
||||
GradlePrinter.GradleDsl.GROOVY -> {
|
||||
+"""sourceSets.main.manifest.srcFile('$newManifestPath')"""
|
||||
}
|
||||
}
|
||||
nlIndented()
|
||||
}
|
||||
sectionCall("defaultConfig", needIndent = true) {
|
||||
if (javaPackage != null) {
|
||||
assignmentOrCall("applicationId") { +javaPackage.asCodePackage().quotified }; nlIndented()
|
||||
|
||||
+22
-13
@@ -40,6 +40,21 @@ interface AndroidModuleConfigurator : ModuleConfigurator,
|
||||
ModuleConfiguratorWithModuleType,
|
||||
GradleModuleConfigurator {
|
||||
|
||||
fun getNewAndroidManifestPath(module: Module): Path?
|
||||
|
||||
private fun getManifestPathOrDefault(module: Module): Path =
|
||||
getNewAndroidManifestPath(module) ?: ("src" / "main" / "AndroidManifest.xml")
|
||||
|
||||
fun getAndroidManifestXml(module: Module) = FileTemplateDescriptor(
|
||||
"android/AndroidManifest.xml.vm",
|
||||
getManifestPathOrDefault(module)
|
||||
)
|
||||
|
||||
fun getAndroidManifestForLibraryXml(module: Module) = FileTemplateDescriptor(
|
||||
"android/AndroidManifestLibrary.xml.vm",
|
||||
getManifestPathOrDefault(module)
|
||||
)
|
||||
|
||||
override val moduleType: ModuleType
|
||||
get() = ModuleType.android
|
||||
|
||||
@@ -55,10 +70,11 @@ interface AndroidModuleConfigurator : ModuleConfigurator,
|
||||
|
||||
+GradleOnlyPluginByNameIR("kotlin-android-extensions", priority = 3)
|
||||
+AndroidConfigIR(
|
||||
when (reader.createAndroidPlugin(module)) {
|
||||
javaPackage = when (reader.createAndroidPlugin(module)) {
|
||||
AndroidGradlePlugin.APPLICATION -> module.javaPackage(configurationData.pomIr)
|
||||
AndroidGradlePlugin.LIBRARY -> null
|
||||
}
|
||||
},
|
||||
newManifestPath = getNewAndroidManifestPath(module)
|
||||
)
|
||||
+createRepositories(configurationData.kotlinVersion).map(::RepositoryIR)
|
||||
}
|
||||
@@ -93,16 +109,6 @@ interface AndroidModuleConfigurator : ModuleConfigurator,
|
||||
"src" / "main" / "res" / "layout" / "activity_main.xml"
|
||||
)
|
||||
|
||||
val androidManifestXml = FileTemplateDescriptor(
|
||||
"android/AndroidManifest.xml.vm",
|
||||
"src" / "main" / "AndroidManifest.xml"
|
||||
)
|
||||
|
||||
val androidManifestForLibraryXml = FileTemplateDescriptor(
|
||||
"android/AndroidManifestLibrary.xml.vm",
|
||||
"src" / "main" / "AndroidManifest.xml"
|
||||
)
|
||||
|
||||
val colorsXml = FileTemplateDescriptor(
|
||||
"android/colors.xml",
|
||||
"src" / "main" / "res" / "values" / "colors.xml"
|
||||
@@ -139,6 +145,9 @@ object AndroidTargetConfigurator : TargetConfigurator,
|
||||
|
||||
override val text = KotlinNewProjectWizardBundle.message("module.configurator.android")
|
||||
|
||||
override fun getNewAndroidManifestPath(module: Module): Path? =
|
||||
Defaults.SRC_DIR / "${module.name}Main" / "AndroidManifest.xml"
|
||||
|
||||
override fun Reader.createAndroidPlugin(module: Module): AndroidGradlePlugin =
|
||||
inContextOfModuleConfigurator(module) { androidPlugin.reference.settingValue }
|
||||
|
||||
@@ -167,7 +176,7 @@ object AndroidTargetConfigurator : TargetConfigurator,
|
||||
|
||||
TemplatesPlugin.addFileTemplates.execute(
|
||||
listOf(
|
||||
FileTemplate(AndroidModuleConfigurator.FileTemplateDescriptors.androidManifestForLibraryXml, modulePath, settings)
|
||||
FileTemplate(getAndroidManifestForLibraryXml(module), modulePath, settings)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
+3
-1
@@ -31,6 +31,8 @@ object AndroidSinglePlatformModuleConfigurator :
|
||||
AndroidModuleConfigurator {
|
||||
override val moduleKind: ModuleKind get() = ModuleKind.singleplatformAndroid
|
||||
|
||||
override fun getNewAndroidManifestPath(module: Module): Path? = null
|
||||
|
||||
@NonNls
|
||||
override val id = "android"
|
||||
|
||||
@@ -99,7 +101,7 @@ object AndroidSinglePlatformModuleConfigurator :
|
||||
TemplatesPlugin.addFileTemplates.execute(
|
||||
listOf(
|
||||
FileTemplate(AndroidModuleConfigurator.FileTemplateDescriptors.activityMainXml, modulePath, settings),
|
||||
FileTemplate(AndroidModuleConfigurator.FileTemplateDescriptors.androidManifestXml, modulePath, settings),
|
||||
FileTemplate(getAndroidManifestXml(module), modulePath, settings),
|
||||
FileTemplate(AndroidModuleConfigurator.FileTemplateDescriptors.colorsXml, modulePath, settings),
|
||||
FileTemplate(AndroidModuleConfigurator.FileTemplateDescriptors.stylesXml, modulePath, settings),
|
||||
FileTemplate(AndroidModuleConfigurator.FileTemplateDescriptors.mainActivityKt(javaPackage), modulePath, settings)
|
||||
|
||||
Reference in New Issue
Block a user