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