mirror of
https://github.com/InsanusMokrassar/KotlinMultiplatformProjectTemplate.git
synced 2025-09-02 22:59:44 +00:00
Compare commits
115 Commits
kotlin/1.5
...
renovate/a
Author | SHA1 | Date | |
---|---|---|---|
|
9e7bc5e1d4 | ||
373906e156 | |||
5fe23903a4 | |||
|
ecf1238085 | ||
fdde796281 | |||
|
4cc23d72bf | ||
b29e381ee3 | |||
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
|
||||
|
43
gradle/libs.versions.toml
Normal file
43
gradle/libs.versions.toml
Normal file
@@ -0,0 +1,43 @@
|
||||
[versions]
|
||||
|
||||
kotlin = "2.1.20"
|
||||
kotlin-serialization = "1.8.1"
|
||||
kotlin-coroutines = "1.10.2"
|
||||
|
||||
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.13.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-coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlin-coroutines" }
|
||||
kotlin-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlin-coroutines" }
|
||||
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 = { 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" }
|
34
gradle/templates/defaultAndroidSettings.gradle
Normal file
34
gradle/templates/defaultAndroidSettings.gradle
Normal file
@@ -0,0 +1,34 @@
|
||||
apply plugin: 'com.getkeepsafe.dexcount'
|
||||
|
||||
android {
|
||||
compileSdkVersion libs.versions.android.compileSdk.get().toInteger()
|
||||
buildToolsVersion libs.versions.android.buildTools.get()
|
||||
|
||||
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"
|
||||
namespace "${project.group}.${project.name}"
|
||||
}
|
||||
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
|
||||
}
|
||||
}
|
@@ -1,13 +1,7 @@
|
||||
project.version = "$version"
|
||||
project.group = "$group"
|
||||
|
||||
// apply from: "$publishGradlePath"
|
||||
|
||||
kotlin {
|
||||
android {
|
||||
publishAllLibraryVariants()
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
commonMain {
|
||||
dependencies {
|
||||
@@ -18,9 +12,13 @@ kotlin {
|
||||
dependencies {
|
||||
implementation kotlin('test-common')
|
||||
implementation kotlin('test-annotations-common')
|
||||
implementation libs.kotlin.coroutines.test
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
apply from: "$defaultAndroidSettingsPresetPath"
|
||||
java {
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
}
|
@@ -1,30 +1,25 @@
|
||||
project.version = "$version"
|
||||
project.group = "$group"
|
||||
|
||||
// apply from: "$publishGradlePath"
|
||||
|
||||
kotlin {
|
||||
jvm {
|
||||
compilations.main.kotlinOptions.useIR = true
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
commonMain {
|
||||
dependencies {
|
||||
implementation kotlin('stdlib')
|
||||
api libs.kotlin.serialization
|
||||
}
|
||||
}
|
||||
commonTest {
|
||||
dependencies {
|
||||
implementation kotlin('test-common')
|
||||
implementation kotlin('test-annotations-common')
|
||||
}
|
||||
}
|
||||
|
||||
jvmTest {
|
||||
dependencies {
|
||||
implementation kotlin('test-junit')
|
||||
implementation libs.kotlin.coroutines.test
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
java {
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
}
|
31
gradle/templates/enableMPPAndroid.gradle
Normal file
31
gradle/templates/enableMPPAndroid.gradle
Normal file
@@ -0,0 +1,31 @@
|
||||
kotlin {
|
||||
androidTarget {
|
||||
publishAllLibraryVariants()
|
||||
compilations.all {
|
||||
kotlinOptions {
|
||||
jvmTarget = "17"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
androidUnitTest {
|
||||
dependencies {
|
||||
implementation kotlin('test-junit')
|
||||
implementation libs.android.test.junit
|
||||
implementation libs.android.test.espresso
|
||||
}
|
||||
}
|
||||
androidInstrumentedTest {
|
||||
dependencies {
|
||||
implementation kotlin('test-junit')
|
||||
implementation libs.android.test.junit
|
||||
implementation libs.android.test.espresso
|
||||
}
|
||||
}
|
||||
|
||||
androidMain.dependsOn jvmMain
|
||||
}
|
||||
}
|
||||
|
||||
apply from: "$defaultAndroidSettings"
|
30
gradle/templates/enableMPPJs.gradle
Normal file
30
gradle/templates/enableMPPJs.gradle
Normal file
@@ -0,0 +1,30 @@
|
||||
kotlin {
|
||||
js (IR) {
|
||||
browser {
|
||||
testTask {
|
||||
useMocha {
|
||||
timeout = "240000"
|
||||
}
|
||||
}
|
||||
}
|
||||
nodejs {
|
||||
testTask {
|
||||
useMocha {
|
||||
timeout = "240000"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
jsMain {
|
||||
dependencies {
|
||||
}
|
||||
}
|
||||
jsTest {
|
||||
dependencies {
|
||||
implementation kotlin('test-js')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
21
gradle/templates/enableMPPJvm.gradle
Normal file
21
gradle/templates/enableMPPJvm.gradle
Normal file
@@ -0,0 +1,21 @@
|
||||
kotlin {
|
||||
jvm {
|
||||
compilations.main {
|
||||
kotlinOptions {
|
||||
jvmTarget = "17"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
jvmMain {
|
||||
dependencies {
|
||||
}
|
||||
}
|
||||
jvmTest {
|
||||
dependencies {
|
||||
implementation kotlin('test-junit')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
8
gradle/templates/enableMPPNativeArm64.gradle
Normal file
8
gradle/templates/enableMPPNativeArm64.gradle
Normal file
@@ -0,0 +1,8 @@
|
||||
kotlin {
|
||||
linuxArm64()
|
||||
|
||||
sourceSets {
|
||||
nativeMain.dependsOn commonMain
|
||||
linuxArm64Main.dependsOn nativeMain
|
||||
}
|
||||
}
|
10
gradle/templates/enableMPPNativeX64.gradle
Normal file
10
gradle/templates/enableMPPNativeX64.gradle
Normal file
@@ -0,0 +1,10 @@
|
||||
kotlin {
|
||||
linuxX64()
|
||||
mingwX64()
|
||||
|
||||
sourceSets {
|
||||
nativeMain.dependsOn commonMain
|
||||
linuxX64Main.dependsOn nativeMain
|
||||
mingwX64Main.dependsOn nativeMain
|
||||
}
|
||||
}
|
27
gradle/templates/enableMPPWasmJs.gradle
Normal file
27
gradle/templates/enableMPPWasmJs.gradle
Normal file
@@ -0,0 +1,27 @@
|
||||
kotlin {
|
||||
wasmJs {
|
||||
browser {
|
||||
testTask {
|
||||
useKarma {
|
||||
useChromeHeadless()
|
||||
useConfigDirectory(rootProject.relativeProjectPath("gradle/karma.config.d"))
|
||||
}
|
||||
}
|
||||
}
|
||||
nodejs {
|
||||
testTask {
|
||||
timeout = Duration.ofSeconds(240)
|
||||
nodeJsArgs.add("--unhandled-rejections=warn")
|
||||
nodeJsArgs.add("--trace-warnings")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
wasmJsTest {
|
||||
dependencies {
|
||||
implementation kotlin('test-wasm-js')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
5
gradle/templates/mppAndroidProject.gradle
Normal file
5
gradle/templates/mppAndroidProject.gradle
Normal file
@@ -0,0 +1,5 @@
|
||||
apply from: "$defaultProject"
|
||||
apply from: "$enableMPPJvm"
|
||||
apply from: "$enableMPPJs"
|
||||
apply from: "$enableMPPWasmJs"
|
||||
apply from: "$enableMPPAndroid"
|
2
gradle/templates/mppJavaProject.gradle
Normal file
2
gradle/templates/mppJavaProject.gradle
Normal file
@@ -0,0 +1,2 @@
|
||||
apply from: "$defaultProject"
|
||||
apply from: "$enableMPPJvm"
|
2
gradle/templates/mppJsProject.gradle
Normal file
2
gradle/templates/mppJsProject.gradle
Normal file
@@ -0,0 +1,2 @@
|
||||
apply from: "$defaultProject"
|
||||
apply from: "$enableMPPJs"
|
5
gradle/templates/mppProjectWithSerialization.gradle
Normal file
5
gradle/templates/mppProjectWithSerialization.gradle
Normal file
@@ -0,0 +1,5 @@
|
||||
apply from: "$defaultProjectWithSerialization"
|
||||
apply from: "$enableMPPJvm"
|
||||
apply from: "$enableMPPJs"
|
||||
apply from: "$enableMPPWasmJs"
|
||||
apply from: "$enableMPPAndroid"
|
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.13-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,31 +0,0 @@
|
||||
project.version = "$version"
|
||||
project.group = "$group"
|
||||
|
||||
// apply from: "$publishGradlePath"
|
||||
|
||||
kotlin {
|
||||
js (BOTH) {
|
||||
browser()
|
||||
nodejs()
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
commonMain {
|
||||
dependencies {
|
||||
implementation kotlin('stdlib')
|
||||
}
|
||||
}
|
||||
commonTest {
|
||||
dependencies {
|
||||
implementation kotlin('test-common')
|
||||
implementation kotlin('test-annotations-common')
|
||||
}
|
||||
}
|
||||
jsTest {
|
||||
dependencies {
|
||||
implementation kotlin('test-js')
|
||||
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