convert to version catalog

This commit is contained in:
Adam Brown 2022-12-11 12:49:48 +00:00
parent f3600290c8
commit f1077efc17
33 changed files with 193 additions and 265 deletions

View File

@ -1,9 +1,7 @@
plugins {
id 'com.android.application'
id 'kotlin-android'
id "st-application-conventions"
}
applyCommonAndroidParameters(project)
applyCrashlyticsIfRelease(project)
android {
@ -70,7 +68,7 @@ if (isDebugBuild) {
}
dependencies {
coreLibraryDesugaring Dependencies.google.jdkLibs
coreLibraryDesugaring libs.android.desugar
implementation project(":features:home")
implementation project(":features:directory")
@ -98,11 +96,11 @@ dependencies {
implementation "chat-engine:matrix-chat-engine"
implementation "chat-engine.matrix:store"
implementation Dependencies.google.androidxComposeUi
implementation Dependencies.mavenCentral.ktorAndroid
implementation Dependencies.mavenCentral.sqldelightAndroid
implementation Dependencies.mavenCentral.matrixOlm
implementation libs.compose.ui
implementation libs.ktor.android
implementation libs.sqldelight.android
implementation libs.matrix.olm
implementation Dependencies.mavenCentral.kotlinSerializationJson
debugImplementation Dependencies.mavenCentral.leakCanary
implementation libs.kotlin.serialization
debugImplementation libs.leakcanary
}

View File

@ -1,16 +1,6 @@
buildscript {
apply from: "dependencies.gradle"
repositories {
Dependencies._repositories.call(it)
}
dependencies {
classpath Dependencies.google.androidGradlePlugin
classpath Dependencies.mavenCentral.kotlinGradlePlugin
classpath Dependencies.mavenCentral.sqldelightGradlePlugin
classpath Dependencies.mavenCentral.kotlinSerializationGradlePlugin
classpath Dependencies.google.firebaseCrashlyticsPlugin
}
plugins {
// alias(libs.plugins.android.application) apply false
// alias(libs.plugins.android.library) apply false
}
def launchTask = getGradle()
@ -18,107 +8,19 @@ def launchTask = getGradle()
.getTaskRequests()
.toString()
.toLowerCase()
def isReleaseBuild = launchTask.contains("release")
def isReleaseBuild = launchTask.contains("bundleRelease") || launchTask.contains("assembleRelease")
ext.isDebugBuild = !isReleaseBuild
subprojects {
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
kotlinOptions {
jvmTarget = "1.8"
freeCompilerArgs = [
'-opt-in=kotlin.contracts.ExperimentalContracts',
'-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi',
]
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
ext.applyMatrixServiceModule = { project ->
project.apply plugin: 'kotlin'
project.apply plugin: 'org.jetbrains.kotlin.plugin.serialization'
def dependencies = project.dependencies
dependencies.api project.project(":matrix:matrix")
dependencies.api project.project(":matrix:common")
dependencies.implementation project.project(":matrix:matrix-http")
dependencies.implementation Dependencies.mavenCentral.kotlinSerializationJson
}
ext.applyLibraryPlugins = { project ->
project.apply plugin: 'com.android.library'
project.apply plugin: 'kotlin-android'
}
ext.androidSdkVersion = 33
ext.applyCommonAndroidParameters = { project ->
def android = project.android
android.compileSdk androidSdkVersion
android.compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
incremental = true
}
android.defaultConfig {
minSdkVersion 24
targetSdkVersion androidSdkVersion
}
}
ext.applyLibraryModuleOptimisations = { project ->
project.android {
variantFilter { variant ->
if (variant.name == "debug") {
variant.ignore = true
}
}
buildFeatures {
buildConfig = false
dataBinding = false
aidl = false
renderScript = false
resValues = false
shaders = false
viewBinding = false
}
}
}
ext.applyCompose = { project ->
def dependencies = project.dependencies
dependencies.implementation Dependencies.google.androidxComposeUi
dependencies.implementation Dependencies.google.androidxComposeFoundation
dependencies.implementation Dependencies.google.androidxComposeMaterial
dependencies.implementation Dependencies.google.androidxComposeIconsExtended
dependencies.implementation Dependencies.google.androidxActivityCompose
def android = project.android
android.buildFeatures.compose = true
android.composeOptions {
kotlinCompilerExtensionVersion = Dependencies.google.kotlinCompilerExtensionVersion
}
}
ext.applyAndroidComposeLibraryModule = { project ->
applyAndroidLibraryModule(project)
applyCompose(project)
}
ext.applyAndroidLibraryModule = { project ->
applyLibraryPlugins(project)
applyCommonAndroidParameters(project)
applyLibraryModuleOptimisations(project)
}
ext.applyCrashlyticsIfRelease = { project ->
println("is release $isReleaseBuild")
println("is foss ${isFoss()}")
if (isReleaseBuild && !isFoss()) {
println("run craslytics")
project.apply plugin: 'com.google.firebase.crashlytics'
project.afterEvaluate {
project.tasks.withType(com.google.firebase.crashlytics.buildtools.gradle.tasks.UploadMappingFileTask).configureEach {
@ -129,20 +31,16 @@ ext.applyCrashlyticsIfRelease = { project ->
}
ext.kotlinTest = { dependencies ->
dependencies.testImplementation Dependencies.mavenCentral.kluent
dependencies.testImplementation Dependencies.mavenCentral.kotlinTest
dependencies.testImplementation "org.jetbrains.kotlin:kotlin-test-junit:1.7.20"
dependencies.testImplementation Dependencies.mavenCentral.mockk
dependencies.testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4'
dependencies.testImplementation 'org.junit.jupiter:junit-jupiter-api:5.9.1'
dependencies.testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.1'
dependencies.testImplementation libs.kluent
dependencies.testImplementation libs.kotlin.test
dependencies.testImplementation libs.mockk
dependencies.testImplementation libs.kotlin.coroutines.test
}
ext.kotlinFixtures = { dependencies ->
dependencies.testFixturesImplementation Dependencies.mavenCentral.mockk
dependencies.testFixturesImplementation Dependencies.mavenCentral.kluent
dependencies.testFixturesImplementation Dependencies.mavenCentral.kotlinCoroutinesCore
dependencies.testFixturesImplementation libs.mockk
dependencies.testFixturesImplementation libs.kluent
dependencies.testFixturesImplementation libs.kotlin.coroutines
}
ext.androidImportFixturesWorkaround = { project, fixtures ->

@ -1 +1 @@
Subproject commit 0439dc648c91af643dd480b359ce48bd11700d89
Subproject commit 3c8d06ad1c22bbca69718e9b9eef3c053b1a7c2d

View File

@ -1,12 +1,12 @@
plugins {
id 'kotlin'
alias libs.plugins.kotlin
id 'java-test-fixtures'
}
dependencies {
api Dependencies.mavenCentral.kotlinCoroutinesCore
testFixturesImplementation Dependencies.mavenCentral.kotlinCoroutinesCore
testFixturesImplementation Dependencies.mavenCentral.kluent
testFixturesImplementation Dependencies.mavenCentral.mockk
testFixturesImplementation Dependencies.mavenCentral.kotlinCoroutinesTest
api libs.kotlin.coroutines
testFixturesImplementation libs.kotlin.coroutines
testFixturesImplementation libs.kluent
testFixturesImplementation libs.mockk
testFixturesImplementation libs.kotlin.coroutines.test
}

View File

@ -1,8 +1,6 @@
ext.Dependencies = new DependenciesContainer()
ext.Dependencies.with {
_repositories = { repositories ->
repositories.google {
ext.applyRepositories = { dependencyResolutionManagement ->
dependencyResolutionManagement.repositories {
google {
content {
includeGroupByRegex "com\\.android.*"
includeGroupByRegex "com\\.google.*"
@ -10,14 +8,14 @@ ext.Dependencies.with {
}
}
repositories.maven {
maven {
url 'https://jitpack.io'
content {
includeGroup "com.github.UnifiedPush"
}
}
repositories.mavenCentral {
mavenCentral {
content {
includeGroupByRegex "org\\.jetbrains.*"
includeGroupByRegex "com\\.google.*"
@ -96,76 +94,4 @@ ext.Dependencies.with {
}
}
}
def kotlinVer = "1.7.20"
def sqldelightVer = "1.5.4"
def composeVer = "1.2.1"
def ktorVer = "2.1.3"
google = new DependenciesContainer()
google.with {
androidGradlePlugin = "com.android.tools.build:gradle:7.3.1"
androidxComposeUi = "androidx.compose.ui:ui:${composeVer}"
androidxComposeFoundation = "androidx.compose.foundation:foundation:${composeVer}"
androidxComposeMaterial = "androidx.compose.material3:material3:1.0.0-rc01"
androidxComposeIconsExtended = "androidx.compose.material:material-icons-extended:${composeVer}"
androidxActivityCompose = "androidx.activity:activity-compose:1.6.0"
kotlinCompilerExtensionVersion = "1.3.2"
firebaseCrashlyticsPlugin = "com.google.firebase:firebase-crashlytics-gradle:2.9.2"
firebaseBom = "com.google.firebase:firebase-bom:31.0.1"
jdkLibs = "com.android.tools:desugar_jdk_libs:1.1.5"
}
mavenCentral = new DependenciesContainer()
mavenCentral.with {
kotlinGradlePlugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVer}"
kotlinSerializationGradlePlugin = "org.jetbrains.kotlin:kotlin-serialization:${kotlinVer}"
kotlinSerializationJson = "org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1"
kotlinCoroutinesCore = "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4"
kotlinCoroutinesTest = 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4'
kotlinTest = "org.jetbrains.kotlin:kotlin-test-junit:${kotlinVer}"
sqldelightGradlePlugin = "com.squareup.sqldelight:gradle-plugin:${sqldelightVer}"
sqldelightAndroid = "com.squareup.sqldelight:android-driver:${sqldelightVer}"
sqldelightInMemory = "com.squareup.sqldelight:sqlite-driver:${sqldelightVer}"
leakCanary = 'com.squareup.leakcanary:leakcanary-android:2.10'
ktorAndroid = "io.ktor:ktor-client-android:${ktorVer}"
coil = "io.coil-kt:coil-compose:2.2.2"
accompanistSystemuicontroller = "com.google.accompanist:accompanist-systemuicontroller:0.27.1"
junit = "juniFt:junit:4.13.2"
kluent = "org.amshove.kluent:kluent:1.72"
mockk = 'io.mockk:mockk:1.13.2'
matrixOlm = "org.matrix.android:olm-sdk:3.2.12"
}
jitPack = new DependenciesContainer()
jitPack.with {
unifiedPush = "com.github.UnifiedPush:android-connector:2.0.1"
}
}
class DependenciesContainer extends GroovyObjectSupport {
private final Map<String, Object> storage = new HashMap<String, Object>();
@Override
Object getProperty(String name) {
return storage.get(name);
}
@Override
void setProperty(String name, Object newValue) {
storage.put(name, newValue);
}
}

View File

@ -1,7 +1,9 @@
applyAndroidComposeLibraryModule(project)
plugins {
id "st-android-compose-library-conventions"
}
dependencies {
implementation project(":core")
implementation Dependencies.mavenCentral.coil
implementation Dependencies.mavenCentral.accompanistSystemuicontroller
implementation libs.compose.coil
implementation libs.accompanist.systemuicontroller
}

View File

@ -1,4 +1,6 @@
applyAndroidComposeLibraryModule(project)
plugins {
id "st-android-compose-library-conventions"
}
dependencies {
implementation project(":core")

View File

@ -1,4 +1,6 @@
plugins { id 'kotlin' }
plugins {
alias libs.plugins.kotlin
}
dependencies {
compileOnly project(":domains:android:stub")

View File

@ -1,6 +1,8 @@
applyAndroidLibraryModule(project)
plugins {
id "st-android-library-conventions"
}
dependencies {
implementation project(":core")
implementation Dependencies.mavenCentral.coil
implementation libs.compose.coil
}

View File

@ -1,5 +1,7 @@
applyAndroidLibraryModule(project)
apply plugin: "org.jetbrains.kotlin.plugin.serialization"
plugins {
id "st-android-library-conventions"
alias libs.plugins.kotlin.serialization
}
dependencies {
implementation "chat-engine:chat-engine"
@ -9,8 +11,8 @@ dependencies {
firebase(it, "messaging")
implementation Dependencies.mavenCentral.kotlinSerializationJson
implementation Dependencies.jitPack.unifiedPush
implementation libs.kotlin.serialization
implementation libs.unifiedpush
kotlinTest(it)
testImplementation 'chat-engine:chat-engine-test'

View File

@ -1,5 +1,5 @@
plugins {
id 'kotlin'
alias libs.plugins.kotlin
id 'java-test-fixtures'
}
@ -12,7 +12,7 @@ if (localProperties.exists()) {
}
dependencies {
def androidVer = androidSdkVersion
def androidVer = 33
api files("${properties.getProperty("sdk.dir")}/platforms/android-${androidVer}/android.jar")
kotlinFixtures(it)

View File

@ -1,4 +1,6 @@
applyAndroidLibraryModule(project)
plugins {
id "st-android-library-conventions"
}
dependencies {
implementation project(':core')

View File

@ -1 +1,3 @@
plugins { id 'kotlin' }
plugins {
alias libs.plugins.kotlin
}

View File

@ -1,15 +1,15 @@
plugins {
id 'kotlin'
alias libs.plugins.kotlin
id 'java-test-fixtures'
}
dependencies {
compileOnly project(":domains:android:viewmodel-stub")
implementation Dependencies.mavenCentral.kotlinCoroutinesCore
implementation libs.kotlin.coroutines
kotlinFixtures(it)
testFixturesImplementation Dependencies.mavenCentral.kotlinCoroutinesCore
testFixturesImplementation Dependencies.mavenCentral.kotlinCoroutinesTest
testFixturesImplementation libs.kotlin.coroutines
testFixturesImplementation libs.kotlin.coroutines.test
testFixturesImplementation testFixtures(project(":core"))
testFixturesCompileOnly project(":domains:android:viewmodel-stub")
}

View File

@ -1,4 +1,6 @@
applyAndroidLibraryModule(project)
plugins {
id "st-android-library-conventions"
}
dependencies {
implementation project(':core')

View File

@ -1,4 +1,6 @@
plugins { id 'kotlin' }
plugins {
alias libs.plugins.kotlin
}
dependencies {
implementation project(':core')

View File

@ -1,7 +1,9 @@
applyAndroidLibraryModule(project)
plugins {
id "st-android-library-conventions"
}
dependencies {
implementation project(':core')
implementation platform(Dependencies.google.firebaseBom)
implementation platform(libs.firebase.bom)
implementation 'com.google.firebase:firebase-crashlytics'
}

View File

@ -1,4 +1,6 @@
applyAndroidLibraryModule(project)
plugins {
id "st-android-library-conventions"
}
dependencies {
implementation project(':core')

View File

@ -1,9 +1,11 @@
applyAndroidLibraryModule(project)
plugins {
id "st-android-library-conventions"
}
dependencies {
implementation project(':core')
implementation project(':domains:android:core')
implementation "chat-engine:chat-engine"
implementation platform('com.google.firebase:firebase-bom:29.0.3')
implementation platform(libs.firebase.bom)
implementation 'com.google.firebase:firebase-messaging'
}

View File

@ -1,7 +1,7 @@
plugins {
id 'kotlin'
id 'com.squareup.sqldelight'
id 'org.jetbrains.kotlin.plugin.serialization'
alias libs.plugins.kotlin
alias libs.plugins.kotlin.serialization
alias libs.plugins.sqldelight
id 'java-test-fixtures'
}
@ -15,9 +15,8 @@ sqldelight {
dependencies {
implementation project(":core")
implementation "chat-engine:chat-engine"
implementation Dependencies.mavenCentral.kotlinSerializationJson
implementation Dependencies.mavenCentral.kotlinCoroutinesCore
implementation "com.squareup.sqldelight:coroutines-extensions:1.5.4"
implementation libs.kotlin.serialization
implementation libs.sqldelight.extensions
kotlinFixtures(it)
testImplementation(testFixtures(project(":core")))

View File

@ -1,4 +1,6 @@
applyAndroidComposeLibraryModule(project)
plugins {
id "st-feature-conventions"
}
dependencies {
implementation project(":domains:android:compose-core")
@ -7,7 +9,7 @@ dependencies {
implementation project(":features:messenger")
implementation project(":core")
implementation project(":design-library")
implementation Dependencies.mavenCentral.coil
implementation libs.compose.coil
kotlinTest(it)

View File

@ -1,4 +1,6 @@
applyAndroidComposeLibraryModule(project)
plugins {
id "st-feature-conventions"
}
dependencies {
implementation "chat-engine:chat-engine"
@ -12,5 +14,5 @@ dependencies {
implementation 'screen-state:screen-android'
implementation project(":core")
implementation project(":design-library")
implementation Dependencies.mavenCentral.coil
implementation libs.compose.coil
}

View File

@ -1,4 +1,6 @@
applyAndroidComposeLibraryModule(project)
plugins {
id "st-feature-conventions"
}
dependencies {
implementation "chat-engine:chat-engine"

View File

@ -1,5 +1,7 @@
applyAndroidComposeLibraryModule(project)
apply plugin: 'kotlin-parcelize'
plugins {
id "st-feature-conventions"
alias libs.plugins.kotlin.parcelize
}
dependencies {
implementation "chat-engine:chat-engine"
@ -10,7 +12,7 @@ dependencies {
implementation project(":core")
implementation project(":features:navigator")
implementation project(":design-library")
implementation Dependencies.mavenCentral.coil
implementation libs.compose.coil
kotlinTest(it)

View File

@ -1,5 +1,7 @@
applyAndroidLibraryModule(project)
apply plugin: 'kotlin-parcelize'
plugins {
id "st-feature-conventions"
alias libs.plugins.kotlin.parcelize
}
dependencies {
compileOnly project(":domains:android:stub")

View File

@ -1,4 +1,6 @@
applyAndroidLibraryModule(project)
plugins {
id "st-android-library-conventions"
}
dependencies {
implementation "chat-engine:chat-engine"
@ -12,7 +14,7 @@ dependencies {
implementation project(":features:navigator")
implementation Dependencies.mavenCentral.kotlinSerializationJson
implementation libs.kotlin.serialization
kotlinTest(it)
testImplementation 'chat-engine:chat-engine-test'

View File

@ -1,4 +1,6 @@
applyAndroidComposeLibraryModule(project)
plugins {
id "st-feature-conventions"
}
dependencies {
implementation "chat-engine:chat-engine"

View File

@ -1,4 +1,6 @@
applyAndroidComposeLibraryModule(project)
plugins {
id "st-feature-conventions"
}
dependencies {
implementation "chat-engine:chat-engine"

View File

@ -1,4 +1,6 @@
applyAndroidComposeLibraryModule(project)
plugins {
id "st-feature-conventions"
}
dependencies {
implementation "chat-engine:chat-engine"

View File

@ -1,4 +1,6 @@
applyAndroidComposeLibraryModule(project)
plugins {
id "st-feature-conventions"
}
dependencies {
implementation "chat-engine:chat-engine"

59
gradle/libs.versions.toml Normal file
View File

@ -0,0 +1,59 @@
[versions]
kotlin = "1.7.20"
coroutines = "1.6.4"
sqldelight = "1.5.4"
ktor = "2.2.1"
compose = "1.2.1"
compose-compiler = "1.3.2"
android-gp = "7.3.1"
[plugins]
android-application = { id = "com.android.application", version.ref = "android-gp" }
android-library = { id = "com.android.library", version.ref = "android-gp" }
android-kotlin = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" }
crashlytics = { id = "org.jetbrains.kotlin.plugin.parcelize", version = "1.8.0-RC" }
firebase-crashlytics = { id = "com.google.firebase.crashlytics", version = "2.9.2" }
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
sqldelight = { id = "com.squareup.sqldelight", version.ref = "sqldelight" }
[libraries]
compose-ui = { group = "androidx.compose.ui", name = "ui", version.ref = "compose" }
compose-foundation = { group = "androidx.compose.foundation", name = "foundation", version.ref = "compose" }
compose-material-three = { group = "androidx.compose.material3", name = "material3", version = "1.0.0-rc01" }
compose-icons-extended = { group = "androidx.compose.material", name = "material-icons-extended", version.ref = "compose" }
compose-activity = { group = "androidx.activity", name = "activity-compose", version = "1.6.0" }
compose-coil = { group = "io.coil-kt", name = "coil-compose", version = "2.2.2" }
android-desugar = { group = "com.android.tools", name = "desugar_jdk_libs", version = "1.1.5" }
accompanist-systemuicontroller = { group = "com.google.accompanist", name = "accompanist-systemuicontroller", version = "0.27.1" }
matrix-olm = { group = "org.matrix.android", name = "olm-sdk", version = "3.2.12" }
unifiedpush = { group = "com.github.UnifiedPush", name = "android-connector", version = "2.0.1" }
firebase-bom = { module = "com.google.firebase:firebase-bom", version = "31.0.1" }
kotlin-serialization = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version = "1.4.1" }
kotlin-coroutines = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "coroutines" }
kotlin-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref = "coroutines" }
kotlin-test = { group = "org.jetbrains.kotlin", name = "kotlin-test-junit", version.ref = "kotlin" }
sqldelight-android = { group = "com.squareup.sqldelight", name = "android-driver", version.ref = "sqldelight" }
sqldelight-test = { group = "com.squareup.sqldelight", name = "sqlite-driver", version.ref = "sqldelight" }
sqldelight-extensions = { group = "com.squareup.sqldelight", name = "coroutines-extensions", version.ref = "sqldelight" }
ktor-android = { group = "io.ktor", name = "ktor-client-android", version.ref = "ktor" }
junit = { group = "junit", name = "junit", version = "4.13.2" }
kluent = { group = "org.amshove.kluent", name = "kluent", version = "1.72" }
mockk = { group = "io.mockk", name = "mockk", version = "1.13.3" }
leakcanary = { group = "com.squareup.leakcanary", name = "leakcanary-android", version = "2.10" }

@ -1 +1 @@
Subproject commit 4e92f14031cc8be907cba09b3bfc1d9dbd380072
Subproject commit adb986fdfd81011978785de08b6faf37adba08aa

View File

@ -1,9 +1,13 @@
pluginManagement {
repositories {
gradlePluginPortal()
google()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
apply from: "dependencies.gradle"
repositories {
Dependencies._repositories.call(it)
}
applyRepositories(it)
}
rootProject.name = "SmallTalk"