mirror of
				https://github.com/InsanusMokrassar/KotlinMultiplatformProjectTemplate.git
				synced 2025-11-04 06:00:31 +00:00 
			
		
		
		
	Compare commits
	
		
			109 Commits
		
	
	
		
			kotlin/1.5
			...
			d181a8287c
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					d181a8287c | ||
| d388806d3b | |||
| 185285c1ca | |||
| 
						 | 
					23cc432d21 | ||
| 005491c256 | |||
| 
						 | 
					0ad128a11a | ||
| ab7f703227 | |||
| 66b55947ae | |||
| 
						 | 
					b5230087da | ||
| 
						 | 
					0b2be65b9e | ||
| 896028d0bb | |||
| 6dced2d86e | |||
| 29a4154490 | |||
| 
						 | 
					4f524ebf1b | ||
| 1d2cf6025d | |||
| 
						 | 
					00aab9e228 | ||
| 375e3c1d6e | |||
| 
						 | 
					d7b5ea6d83 | ||
| 4d8992e86f | |||
| 
						 | 
					1b113fe006 | ||
| 3c8822e3e7 | |||
| 
						 | 
					f7d115c624 | ||
| bb798ccc67 | |||
| 
						 | 
					c4f147df83 | ||
| c2fed22e80 | |||
| 
						 | 
					ec8915aed1 | ||
| 1d602c5d26 | |||
| 2d36722c37 | |||
| 37763d2221 | |||
| 3ae29248af | |||
| 8f81904cdb | |||
| 33782f0cdb | |||
| 3bab6a95b2 | |||
| a757c4cf06 | |||
| 453ae19a49 | |||
| 631d74dc6b | |||
| bd455bebba | |||
| bd07fb382e | |||
| 297114273f | |||
| 05f029c257 | |||
| 11ac3aebda | |||
| c5c7fd26e4 | |||
| ce0aea6b77 | |||
| 9d7955b9b0 | |||
| 18b84216a5 | |||
| 1366dd55c2 | |||
| 049dc8f5d7 | |||
| dac20a8a02 | |||
| c1d6dae359 | |||
| 4ed6f8e104 | |||
| dc07633928 | |||
| be7fa9241f | |||
| df6c8b8358 | |||
| ca1ec3f208 | |||
| deba42332a | |||
| e0bce311d5 | |||
| ebc07f5c3d | |||
| 488e4b283d | |||
| c55087ce1b | |||
| 80eb5bb6ba | |||
| 8f1bd13ac5 | |||
| 12220fab46 | |||
| 263ee6475c | |||
| 33b25af9a4 | |||
| 8f716be674 | |||
| 3de2e1ceb5 | |||
| 836e768705 | |||
| c4ab6cbf74 | |||
| c881165417 | |||
| 0ba983cf94 | |||
| 04be74561d | |||
| 37fe3701fb | |||
| 9022faa898 | |||
| e053157dd4 | |||
| 7f6e9ae5e4 | |||
| 8339c290b9 | |||
| b575a2ca2f | |||
| 71effb81c2 | |||
| c2dce5f0b5 | |||
| 3974a48d93 | |||
| a964864c58 | |||
| bbfd5886d3 | |||
| 323d7c9ee3 | |||
| b7b6f4f7e2 | |||
| 5494671ee1 | |||
| 052072dd5a | |||
| ffdfd4b4c5 | |||
| a3cb678f76 | |||
| 36de2d7082 | |||
| bda4913bf2 | |||
| acdb9d573e | |||
| 3a2fda60ed | |||
| da7aefa8ce | |||
| 4ac954d05f | |||
| c0bbaf0578 | |||
| d1c63deaec | |||
| e96207516f | |||
| adae653e33 | |||
| 9d220c91e3 | |||
| 9bc410ccf8 | |||
| 018df3cd55 | |||
| 20b356a22c | |||
| 4816349d2d | |||
| 6e7ea5688f | |||
| 9aebefa6cd | |||
| 5aa6388883 | |||
| 7e059271c2 | |||
| 4decf1ff0a | |||
| 3eaeaf284e | 
							
								
								
									
										5
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							@@ -5,12 +5,11 @@ on: [push]
 | 
			
		||||
