Wizard: remove unneeded project templates & rearrange others

This commit is contained in:
Ilya Kirillov
2020-03-24 23:46:28 +03:00
parent 670a98c8bf
commit 1504e607f9
14 changed files with 209 additions and 87 deletions
@@ -30,11 +30,6 @@ public class ProjectTemplateNewWizardProjectImportTestGenerated extends Abstract
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration"), Pattern.compile("^([^\\.]+)$"), null, false); KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration"), Pattern.compile("^([^\\.]+)$"), null, false);
} }
@TestMetadata("androidApplication")
public void testAndroidApplication() throws Exception {
runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/androidApplication/");
}
@TestMetadata("emptyMultiplatform") @TestMetadata("emptyMultiplatform")
public void testEmptyMultiplatform() throws Exception { public void testEmptyMultiplatform() throws Exception {
runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/emptyMultiplatform/"); runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/emptyMultiplatform/");
@@ -60,6 +55,11 @@ public class ProjectTemplateNewWizardProjectImportTestGenerated extends Abstract
runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/jvmServerJsClient/"); runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/jvmServerJsClient/");
} }
@TestMetadata("mppMobileApplication")
public void testMppMobileApplication() throws Exception {
runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/mppMobileApplication/");
}
@TestMetadata("multiplatformLibrary") @TestMetadata("multiplatformLibrary")
public void testMultiplatformLibrary() throws Exception { public void testMultiplatformLibrary() throws Exception {
runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/multiplatformLibrary/"); runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/multiplatformLibrary/");
@@ -88,11 +88,6 @@ public class ProjectTemplateNewWizardProjectImportTestGenerated extends Abstract
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration"), Pattern.compile("^([^\\.]+)$"), null, false); KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration"), Pattern.compile("^([^\\.]+)$"), null, false);
} }
@TestMetadata("androidApplication")
public void testAndroidApplication() throws Exception {
runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/androidApplication/");
}
@TestMetadata("emptyMultiplatform") @TestMetadata("emptyMultiplatform")
public void testEmptyMultiplatform() throws Exception { public void testEmptyMultiplatform() throws Exception {
runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/emptyMultiplatform/"); runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/emptyMultiplatform/");
@@ -118,6 +113,11 @@ public class ProjectTemplateNewWizardProjectImportTestGenerated extends Abstract
runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/jvmServerJsClient/"); runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/jvmServerJsClient/");
} }
@TestMetadata("mppMobileApplication")
public void testMppMobileApplication() throws Exception {
runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/mppMobileApplication/");
}
@TestMetadata("multiplatformLibrary") @TestMetadata("multiplatformLibrary")
public void testMultiplatformLibrary() throws Exception { public void testMultiplatformLibrary() throws Exception {
runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/multiplatformLibrary/"); runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/multiplatformLibrary/");
@@ -146,11 +146,6 @@ public class ProjectTemplateNewWizardProjectImportTestGenerated extends Abstract
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration"), Pattern.compile("^([^\\.]+)$"), null, false); KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration"), Pattern.compile("^([^\\.]+)$"), null, false);
} }
@TestMetadata("androidApplication")
public void testAndroidApplication() throws Exception {
runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/androidApplication/");
}
@TestMetadata("emptyMultiplatform") @TestMetadata("emptyMultiplatform")
public void testEmptyMultiplatform() throws Exception { public void testEmptyMultiplatform() throws Exception {
runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/emptyMultiplatform/"); runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/emptyMultiplatform/");
@@ -176,6 +171,11 @@ public class ProjectTemplateNewWizardProjectImportTestGenerated extends Abstract
runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/jvmServerJsClient/"); runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/jvmServerJsClient/");
} }
@TestMetadata("mppMobileApplication")
public void testMppMobileApplication() throws Exception {
runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/mppMobileApplication/");
}
@TestMetadata("multiplatformLibrary") @TestMetadata("multiplatformLibrary")
public void testMultiplatformLibrary() throws Exception { public void testMultiplatformLibrary() throws Exception {
runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/multiplatformLibrary/"); runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/multiplatformLibrary/");
@@ -13,6 +13,7 @@ repositories {
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
implementation project(':shared')
implementation 'androidx.core:core-ktx:1.1.0' implementation 'androidx.core:core-ktx:1.1.0'
implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
@@ -21,7 +22,7 @@ dependencies {
android { android {
compileSdkVersion 29 compileSdkVersion 29
defaultConfig { defaultConfig {
applicationId 'me.user.app' applicationId 'me.user.androidApp'
minSdkVersion 24 minSdkVersion 24
targetSdkVersion 29 targetSdkVersion 29
versionCode 1 versionCode 1
@@ -13,6 +13,7 @@ repositories {
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
implementation(project(":shared"))
implementation("androidx.core:core-ktx:1.1.0") implementation("androidx.core:core-ktx:1.1.0")
implementation("androidx.appcompat:appcompat:1.1.0") implementation("androidx.appcompat:appcompat:1.1.0")
implementation("androidx.constraintlayout:constraintlayout:1.1.3") implementation("androidx.constraintlayout:constraintlayout:1.1.3")
@@ -21,7 +22,7 @@ dependencies {
android { android {
compileSdkVersion(29) compileSdkVersion(29)
defaultConfig { defaultConfig {
applicationId = "me.user.app" applicationId = "me.user.androidApp"
minSdkVersion(24) minSdkVersion(24)
targetSdkVersion(29) targetSdkVersion(29)
versionCode = 1 versionCode = 1
@@ -1,6 +1,7 @@
group = 'me.user' group = 'me.user'
version = '1.0-SNAPSHOT' version = '1.0-SNAPSHOT'
repositories { repositories {
mavenCentral() mavenCentral()
} }
@@ -1,6 +1,7 @@
group = "me.user" group = "me.user"
version = "1.0-SNAPSHOT" version = "1.0-SNAPSHOT"
repositories { repositories {
mavenCentral() mavenCentral()
} }
@@ -12,7 +12,9 @@ pluginManagement {
} }
} }
} }
rootProject.name = 'AndroidApplication' rootProject.name = 'MPPMobileApplication'
include(':app') include(':shared')
include(':androidApp')
@@ -12,7 +12,9 @@ pluginManagement {
} }
} }
} }
rootProject.name = "AndroidApplication" rootProject.name = "MPPMobileApplication"
include(":app") include(":shared")
include(":androidApp")
@@ -0,0 +1,79 @@
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
plugins {
id 'org.jetbrains.kotlin.multiplatform' version '1.3.70'
id 'com.android.library'
id 'kotlin-android-extensions'
}
group = 'me.user'
version = '1.0-SNAPSHOT'
repositories {
gradlePluginPortal()
google()
jcenter()
mavenCentral()
}
kotlin {
android()
iosX64('ios') {
binaries {
framework {
baseName = 'shared'
}
}
}
sourceSets {
commonMain {
dependencies {
implementation kotlin('stdlib-common')
}
}
commonTest {
dependencies {
implementation kotlin('test-common')
implementation kotlin('test-annotations-common')
}
}
androidMain {
dependencies {
implementation kotlin('stdlib-jdk7')
implementation 'androidx.core:core-ktx:1.1.0'
}
}
androidTest {
}
iosMain {
}
iosTest {
}
}
}
android {
compileSdkVersion 29
defaultConfig {
minSdkVersion 24
targetSdkVersion 29
versionCode 1
versionName '1.0'
}
buildTypes {
'release' {
minifyEnabled false
}
}
}
task(packForXcode, type: Sync) {
group = 'build'
def mode = System.getenv('CONFIGURATION') ?: 'DEBUG'
def framework = kotlin.targets.ios.binaries.getFramework(mode)
inputs.property('mode', mode)
dependsOn(framework.linkTask)
def targetDir = new File(buildDir, 'xcode-frameworks')
from({ framework.outputDirectory })
into(targetDir)
}
tasks.getByName("build").dependsOn(packForXcode)
@@ -0,0 +1,73 @@
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
plugins {
kotlin("multiplatform") version "1.3.70"
id("com.android.library")
id("kotlin-android-extensions")
}
group = "me.user"
version = "1.0-SNAPSHOT"
repositories {
gradlePluginPortal()
google()
jcenter()
mavenCentral()
}
kotlin {
android()
iosX64("ios") {
binaries {
framework {
baseName = "shared"
}
}
}
sourceSets {
val commonMain by getting {
dependencies {
implementation(kotlin("stdlib-common"))
}
}
val commonTest by getting {
dependencies {
implementation(kotlin("test-common"))
implementation(kotlin("test-annotations-common"))
}
}
val androidMain by getting {
dependencies {
implementation(kotlin("stdlib-jdk7"))
implementation("androidx.core:core-ktx:1.1.0")
}
}
val androidTest by getting
val iosMain by getting
val iosTest by getting
}
}
android {
compileSdkVersion(29)
defaultConfig {
minSdkVersion(24)
targetSdkVersion(29)
versionCode = 1
versionName = "1.0"
}
buildTypes {
getByName("release") {
isMinifyEnabled = false
}
}
}
val packForXcode by tasks.creating(Sync::class) {
group = "build"
val mode = System.getenv("CONFIGURATION") ?: "DEBUG"
val framework = kotlin.targets.getByName<KotlinNativeTarget>("ios").binaries.getFramework(mode)
inputs.property("mode", mode)
dependsOn(framework.linkTask)
val targetDir = File(buildDir, "xcode-frameworks")
from({ framework.outputDirectory })
into(targetDir)
}
tasks.getByName("build").dependsOn(packForXcode)
@@ -1,6 +1,6 @@
plugins { plugins {
id 'org.jetbrains.kotlin.multiplatform' version '1.3.70' id 'org.jetbrains.kotlin.multiplatform' version '1.3.70'
id 'com.android.application' id 'com.android.library'
id 'kotlin-android-extensions' id 'kotlin-android-extensions'
} }
group = 'me.user' group = 'me.user'
@@ -14,7 +14,13 @@ repositories {
} }
kotlin { kotlin {
android() android()
iosX64('ios') iosX64('ios') {
binaries {
framework {
baseName = 'library'
}
}
}
sourceSets { sourceSets {
commonMain { commonMain {
dependencies { dependencies {
@@ -47,7 +53,6 @@ kotlin {
android { android {
compileSdkVersion 29 compileSdkVersion 29
defaultConfig { defaultConfig {
applicationId 'me.user.android'
minSdkVersion 24 minSdkVersion 24
targetSdkVersion 29 targetSdkVersion 29
versionCode 1 versionCode 1
@@ -1,6 +1,6 @@
plugins { plugins {
kotlin("multiplatform") version "1.3.70" kotlin("multiplatform") version "1.3.70"
id("com.android.application") id("com.android.library")
id("kotlin-android-extensions") id("kotlin-android-extensions")
} }
group = "me.user" group = "me.user"
@@ -14,7 +14,13 @@ repositories {
} }
kotlin { kotlin {
android() android()
iosX64("ios") iosX64("ios") {
binaries {
framework {
baseName = "library"
}
}
}
sourceSets { sourceSets {
val commonMain by getting { val commonMain by getting {
dependencies { dependencies {
@@ -41,7 +47,6 @@ kotlin {
android { android {
compileSdkVersion(29) compileSdkVersion(29)
defaultConfig { defaultConfig {
applicationId = "me.user.android"
minSdkVersion(24) minSdkVersion(24)
targetSdkVersion(29) targetSdkVersion(29)
versionCode = 1 versionCode = 1
@@ -28,11 +28,6 @@ public class ProjectTemplateBuildFileGenerationTestGenerated extends AbstractPro
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration"), Pattern.compile("^([^\\.]+)$"), null, false); KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration"), Pattern.compile("^([^\\.]+)$"), null, false);
} }
@TestMetadata("androidApplication")
public void testAndroidApplication() throws Exception {
runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/androidApplication/");
}
@TestMetadata("emptyMultiplatform") @TestMetadata("emptyMultiplatform")
public void testEmptyMultiplatform() throws Exception { public void testEmptyMultiplatform() throws Exception {
runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/emptyMultiplatform/"); runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/emptyMultiplatform/");
@@ -58,6 +53,11 @@ public class ProjectTemplateBuildFileGenerationTestGenerated extends AbstractPro
runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/jvmServerJsClient/"); runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/jvmServerJsClient/");
} }
@TestMetadata("mppMobileApplication")
public void testMppMobileApplication() throws Exception {
runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/mppMobileApplication/");
}
@TestMetadata("multiplatformLibrary") @TestMetadata("multiplatformLibrary")
public void testMultiplatformLibrary() throws Exception { public void testMultiplatformLibrary() throws Exception {
runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/multiplatformLibrary/"); runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/multiplatformLibrary/");
@@ -64,16 +64,14 @@ sealed class ProjectTemplate : DisplayableSettingItem {
companion object { companion object {
val ALL = listOf( val ALL = listOf(
EmptySingleplatformProjectTemplate, EmptySingleplatformProjectTemplate,
EmptyMultiplatformProjectTemplate,
JvmConsoleApplication, JvmConsoleApplication,
JvmServerJsClient,
MultiplatformLibrary,
AndroidApplication,
IOSApplication,
MPPMobileApplication, MPPMobileApplication,
MultiplatformMobileLibrary, MultiplatformMobileLibrary,
EmptyMultiplatformProjectTemplate,
MultiplatformLibrary,
NativeConsoleApplication, NativeConsoleApplication,
JsBrowserApplication JsBrowserApplication,
JvmServerJsClient
) )
fun byId(id: String): ProjectTemplate? = ALL.firstOrNull { fun byId(id: String): ProjectTemplate? = ALL.firstOrNull {
@@ -164,7 +162,7 @@ object EmptyMultiplatformProjectTemplate : ProjectTemplate() {
object JvmConsoleApplication : ProjectTemplate() { object JvmConsoleApplication : ProjectTemplate() {
override val title = "Console Application" override val title = "Console Application"
override val description = "Create a console application with Kotlin/JVM. Use it for prototyping or testing purposes" override val description = "Create a console application with Kotlin/JVM. Use it for prototyping or testing purposes."
override val suggestedProjectName = "myConsoleApplication" override val suggestedProjectName = "myConsoleApplication"
override val projectKind = ProjectKind.Singleplatform override val projectKind = ProjectKind.Singleplatform
@@ -228,29 +226,6 @@ object JvmServerJsClient : ProjectTemplate() {
) )
} }
object AndroidApplication : ProjectTemplate() {
override val title = "Android Application"
override val description = "Simple Android application with single activity"
override val suggestedProjectName = "myAndroidApplication"
override val projectKind = ProjectKind.Android
override val setsPluginSettings: List<SettingWithValue<*, *>>
get() = listOf(
KotlinPlugin::modules withValue listOf(
Module(
"app",
AndroidSinglePlatformModuleConfigurator,
template = null,
sourcesets = SourcesetType.ALL.map { type ->
Sourceset(type, dependencies = emptyList())
},
subModules = emptyList()
)
)
)
}
object NativeConsoleApplication : ProjectTemplate() { object NativeConsoleApplication : ProjectTemplate() {
override val title = "Native Application" override val title = "Native Application"
override val description = override val description =
@@ -298,29 +273,6 @@ object JsBrowserApplication : ProjectTemplate() {
) )
} }
object IOSApplication : ProjectTemplate() {
override val title = "IOS Application"
override val description = "Simple IOS application with single screen "
override val suggestedProjectName = "myIOSApplication"
override val projectKind = ProjectKind.Multiplatform
override val setsPluginSettings: List<SettingWithValue<*, *>>
get() = listOf(
KotlinPlugin::modules withValue listOf(
Module(
"iosApp",
IOSSinglePlatformModuleConfigurator,
template = null,
sourcesets = SourcesetType.ALL.map { type ->
Sourceset(type, dependencies = emptyList())
},
subModules = emptyList()
)
)
)
}
object MPPMobileApplication : ProjectTemplate() { object MPPMobileApplication : ProjectTemplate() {
override val title = "Multiplatform Mobile Application" override val title = "Multiplatform Mobile Application"