diff --git a/android/alerts/common/build.gradle b/android/alerts/common/build.gradle index b60575bd26f..2c4a222700d 100644 --- a/android/alerts/common/build.gradle +++ b/android/alerts/common/build.gradle @@ -10,7 +10,7 @@ kotlin { sourceSets { androidMain { dependencies { - api "androidx.appcompat:appcompat-resources:$appcompat_version" + api libs.android.appCompat.resources } } } diff --git a/android/recyclerview/build.gradle b/android/recyclerview/build.gradle index 1357ac98f51..ff5a2ee19ce 100644 --- a/android/recyclerview/build.gradle +++ b/android/recyclerview/build.gradle @@ -10,13 +10,13 @@ kotlin { sourceSets { commonMain { dependencies { - api "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_version" + api libs.kt.coroutines api project(":micro_utils.common") } } androidMain { dependencies { - api "androidx.recyclerview:recyclerview:$androidx_recycler_version" + api libs.android.recyclerView } } } diff --git a/build.gradle b/build.gradle index 3ac12d3ecec..38310db4281 100644 --- a/build.gradle +++ b/build.gradle @@ -7,12 +7,12 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:7.0.4' - 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 "com.github.breadmoirai:github-release:$github_release_plugin_version" - classpath "org.jetbrains.dokka:dokka-gradle-plugin:$dokka_version" + classpath libs.buildscript.kt.gradle + classpath libs.buildscript.kt.serialization + classpath libs.buildscript.jb.dokka + classpath libs.buildscript.gh.release + classpath libs.buildscript.android.gradle + classpath libs.buildscript.android.dexcount } } diff --git a/coroutines/build.gradle b/coroutines/build.gradle index 840c8f52822..c614db7e76c 100644 --- a/coroutines/build.gradle +++ b/coroutines/build.gradle @@ -10,12 +10,12 @@ kotlin { sourceSets { commonMain { dependencies { - api "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_version" + api libs.kt.coroutines } } androidMain { dependencies { - api "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutines_version" + api libs.kt.coroutines.android } } } diff --git a/defaultAndroidSettings.gradle b/defaultAndroidSettings.gradle index 276131ff612..6f0376b46af 100644 --- a/defaultAndroidSettings.gradle +++ b/defaultAndroidSettings.gradle @@ -26,12 +26,12 @@ ext { } android { - compileSdkVersion "$android_compileSdkVersion".toInteger() - buildToolsVersion "$android_buildToolsVersion" + compileSdkVersion libs.versions.android.props.compileSdk.get().toInteger() + buildToolsVersion libs.versions.android.props.buildTools.get() defaultConfig { - minSdkVersion "$android_minSdkVersion".toInteger() - targetSdkVersion "$android_compileSdkVersion".toInteger() + minSdkVersion libs.versions.android.props.minSdk.get().toInteger() + targetSdkVersion libs.versions.android.props.compileSdk.get().toInteger() versionCode "${android_code_version}".toInteger() versionName "$version" } diff --git a/gradle.properties b/gradle.properties index 9da7f1dba37..bf5149f9b48 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,41 +7,10 @@ android.useAndroidX=true android.enableJetifier=true org.gradle.jvmargs=-Xmx2g -kotlin_version=1.6.10 -kotlin_coroutines_version=1.6.0 -kotlin_serialisation_core_version=1.3.2 -kotlin_exposed_version=0.37.3 - -ktor_version=1.6.7 - -klockVersion=2.6.2 - -github_release_plugin_version=2.2.12 - -uuidVersion=0.4.0 - -# ANDROID - -core_ktx_version=1.7.0 -androidx_recycler_version=1.2.1 -appcompat_version=1.4.1 - -android_minSdkVersion=19 -android_compileSdkVersion=32 -android_buildToolsVersion=32.0.0 -dexcount_version=3.0.1 -junit_version=4.12 -test_ext_junit_version=1.1.2 -espresso_core=3.3.0 - # JS NPM crypto_js_version=4.1.1 -# Dokka - -dokka_version=1.6.10 - # Project data group=dev.inmo diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 00000000000..5219d007752 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,78 @@ +[versions] + +kt = "1.6.10" +kt-serialization = "1.3.2" +kt-coroutines = "1.6.0" + +jb-compose = "1.1.0" +jb-exposed = "0.37.3" +jb-dokka = "1.6.10" + +klock = "2.6.2" +uuid = "0.4.0" + +ktor = "1.6.7" + +gh-release = "2.2.12" + +android-gradle = "7.0.4" +dexcount = "3.0.1" + +android-coreKtx = "1.7.0" +android-recyclerView = "1.2.1" +android-appCompat = "1.4.1" +android-espresso = "3.3.0" +android-test = "1.1.2" + +android-props-minSdk = "19" +android-props-compileSdk = "32" +android-props-buildTools = "32.0.0" + +[libraries] + +kt-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kt" } + +kt-serialization = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kt-serialization" } +kt-serialization-cbor = { module = "org.jetbrains.kotlinx:kotlinx-serialization-cbor", version.ref = "kt-serialization" } + +kt-coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kt-coroutines" } +kt-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "kt-coroutines" } + + +ktor-client = { module = "io.ktor:ktor-client-core", version.ref = "ktor" } +ktor-client-java = { module = "io.ktor:ktor-client-java", version.ref = "ktor" } +ktor-server = { module = "io.ktor:ktor-server", version.ref = "ktor" } +ktor-server-cio = { module = "io.ktor:ktor-server-cio", version.ref = "ktor" } +ktor-server-host-common = { module = "io.ktor:ktor-server-host-common", version.ref = "ktor" } +ktor-websockets = { module = "io.ktor:ktor-websockets", version.ref = "ktor" } + + +klock = { module = "com.soywiz.korlibs.klock:klock", version.ref = "klock" } +uuid = { module = "com.benasher44:uuid", version.ref = "uuid" } + + +jb-exposed = { module = "org.jetbrains.exposed:exposed-core", version.ref = "jb-exposed" } + + +android-coreKtx = { module = "androidx.core:core-ktx", version.ref = "android-coreKtx" } +android-recyclerView = { module = "androidx.recyclerview:recyclerview", version.ref = "android-recyclerView" } +android-appCompat-resources = { module = "androidx.appcompat:appcompat-resources", version.ref = "android-appCompat" } +android-espresso = { module = "androidx.test.espresso:espresso-core", version.ref = "android-espresso" } +android-test-junit = { module = "androidx.test.ext:junit", version.ref = "android-test" } + + +kt-test-js = { module = "org.jetbrains.kotlin:kotlin-test-js", version.ref = "kt" } +kt-test-junit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kt" } + + +buildscript-kt-gradle = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kt" } +buildscript-kt-serialization = { module = "org.jetbrains.kotlin:kotlin-serialization", version.ref = "kt" } +buildscript-jb-dokka = { module = "org.jetbrains.dokka:dokka-gradle-plugin", version.ref = "jb-dokka" } +buildscript-gh-release = { module = "com.github.breadmoirai:github-release", version.ref = "gh-release" } +buildscript-android-gradle = { module = "com.android.tools.build:gradle", version.ref = "android-gradle" } +buildscript-android-dexcount = { module = "com.getkeepsafe.dexcount:dexcount-gradle-plugin", version.ref = "dexcount" } + +[plugins] + +kt-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kt" } +jb-compose = { id = "org.jetbrains.compose", version.ref = "jb-compose" } diff --git a/ktor/client/build.gradle b/ktor/client/build.gradle index 7b24b0efa3f..19c17926dfe 100644 --- a/ktor/client/build.gradle +++ b/ktor/client/build.gradle @@ -12,7 +12,7 @@ kotlin { dependencies { api internalProject("micro_utils.ktor.common") api internalProject("micro_utils.coroutines") - api "io.ktor:ktor-client-core:$ktor_version" + api libs.ktor.client } } } diff --git a/ktor/common/build.gradle b/ktor/common/build.gradle index b07a884bf17..ad2dd123f61 100644 --- a/ktor/common/build.gradle +++ b/ktor/common/build.gradle @@ -11,8 +11,8 @@ kotlin { commonMain { dependencies { api internalProject("micro_utils.common") - api "org.jetbrains.kotlinx:kotlinx-serialization-cbor:$kotlin_serialisation_core_version" - api "com.soywiz.korlibs.klock:klock:$klockVersion" + api libs.kt.serialization.cbor + api libs.klock } } } diff --git a/ktor/server/build.gradle b/ktor/server/build.gradle index 7e17189e74b..ecf783c0bb2 100644 --- a/ktor/server/build.gradle +++ b/ktor/server/build.gradle @@ -16,10 +16,10 @@ kotlin { jvmMain { dependencies { - api "io.ktor:ktor-server:$ktor_version" - api "io.ktor:ktor-server-cio:$ktor_version" - api "io.ktor:ktor-server-host-common:$ktor_version" - api "io.ktor:ktor-websockets:$ktor_version" + api libs.ktor.server + api libs.ktor.server.cio + api libs.ktor.server.host.common + api libs.ktor.websockets } } } diff --git a/language_codes/generator/build.gradle b/language_codes/generator/build.gradle index 385e6f1c4e0..4b3027381f8 100644 --- a/language_codes/generator/build.gradle +++ b/language_codes/generator/build.gradle @@ -4,8 +4,8 @@ buildscript { } dependencies { - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version" + classpath libs.buildscript.kt.gradle + classpath libs.buildscript.kt.serialization } } @@ -16,11 +16,11 @@ plugins { } dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlin_serialisation_core_version" + implementation libs.kt.stdlib + implementation libs.kt.serialization - implementation "io.ktor:ktor-client-core:$ktor_version" - implementation "io.ktor:ktor-client-java:$ktor_version" + implementation libs.ktor.client + implementation libs.ktor.client.java } mainClassName="MainKt" diff --git a/mppProjectWithSerialization.gradle b/mppProjectWithSerialization.gradle index 073b502c5b1..615ec80d132 100644 --- a/mppProjectWithSerialization.gradle +++ b/mppProjectWithSerialization.gradle @@ -23,7 +23,7 @@ kotlin { commonMain { dependencies { implementation kotlin('stdlib') - api "org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlin_serialisation_core_version" + implementation libs.kt.serialization } } commonTest { @@ -46,8 +46,8 @@ kotlin { androidTest { dependencies { implementation kotlin('test-junit') - implementation "androidx.test.ext:junit:$test_ext_junit_version" - implementation "androidx.test.espresso:espresso-core:$espresso_core" + implementation libs.android.test.junit + implementation libs.android.espresso } } } diff --git a/pagination/exposed/build.gradle b/pagination/exposed/build.gradle index e89fe5afe6d..cb7043ff2c5 100644 --- a/pagination/exposed/build.gradle +++ b/pagination/exposed/build.gradle @@ -14,7 +14,7 @@ kotlin { } jvmMain { dependencies { - api "org.jetbrains.exposed:exposed-core:$kotlin_exposed_version" + api libs.jb.exposed } } } diff --git a/pagination/ktor/server/build.gradle b/pagination/ktor/server/build.gradle index 5812c31b6df..265848cb1ea 100644 --- a/pagination/ktor/server/build.gradle +++ b/pagination/ktor/server/build.gradle @@ -15,8 +15,8 @@ kotlin { jvmMain { dependencies { - api "io.ktor:ktor-server:$ktor_version" - api "io.ktor:ktor-server-host-common:$ktor_version" + api libs.ktor.server + api libs.ktor.server.host.common } } } diff --git a/repos/common/build.gradle b/repos/common/build.gradle index acc9dcb0875..7a315ab290a 100644 --- a/repos/common/build.gradle +++ b/repos/common/build.gradle @@ -10,10 +10,10 @@ kotlin { sourceSets { commonMain { dependencies { - api "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_version" + api libs.kt.coroutines api internalProject("micro_utils.pagination.common") - api "com.benasher44:uuid:$uuidVersion" + api libs.uuid } } @@ -24,7 +24,7 @@ kotlin { } androidMain { dependencies { - api "androidx.core:core-ktx:$core_ktx_version" + api libs.android.coreKtx api internalProject("micro_utils.common") api internalProject("micro_utils.coroutines") } diff --git a/selector/common/build.gradle b/selector/common/build.gradle index 74d1ba46f61..988d2067495 100644 --- a/selector/common/build.gradle +++ b/selector/common/build.gradle @@ -10,8 +10,8 @@ kotlin { sourceSets { commonMain { dependencies { - api "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_version" + api libs.kt.coroutines } } } -} \ No newline at end of file +} diff --git a/settings.gradle b/settings.gradle index 323f588ee48..0c7df486ea5 100644 --- a/settings.gradle +++ b/settings.gradle @@ -38,11 +38,13 @@ 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) project.name = projectName project.projectDir = new File(projectDirectory) } + +enableFeaturePreview("VERSION_CATALOGS")