jobs:
 | 
			
		||||
  build:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v2
 | 
			
		||||
      - name: Set up JDK 1.8
 | 
			
		||||
      - name: Set up JDK 17
 | 
			
		||||
        uses: actions/setup-java@v1
 | 
			
		||||
        with:
 | 
			
		||||
          java-version: 1.8
 | 
			
		||||
          java-version: 17
 | 
			
		||||
      - name: Build with Gradle
 | 
			
		||||
        run: ./gradlew build
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,4 +1,5 @@
 | 
			
		||||
.idea
 | 
			
		||||
.kotlin
 | 
			
		||||
out/*
 | 
			
		||||
*.iml
 | 
			
		||||
target
 | 
			
		||||
@@ -10,6 +11,8 @@ build/
 | 
			
		||||
out/
 | 
			
		||||
 | 
			
		||||
secret.gradle
 | 
			
		||||
local.properties
 | 
			
		||||
local.*
 | 
			
		||||
local/
 | 
			
		||||
kotlin-js-store/
 | 
			
		||||
 | 
			
		||||
publishing.sh
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								.templates/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								.templates/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
			
		||||
# Templates
 | 
			
		||||
 | 
			
		||||
This folder contains templates to generate your modules in Intellij Idea with plugin
 | 
			
		||||
[ModuleGenerator](https://plugins.jetbrains.com/plugin/21100-segment-generator)
 | 
			
		||||
							
								
								
									
										5
									
								
								.templates/mpp_android_module/ModuleGenerator.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								.templates/mpp_android_module/ModuleGenerator.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
{
 | 
			
		||||
   "module_name": "sample",
 | 
			
		||||
   "module_package": "feature.{{.module_name}}",
 | 
			
		||||
   "full_module_package": "project_group.project_name.{{.module_package}}"
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,8 @@
 | 
			
		||||
plugins {
 | 
			
		||||
    id "org.jetbrains.kotlin.multiplatform"
 | 
			
		||||
    id "org.jetbrains.kotlin.plugin.serialization"
 | 
			
		||||
    id "com.android.library"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
apply from: "$mppAndroidProject"
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1 @@
 | 
			
		||||
package {{.full_module_package}}
 | 
			
		||||
@@ -0,0 +1 @@
 | 
			
		||||
package {{.full_module_package}}
 | 
			
		||||
							
								
								
									
										5
									
								
								.templates/mpp_java_module/ModuleGenerator.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								.templates/mpp_java_module/ModuleGenerator.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
{
 | 
			
		||||
   "module_name": "sample",
 | 
			
		||||
   "module_package": "feature.{{.module_name}}",
 | 
			
		||||
   "full_module_package": "project_group.project_name.{{.module_package}}"
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,7 @@
 | 
			
		||||
plugins {
 | 
			
		||||
    id "org.jetbrains.kotlin.multiplatform"
 | 
			
		||||
    id "org.jetbrains.kotlin.plugin.serialization"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
apply from: "$mppJavaProject"
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1 @@
 | 
			
		||||
package {{.full_module_package}}
 | 
			
		||||
@@ -0,0 +1 @@
 | 
			
		||||
package {{.full_module_package}}
 | 
			
		||||
							
								
								
									
										5
									
								
								.templates/mpp_js_module/ModuleGenerator.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								.templates/mpp_js_module/ModuleGenerator.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
{
 | 
			
		||||
   "module_name": "sample",
 | 
			
		||||
   "module_package": "feature.{{.module_name}}",
 | 
			
		||||
   "full_module_package": "project_group.project_name.{{.module_package}}"
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,7 @@
 | 
			
		||||
plugins {
 | 
			
		||||
    id "org.jetbrains.kotlin.multiplatform"
 | 
			
		||||
    id "org.jetbrains.kotlin.plugin.serialization"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
apply from: "$mppJsProject"
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1 @@
 | 
			
		||||
package {{.full_module_package}}
 | 
			
		||||
@@ -0,0 +1 @@
 | 
			
		||||
package {{.full_module_package}}
 | 
			
		||||
							
								
								
									
										5
									
								
								.templates/mpp_module/ModuleGenerator.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								.templates/mpp_module/ModuleGenerator.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
{
 | 
			
		||||
   "module_name": "sample",
 | 
			
		||||
   "module_package": "feature.{{.module_name}}",
 | 
			
		||||
   "full_module_package": "project_group.project_name.{{.module_package}}"
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,8 @@
 | 
			
		||||
plugins {
 | 
			
		||||
    id "org.jetbrains.kotlin.multiplatform"
 | 
			
		||||
    id "org.jetbrains.kotlin.plugin.serialization"
 | 
			
		||||
    id "com.android.library"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
apply from: "$mppProjectWithSerialization"
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1 @@
 | 
			
		||||
package {{.full_module_package}}
 | 
			
		||||
@@ -0,0 +1 @@
 | 
			
		||||
package {{.full_module_package}}
 | 
			
		||||
							
								
								
									
										18
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								README.md
									
									
									
									
									
								
							@@ -26,17 +26,21 @@ this case you must rename it in `settings.gradle` file.
 | 
			
		||||
## JVM sources in Android target
 | 
			
		||||
 | 
			
		||||
By default JVM code is not included in Android target. In case you wish to include JVM sources in Android build, use
 | 
			
		||||
next method in the end of your `build.gradle`:
 | 
			
		||||
next method in the `sourceSets` section of your `build.gradle`:
 | 
			
		||||
 | 
			
		||||
```groovy
 | 
			
		||||
enableIncludingJvmCodeInAndroidPart()
 | 
			
		||||
kotlin {
 | 
			
		||||
    sourceSets {
 | 
			
		||||
        // Some other code
 | 
			
		||||
        androidMain {
 | 
			
		||||
            // Some other code (like dependencies)
 | 
			
		||||
            dependsOn jvmMain
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
In case when you need to be sure that JVM sources are not included in Android part, use this snippet:
 | 
			
		||||
 | 
			
		||||
```groovy
 | 
			
		||||
disableIncludingJvmCodeInAndroidPart()
 | 
			
		||||
```
 | 
			
		||||
In case when you need to be sure that JVM sources are not included in Android part, just remove line with `dependsOn jvmMain`
 | 
			
		||||
 | 
			
		||||
## Types of projects
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								build.gradle
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								build.gradle
									
									
									
									
									
								
							@@ -1,6 +1,5 @@
 | 
			
		||||
buildscript {
 | 
			
		||||
    repositories {
 | 
			
		||||
        jcenter()
 | 
			
		||||
        google()
 | 
			
		||||
        mavenCentral()
 | 
			
		||||
        mavenLocal()
 | 
			
		||||
@@ -8,21 +7,19 @@ buildscript {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    dependencies {
 | 
			
		||||
        classpath 'com.android.tools.build:gradle:4.0.2'
 | 
			
		||||
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
 | 
			
		||||
        classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
 | 
			
		||||
        classpath "com.getkeepsafe.dexcount:dexcount-gradle-plugin:$dexcount_version"
 | 
			
		||||
        classpath "org.jetbrains.dokka:dokka-gradle-plugin:$dokka_version"
 | 
			
		||||
        classpath libs.android.tools.build
 | 
			
		||||
        classpath libs.android.dexcount
 | 
			
		||||
        classpath libs.kotlin.gradle.plugin
 | 
			
		||||
        classpath libs.kotlin.serialization.plugin
 | 
			
		||||
        classpath libs.kotlin.dokka.plugin
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
allprojects {
 | 
			
		||||
    repositories {
 | 
			
		||||
        mavenLocal()
 | 
			
		||||
        jcenter()
 | 
			
		||||
        mavenCentral()
 | 
			
		||||
        google()
 | 
			
		||||
        maven { url "https://kotlin.bintray.com/kotlinx" }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,66 +0,0 @@
 | 
			
		||||
apply plugin: 'com.getkeepsafe.dexcount'
 | 
			
		||||
 | 
			
		||||
android {
 | 
			
		||||
    ext {
 | 
			
		||||
        jvmKotlinFolderFile = {
 | 
			
		||||
            String sep = File.separator
 | 
			
		||||
            return new File("${project.projectDir}${sep}src${sep}jvmMain${sep}kotlin")
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        enableIncludingJvmCodeInAndroidPart = {
 | 
			
		||||
            File jvmKotlinFolder = jvmKotlinFolderFile()
 | 
			
		||||
            if (jvmKotlinFolder.exists()) {
 | 
			
		||||
                android.sourceSets.main.java.srcDirs += jvmKotlinFolder.path
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        disableIncludingJvmCodeInAndroidPart = {
 | 
			
		||||
            File jvmKotlinFolder = jvmKotlinFolderFile()
 | 
			
		||||
            String[] oldDirs = android.sourceSets.main.java.srcDirs
 | 
			
		||||
            android.sourceSets.main.java.srcDirs = []
 | 
			
		||||
            for (oldDir in oldDirs) {
 | 
			
		||||
                if (oldDir != jvmKotlinFolder.path) {
 | 
			
		||||
                    android.sourceSets.main.java.srcDirs += oldDir
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    compileSdkVersion "$android_compileSdkVersion".toInteger()
 | 
			
		||||
    buildToolsVersion "$android_buildToolsVersion"
 | 
			
		||||
 | 
			
		||||
    defaultConfig {
 | 
			
		||||
        minSdkVersion "$android_minSdkVersion".toInteger()
 | 
			
		||||
        targetSdkVersion "$android_compileSdkVersion".toInteger()
 | 
			
		||||
        versionCode "${android_code_version}".toInteger()
 | 
			
		||||
        versionName "$version"
 | 
			
		||||
    }
 | 
			
		||||
    buildTypes {
 | 
			
		||||
        release {
 | 
			
		||||
            minifyEnabled false
 | 
			
		||||
        }
 | 
			
		||||
        debug {
 | 
			
		||||
            debuggable true
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    packagingOptions {
 | 
			
		||||
        exclude 'META-INF/kotlinx-serialization-runtime.kotlin_module'
 | 
			
		||||
        exclude 'META-INF/kotlinx-serialization-cbor.kotlin_module'
 | 
			
		||||
        exclude 'META-INF/kotlinx-serialization-properties.kotlin_module'
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    compileOptions {
 | 
			
		||||
        sourceCompatibility JavaVersion.VERSION_1_8
 | 
			
		||||
        targetCompatibility JavaVersion.VERSION_1_8
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    kotlinOptions {
 | 
			
		||||
        jvmTarget = JavaVersion.VERSION_1_8.toString()
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    sourceSets {
 | 
			
		||||
        String sep = File.separator
 | 
			
		||||
        main.java.srcDirs += "src${sep}main${sep}kotlin"
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,25 +1,32 @@
 | 
			
		||||
allprojects {
 | 
			
		||||
    ext {
 | 
			
		||||
        projectByName = { String name ->
 | 
			
		||||
            for (subproject in rootProject.subprojects) {
 | 
			
		||||
                if (subproject.name == name) {
 | 
			
		||||
                    return subproject
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            return null
 | 
			
		||||
        }
 | 
			
		||||
File templatesFolder = new File("$rootProject.projectDir.absolutePath${File.separatorChar}gradle${File.separatorChar}templates")
 | 
			
		||||
 | 
			
		||||
        internalProject = { String name ->
 | 
			
		||||
            projectByName(name)
 | 
			
		||||
        }
 | 
			
		||||
Map properties = new HashMap<String, String>()
 | 
			
		||||
 | 
			
		||||
        mppProjectWithSerializationPresetPath = "${rootProject.projectDir.absolutePath}/mppProjectWithSerialization.gradle"
 | 
			
		||||
        mppJavaProjectPresetPath = "${rootProject.projectDir.absolutePath}/mppJavaProject.gradle"
 | 
			
		||||
        mppJsProjectPresetPath = "${rootProject.projectDir.absolutePath}/mppJsProject.gradle"
 | 
			
		||||
        mppAndroidProjectPresetPath = "${rootProject.projectDir.absolutePath}/mppAndroidProject.gradle"
 | 
			
		||||
 | 
			
		||||
        defaultAndroidSettingsPresetPath = "${rootProject.projectDir.absolutePath}/defaultAndroidSettings.gradle"
 | 
			
		||||
 | 
			
		||||
        // publishGradlePath = "${rootProject.projectDir.absolutePath}/publish.gradle"
 | 
			
		||||
if (templatesFolder.exists() && templatesFolder.isDirectory()) {
 | 
			
		||||
    templatesFolder.listFiles().each {
 | 
			
		||||
        properties[it.name - ".gradle"] = it.absolutePath
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
properties["projectByName"] = { name ->
 | 
			
		||||
    for (subproject in rootProject.subprojects) {
 | 
			
		||||
        if (subproject.name == name) {
 | 
			
		||||
            return subproject
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    return null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
properties["internalProject"] = { name ->
 | 
			
		||||
    projectByName("$name")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
allprojects {
 | 
			
		||||
    ext {
 | 
			
		||||
        releaseMode = (project.hasProperty('RELEASE_MODE') && project.property('RELEASE_MODE') == "true") || System.getenv('RELEASE_MODE') == "true"
 | 
			
		||||
 | 
			
		||||
        properties.forEach { k, v ->
 | 
			
		||||
            it[k] = v
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -6,25 +6,6 @@ kotlin.incremental.js=true
 | 
			
		||||
android.useAndroidX=true
 | 
			
		||||
android.enableJetifier=true
 | 
			
		||||
 | 
			
		||||
kotlin_version=1.5.0
 | 
			
		||||
kotlin_serialisation_core_version=1.2.0
 | 
			
		||||
 | 
			
		||||
# github_release_plugin_version=2.2.12
 | 
			
		||||
 | 
			
		||||
# ANDROID
 | 
			
		||||
 | 
			
		||||
android_minSdkVersion=21
 | 
			
		||||
android_compileSdkVersion=30
 | 
			
		||||
android_buildToolsVersion=30.0.2
 | 
			
		||||
dexcount_version=2.0.0
 | 
			
		||||
junit_version=4.12
 | 
			
		||||
test_ext_junit_version=1.1.2
 | 
			
		||||
espresso_core=3.3.0
 | 
			
		||||
 | 
			
		||||
# Dokka
 | 
			
		||||
 | 
			
		||||
dokka_version=1.4.30
 | 
			
		||||
 | 
			
		||||
# Project data
 | 
			
		||||
 | 
			
		||||
group=project_group
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										40
									
								
								gradle/libs.versions.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								gradle/libs.versions.toml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
			
		||||
[versions]
 | 
			
		||||
 | 
			
		||||
kotlin = "2.1.10"
 | 
			
		||||
kotlin-serialization = "1.8.0"
 | 
			
		||||
 | 
			
		||||
dokka = "2.0.0"
 | 
			
		||||
 | 
			
		||||
dexcount = "4.0.0"
 | 
			
		||||
junit_version = "4.12"
 | 
			
		||||
test_ext_junit_version = "1.2.1"
 | 
			
		||||
espresso_core = "3.6.1"
 | 
			
		||||
 | 
			
		||||
android-gradle-plugin = "8.8.0"
 | 
			
		||||
android-minSdk = "21"
 | 
			
		||||
android-compileSdk = "35"
 | 
			
		||||
android-buildTools = "35.0.0"
 | 
			
		||||
 | 
			
		||||
[libraries]
 | 
			
		||||
 | 
			
		||||
kotlin = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" }
 | 
			
		||||
kotlin-serialization = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlin-serialization" }
 | 
			
		||||
kotlin-test-common = { module = "org.jetbrains.kotlin:kotlin-test-common", version.ref = "kotlin" }
 | 
			
		||||
kotlin-test-annotations-common = { module = "org.jetbrains.kotlin:kotlin-test-annotations-common", version.ref = "kotlin" }
 | 
			
		||||
kotlin-test-junit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlin" }
 | 
			
		||||
kotlin-test-js = { module = "org.jetbrains.kotlin:kotlin-test-js", version.ref = "kotlin" }
 | 
			
		||||
android-test-junit = { module = "androidx.test.ext:junit", version.ref = "test_ext_junit_version" }
 | 
			
		||||
android-test-espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "espresso_core" }
 | 
			
		||||
 | 
			
		||||
# buildscript classpaths
 | 
			
		||||
 | 
			
		||||
android-tools-build = { module = "com.android.tools.build:gradle", version.ref = "android-gradle-plugin" }
 | 
			
		||||
android-dexcount = { module = "com.getkeepsafe.dexcount:dexcount-gradle-plugin", version.ref = "dexcount" }
 | 
			
		||||
kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
 | 
			
		||||
kotlin-serialization-plugin = { module = "org.jetbrains.kotlin:kotlin-serialization", version.ref = "kotlin" }
 | 
			
		||||
kotlin-dokka-plugin = { module = "org.jetbrains.dokka:dokka-gradle-plugin", version.ref = "dokka" }
 | 
			
		||||
 | 
			
		||||
[plugins]
 | 
			
		||||
 | 
			
		||||
kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
 | 
			
		||||
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
 | 
			
		||||
							
								
								
									
										40
									
								
								gradle/templates/defaultAndroidSettings.gradle
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								gradle/templates/defaultAndroidSettings.gradle
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
			
		||||
apply plugin: 'com.getkeepsafe.dexcount'
 | 
			
		||||
 | 
			
		||||
android {
 | 
			
		||||
    compileSdkVersion libs.versions.android.compileSdk.get().toInteger()
 | 
			
		||||
    buildToolsVersion libs.versions.android.buildTools.get()
 | 
			
		||||
 | 
			
		||||
    namespace "${group}.${project.name}"
 | 
			
		||||
 | 
			
		||||
    defaultConfig {
 | 
			
		||||
        minSdkVersion libs.versions.android.minSdk.get().toInteger()
 | 
			
		||||
        compileSdkVersion libs.versions.android.compileSdk.get().toInteger()
 | 
			
		||||
        targetSdkVersion libs.versions.android.compileSdk.get().toInteger()
 | 
			
		||||
        versionCode "${android_code_version}".toInteger()
 | 
			
		||||
        versionName "$version"
 | 
			
		||||
    }
 | 
			
		||||
    buildTypes {
 | 
			
		||||
        release {
 | 
			
		||||
            minifyEnabled false
 | 
			
		||||
        }
 | 
			
		||||
        debug {
 | 
			
		||||
            debuggable true
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    packagingOptions {
 | 
			
		||||
        exclude 'META-INF/kotlinx-serialization-runtime.kotlin_module'
 | 
			
		||||
        exclude 'META-INF/kotlinx-serialization-cbor.kotlin_module'
 | 
			
		||||
        exclude 'META-INF/kotlinx-serialization-properties.kotlin_module'
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    compileOptions {
 | 
			
		||||
        sourceCompatibility JavaVersion.VERSION_17
 | 
			
		||||
        targetCompatibility JavaVersion.VERSION_17
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    sourceSets {
 | 
			
		||||
        String sep = File.separator
 | 
			
		||||
        main.java.srcDirs += "src${sep}main${sep}kotlin"
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										39
									
								
								gradle/templates/mppAndroidProject.gradle
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								gradle/templates/mppAndroidProject.gradle
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
project.version = "$version"
 | 
			
		||||
project.group = "$group"
 | 
			
		||||
 | 
			
		||||
// apply from: "$publishGradlePath"
 | 
			
		||||
 | 
			
		||||
kotlin {
 | 
			
		||||
    androidTarget {
 | 
			
		||||
        publishAllLibraryVariants()
 | 
			
		||||
        compilations.all {
 | 
			
		||||
            kotlinOptions {
 | 
			
		||||
                jvmTarget = "17"
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    sourceSets {
 | 
			
		||||
        commonMain {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                implementation libs.kotlin
 | 
			
		||||
                api libs.kotlin.serialization
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        commonTest {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                implementation libs.kotlin.test.common
 | 
			
		||||
                implementation libs.kotlin.test.annotations.common
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        androidUnitTest {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                implementation libs.kotlin.test.junit
 | 
			
		||||
                implementation libs.android.test.junit
 | 
			
		||||
                implementation libs.android.test.espresso.core
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
apply from: "$defaultAndroidSettings"
 | 
			
		||||
							
								
								
									
										39
									
								
								gradle/templates/mppJavaProject.gradle
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								gradle/templates/mppJavaProject.gradle
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
project.version = "$version"
 | 
			
		||||
project.group = "$group"
 | 
			
		||||
 | 
			
		||||
// apply from: "$publishGradlePath"
 | 
			
		||||
 | 
			
		||||
kotlin {
 | 
			
		||||
    jvm {
 | 
			
		||||
        compilations.main {
 | 
			
		||||
            kotlinOptions {
 | 
			
		||||
                jvmTarget = "17"
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    sourceSets {
 | 
			
		||||
        commonMain {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                implementation libs.kotlin
 | 
			
		||||
                api libs.kotlin.serialization
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        commonTest {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                implementation libs.kotlin.test.common
 | 
			
		||||
                implementation libs.kotlin.test.annotations.common
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        jvmTest {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                implementation libs.kotlin.test.junit
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
java {
 | 
			
		||||
    sourceCompatibility = JavaVersion.VERSION_17
 | 
			
		||||
    targetCompatibility = JavaVersion.VERSION_17
 | 
			
		||||
}
 | 
			
		||||
@@ -4,7 +4,7 @@ project.group = "$group"
 | 
			
		||||
// apply from: "$publishGradlePath"
 | 
			
		||||
 | 
			
		||||
kotlin {
 | 
			
		||||
    js (BOTH) {
 | 
			
		||||
    js (IR) {
 | 
			
		||||
        browser()
 | 
			
		||||
        nodejs()
 | 
			
		||||
    }
 | 
			
		||||
@@ -12,19 +12,19 @@ kotlin {
 | 
			
		||||
    sourceSets {
 | 
			
		||||
        commonMain {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                implementation kotlin('stdlib')
 | 
			
		||||
                implementation libs.kotlin
 | 
			
		||||
                api libs.kotlin.serialization
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        commonTest {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                implementation kotlin('test-common')
 | 
			
		||||
                implementation kotlin('test-annotations-common')
 | 
			
		||||
                implementation libs.kotlin.test.common
 | 
			
		||||
                implementation libs.kotlin.test.annotations.common
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        jsTest {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                implementation kotlin('test-js')
 | 
			
		||||
                implementation kotlin('test-junit')
 | 
			
		||||
                implementation libs.kotlin.test.js
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
							
								
								
									
										65
									
								
								gradle/templates/mppProjectWithSerialization.gradle
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								gradle/templates/mppProjectWithSerialization.gradle
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,65 @@
 | 
			
		||||
project.version = "$version"
 | 
			
		||||
project.group = "$group"
 | 
			
		||||
 | 
			
		||||
// apply from: "$publishGradlePath"
 | 
			
		||||
 | 
			
		||||
kotlin {
 | 
			
		||||
    jvm {
 | 
			
		||||
        compilations.main {
 | 
			
		||||
            kotlinOptions {
 | 
			
		||||
                jvmTarget = "17"
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    js (IR) {
 | 
			
		||||
        browser()
 | 
			
		||||
        nodejs()
 | 
			
		||||
    }
 | 
			
		||||
    androidTarget {
 | 
			
		||||
        publishAllLibraryVariants()
 | 
			
		||||
        compilations.all {
 | 
			
		||||
            kotlinOptions {
 | 
			
		||||
                jvmTarget = "17"
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    sourceSets {
 | 
			
		||||
        commonMain {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                implementation libs.kotlin
 | 
			
		||||
                api libs.kotlin.serialization
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        commonTest {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                implementation libs.kotlin.test.common
 | 
			
		||||
                implementation libs.kotlin.test.annotations.common
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        jvmTest {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                implementation libs.kotlin.test.junit
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        jsTest {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                implementation libs.kotlin.test.js
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        androidUnitTest {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                implementation libs.kotlin.test.junit
 | 
			
		||||
                implementation libs.android.test.junit
 | 
			
		||||
                implementation libs.android.test.espresso.core
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
java {
 | 
			
		||||
    sourceCompatibility = JavaVersion.VERSION_17
 | 
			
		||||
    targetCompatibility = JavaVersion.VERSION_17
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
apply from: "$defaultAndroidSettings"
 | 
			
		||||
							
								
								
									
										2
									
								
								gradle/wrapper/gradle-wrapper.properties
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								gradle/wrapper/gradle-wrapper.properties
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
distributionBase=GRADLE_USER_HOME
 | 
			
		||||
distributionPath=wrapper/dists
 | 
			
		||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip
 | 
			
		||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip
 | 
			
		||||
zipStoreBase=GRADLE_USER_HOME
 | 
			
		||||
zipStorePath=wrapper/dists
 | 
			
		||||
 
 | 
			
		||||
@@ -4,5 +4,5 @@ plugins {
 | 
			
		||||
    id "com.android.library"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
apply from: "$mppProjectWithSerializationPresetPath"
 | 
			
		||||
apply from: "$mppProjectWithSerialization"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
package project_group
 | 
			
		||||
package project_group.project_name.lib
 | 
			
		||||
 | 
			
		||||
class Library {
 | 
			
		||||
    fun someLibraryMethod(): Boolean {
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
/*
 | 
			
		||||
 * This Kotlin source file was generated by the Gradle 'init' task.
 | 
			
		||||
 */
 | 
			
		||||
package project_group
 | 
			
		||||
package project_group.project_name.lib
 | 
			
		||||
 | 
			
		||||
import kotlin.test.Test
 | 
			
		||||
import kotlin.test.assertTrue
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
<manifest package="project_group.lib"/>
 | 
			
		||||
@@ -1,26 +0,0 @@
 | 
			
		||||
project.version = "$version"
 | 
			
		||||
project.group = "$group"
 | 
			
		||||
 | 
			
		||||
// apply from: "$publishGradlePath"
 | 
			
		||||
 | 
			
		||||
kotlin {
 | 
			
		||||
    android {
 | 
			
		||||
        publishAllLibraryVariants()
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    sourceSets {
 | 
			
		||||
        commonMain {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                implementation kotlin('stdlib')
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        commonTest {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                implementation kotlin('test-common')
 | 
			
		||||
                implementation kotlin('test-annotations-common')
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
apply from: "$defaultAndroidSettingsPresetPath"
 | 
			
		||||
@@ -1,30 +0,0 @@
 | 
			
		||||
project.version = "$version"
 | 
			
		||||
project.group = "$group"
 | 
			
		||||
 | 
			
		||||
// apply from: "$publishGradlePath"
 | 
			
		||||
 | 
			
		||||
kotlin {
 | 
			
		||||
    jvm {
 | 
			
		||||
        compilations.main.kotlinOptions.useIR = true
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    sourceSets {
 | 
			
		||||
        commonMain {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                implementation kotlin('stdlib')
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        commonTest {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                implementation kotlin('test-common')
 | 
			
		||||
                implementation kotlin('test-annotations-common')
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        jvmTest {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                implementation kotlin('test-junit')
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,52 +0,0 @@
 | 
			
		||||
project.version = "$version"
 | 
			
		||||
project.group = "$group"
 | 
			
		||||
 | 
			
		||||
// apply from: "$publishGradlePath"
 | 
			
		||||
 | 
			
		||||
kotlin {
 | 
			
		||||
    jvm {
 | 
			
		||||
        compilations.main.kotlinOptions.useIR = true
 | 
			
		||||
    }
 | 
			
		||||
    js (BOTH) {
 | 
			
		||||
        browser()
 | 
			
		||||
        nodejs()
 | 
			
		||||
    }
 | 
			
		||||
    android {
 | 
			
		||||
        publishAllLibraryVariants()
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    sourceSets {
 | 
			
		||||
        commonMain {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                implementation kotlin('stdlib')
 | 
			
		||||
                api "org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlin_serialisation_core_version"
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        commonTest {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                implementation kotlin('test-common')
 | 
			
		||||
                implementation kotlin('test-annotations-common')
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        jvmTest {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                implementation kotlin('test-junit')
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        jsTest {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                implementation kotlin('test-js')
 | 
			
		||||
                implementation kotlin('test-junit')
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        androidTest {
 | 
			
		||||
            dependencies {
 | 
			
		||||
                implementation kotlin('test-junit')
 | 
			
		||||
                implementation "androidx.test.ext:junit:$test_ext_junit_version"
 | 
			
		||||
                implementation "androidx.test.espresso:espresso-core:$espresso_core"
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
apply from: "$defaultAndroidSettingsPresetPath"
 | 
			
		||||
							
								
								
									
										6
									
								
								renovate.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								renovate.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
 | 
			
		||||
  "extends": [
 | 
			
		||||
    "config:recommended"
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
@@ -6,8 +6,8 @@ String[] includes = [
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
includes.each { originalName ->
 | 
			
		||||
    String projectDirectory = "${rootProject.projectDir.getAbsolutePath()}${originalName.replaceAll(":", File.separator)}"
 | 
			
		||||
    String projectName = "${rootProject.name}${originalName.replaceAll(":", ".")}"
 | 
			
		||||
    String projectDirectory = "${rootProject.projectDir.getAbsolutePath()}${originalName.replace(":", File.separator)}"
 | 
			
		||||
    String projectName = "${rootProject.name}${originalName.replace(":", ".")}"
 | 
			
		||||
    String projectIdentifier = ":${projectName}"
 | 
			
		||||
    include projectIdentifier
 | 
			
		||||
    ProjectDescriptor project = project(projectIdentifier)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user