From 371d3f1f6f4ca09c7ba97ea03a8d206425f13888 Mon Sep 17 00:00:00 2001 From: Shane Thompson Date: Thu, 20 Jun 2024 12:43:49 -0600 Subject: [PATCH] Updated kiteui to use versions catalog. --- build.gradle.kts | 89 +++++++++++++++++----------- buildSrc/settings.gradle.kts | 1 - example-app-android/build.gradle.kts | 12 ++-- example-app/build.gradle.kts | 35 ++++++----- gradle-plugin/build.gradle.kts | 17 +----- gradle/libs.versions.toml | 84 ++++++++++++++++++++++++++ library/build.gradle.kts | 56 +++++++++-------- library/library.podspec | 4 +- processor/build.gradle.kts | 13 ++-- settings.gradle.kts | 15 +++-- 10 files changed, 209 insertions(+), 117 deletions(-) create mode 100644 gradle/libs.versions.toml diff --git a/build.gradle.kts b/build.gradle.kts index bf8e9fce..c30526e2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,40 +2,59 @@ group = "com.lightningkite.kiteui" version = "1.0-SNAPSHOT" -buildscript { - val kotlinVersion:String by extra - repositories { -// mavenLocal() -// maven(url = "https://s01.oss.sonatype.org/content/repositories/snapshots/") - maven(url = "https://s01.oss.sonatype.org/content/repositories/releases/") - google() - mavenCentral() - maven("https://jitpack.io") - } - dependencies { - classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") - classpath("org.jetbrains.kotlin:kotlin-serialization:$kotlinVersion") - classpath("org.jetbrains.dokka:dokka-gradle-plugin:1.9.10") - classpath("com.lightningkite:deploy-helpers:0.0.7") - classpath("com.android.tools.build:gradle:7.4.2") - } +plugins { + alias(libs.plugins.dokka) apply false + alias(libs.plugins.kotlinJvm) apply false + alias(libs.plugins.kotlinAndroid) apply false + alias(libs.plugins.ksp) apply false + alias(libs.plugins.kotlinSerialization) apply false + alias(libs.plugins.androidApplication) apply false + alias(libs.plugins.androidLibrary) apply false + alias(libs.plugins.kotlinMultiplatform) apply false + alias(libs.plugins.kiteUI) apply false + alias(libs.plugins.kotlinCocoapods) apply false +// alias(libs.plugins.lkDeployHelpers) } -allprojects { - group = "com.lightningkite.kiteui" - repositories { - mavenLocal() - maven("https://jitpack.io") -// maven(url = "https://s01.oss.sonatype.org/content/repositories/snapshots/") - maven(url = "https://s01.oss.sonatype.org/content/repositories/releases/") - google() - mavenCentral() - } + +buildscript { + dependencies { classpath(libs.lkDeployHelpers) } } -repositories { - mavenLocal() - maven("https://jitpack.io") - maven(url = "https://s01.oss.sonatype.org/content/repositories/snapshots/") - maven(url = "https://s01.oss.sonatype.org/content/repositories/releases/") - google() - mavenCentral() -} \ No newline at end of file + +//kotlin("plugin.serialization") version kotlinVersion +//id("com.google.devtools.ksp") version kspVersion +//id("com.lightningkite.kiteui") version "main-SNAPSHOT" + +//buildscript { +// val kotlinVersion:String by extra +// repositories { +// mavenLocal() +// google() +// mavenCentral() +// maven("https://jitpack.io") +// } +// dependencies { +// classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") +// classpath("org.jetbrains.kotlin:kotlin-serialization:$kotlinVersion") +// classpath("org.jetbrains.dokka:dokka-gradle-plugin:1.9.10") +// classpath("com.lightningkite:deploy-helpers:0.0.7") +// classpath("com.android.tools.build:gradle:7.4.2") +// } +//} +//allprojects { +// group = "com.lightningkite.kiteui" +// repositories { +// mavenLocal() +//// maven(url = "https://s01.oss.sonatype.org/content/repositories/snapshots/") +// maven(url = "https://s01.oss.sonatype.org/content/repositories/releases/") +// google() +// mavenCentral() +// } +//} +//repositories { +// mavenLocal() +// maven("https://jitpack.io") +// maven(url = "https://s01.oss.sonatype.org/content/repositories/snapshots/") +// maven(url = "https://s01.oss.sonatype.org/content/repositories/releases/") +// google() +// mavenCentral() +//} \ No newline at end of file diff --git a/buildSrc/settings.gradle.kts b/buildSrc/settings.gradle.kts index 368e0488..29744ec1 100644 --- a/buildSrc/settings.gradle.kts +++ b/buildSrc/settings.gradle.kts @@ -1,2 +1 @@ - rootProject.name = "buildSrc" diff --git a/example-app-android/build.gradle.kts b/example-app-android/build.gradle.kts index 28409616..963702f7 100644 --- a/example-app-android/build.gradle.kts +++ b/example-app-android/build.gradle.kts @@ -1,6 +1,6 @@ plugins { - id("com.android.application") - id("org.jetbrains.kotlin.android") + alias(libs.plugins.androidApplication) + alias(libs.plugins.kotlinAndroid) } android { @@ -30,10 +30,10 @@ android { val okHttpVersion: String = "4.11.0" dependencies { - implementation("androidx.appcompat:appcompat:1.6.1") + implementation(libs.appCompat) implementation(project(":library")) api(project(":example-app")) - testImplementation("junit:junit:4.13.2") - implementation(platform("com.squareup.okhttp3:okhttp-bom:$okHttpVersion")) - implementation("com.squareup.okhttp3:okhttp") + testImplementation(libs.kotlinTest) + implementation(project.dependencies.platform(libs.okhttpBom)) + implementation(libs.okhttp) } \ No newline at end of file diff --git a/example-app/build.gradle.kts b/example-app/build.gradle.kts index 97fc5349..e28f8b66 100644 --- a/example-app/build.gradle.kts +++ b/example-app/build.gradle.kts @@ -3,31 +3,32 @@ import com.lightningkite.kiteui.KiteUiPluginExtension import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.plugin.mpp.BitcodeEmbeddingMode import org.jetbrains.kotlin.gradle.plugin.mpp.NativeBuildType -import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig import java.util.* plugins { - kotlin("multiplatform") - kotlin("plugin.serialization") - id("com.google.devtools.ksp") - kotlin("native.cocoapods") - id("com.android.library") + alias(libs.plugins.kotlinMultiplatform) + alias(libs.plugins.kotlinSerialization) + alias(libs.plugins.ksp) + alias(libs.plugins.kotlinCocoapods) + alias(libs.plugins.androidLibrary) } + apply() group = "com.lightningkite" version = "1.0-SNAPSHOT" -repositories { - mavenCentral() -} - @OptIn(ExperimentalKotlinGradlePluginApi::class) kotlin { applyDefaultHierarchyTemplate() - jvm() - androidTarget() + androidTarget { + compilations.all { + kotlinOptions { + jvmTarget = "17" + } + } + } iosX64() iosArm64() iosSimulatorArm64() @@ -144,17 +145,19 @@ android { sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") compileSdk = 31 - defaultConfig { - minSdk = 26 - } compileOptions { // Flag to enable support for the new language APIs isCoreLibraryDesugaringEnabled = true sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } + dependencies { - coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.3") + coreLibraryDesugaring(libs.jdkDesugar) + } + + defaultConfig { + minSdk = 26 } } diff --git a/gradle-plugin/build.gradle.kts b/gradle-plugin/build.gradle.kts index 9faf6884..90079f01 100644 --- a/gradle-plugin/build.gradle.kts +++ b/gradle-plugin/build.gradle.kts @@ -8,20 +8,7 @@ plugins { `kotlin-dsl` signing `maven-publish` - id("org.jetbrains.dokka") -} - -buildscript { - repositories { - mavenLocal() - maven(url = "https://s01.oss.sonatype.org/content/repositories/snapshots/") - maven(url = "https://s01.oss.sonatype.org/content/repositories/releases/") - google() - mavenCentral() - } - dependencies { - classpath("com.lightningkite:deploy-helpers:master-SNAPSHOT") - } + alias(libs.plugins.dokka) } gradlePlugin { @@ -37,7 +24,7 @@ repositories { mavenCentral() } dependencies { - implementation("org.apache.pdfbox:fontbox:2.0.27") + implementation(libs.fontBox) } tasks.validatePlugins { enableStricterValidation.set(true) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 00000000..11f3f62c --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,84 @@ +[versions] +kotlin = "1.9.23" +ksp = "1.9.23-1.0.19" +agp = "8.2.0" +lightningserver = "version-2-SNAPSHOT" +kiteUI = "main-SNAPSHOT" +jdkDesugar = "2.0.4" +dokka = "1.9.20" +kotlinx-coroutines = "1.8.1" +lkDeployHelpers = "0.0.7" +androidxCardView = "1.0.0" +androidxTransition = "1.4.1" +androidxMedia3 = "1.2.1" +appCompat = "1.6.1" +recyclerView = "1.3.2" +material = "1.11.0" +ktor = "2.3.7" +timber = "5.0.1" +glide = "5.0.0-rc01" +touchImageView = "3.6" +kotlinxSerializationLibs = "1.6.3" +kotlinxDateTime = "0.5.0" +apacheCommonsLang = "3.12.0" +fontBox = "2.0.27" +okhttp = "4.11.0" + +[libraries] +kotlinTest = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" } +kotlinTestJunit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlin" } +lkServerCore = { module = "com.lightningkite.lightningserver:server-core", version.ref = "lightningserver" } +lkServerClient = { module = "com.lightningkite.lightningserver:client", version.ref = "lightningserver" } +lkServerMongo = { module = "com.lightningkite.lightningserver:server-mongo", version.ref = "lightningserver" } +lkServerSentry = { module = "com.lightningkite.lightningserver:server-sentry", version.ref = "lightningserver" } +lkServerShared = { module = "com.lightningkite.lightningserver:shared", version.ref = "lightningserver"} +coroutinesCore = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" } +kotlinCompiler = { module = "org.jetbrains.kotlin:kotlin-compiler", version.ref = "kotlin" } +kotlinStdLib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" } +kspSymbolProcessing = { module = "com.google.devtools.ksp:symbol-processing-api", version.ref="ksp"} +fontBox = { module = "org.apache.odfbox:fontbox", version.ref = "fontBox" } +okhttpBom = { module = "com.squareup.okhttp3:okhttp-bom", version.ref = "okhttp" } +okhttp = { module = "com.squareup.okhttp3:okhttp" } + +apacheCommonsLang = { module = "org.apache.commons:commons-lang", version.ref = "apacheCommonsLang" } + +appCompat = { module = "androidx.appcompat:appcompat", version.ref = "appCompat" } +recyclerView = { module = "androidx.recyclerview:recyclerview", version.ref = "recyclerView" } +material = { module = "com.google.android.material:material", version.ref = "material" } + +kotlinxJson = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerializationLibs"} +kotlinxProperties = { module = "org.jetbrains.kotlinx:kotlinx-serialization-properties", version.ref = "kotlinxSerializationLibs"} +kotlinxDateTime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinxDateTime"} + +transition = { module = "androidx.transition:transition", version.ref = "androidxTransition"} +cardView = { module = "androidx.cardview:cardview", version.ref = "androidxCardView" } +timber = { module = "com.jakewharton.timber:timber", version.ref = "timber"} +glide = { module = "com.github.bumptech.glide:glide", version.ref = "glide" } +touchImageView = { module = "com.github.MikeOrtiz:TouchImageView", version.ref = "touchImageView" } +ktorClientCore = { module = "io.ktor:ktor-client-core", version.ref = "ktor" } +ktorClientCio = { module = "io.ktor:ktor-client-cio", version.ref = "ktor" } +ktorClientWebsockets = { module = "io.ktor:ktor-client-websockets", version.ref = "ktor" } +ktorClientDarwin = { module = "io.ktor:ktor-client-darwin", version.ref = "ktor"} +androidxMedia3Common = { module = "androidx.media3:media3-common", version.ref = "androidxMedia3" } +androidxMedia3ExoPLayer = { module = "androidx.media3:media3-exoplayer", version.ref = "androidxMedia3" } +androidxMedia3UI = { module = "androidx.media3:media3-ui", version.ref = "androidxMedia3" } + +lkServerKtor = { module = "com.lightningkite.lightningserver:server-ktor", version.ref = "lightningserver" } +lkServerProcessor = { module = "com.lightningkite.lightningserver:processor", version.ref = "lightningserver" } +kiteUI = { module = "com.lightningkite.kiteui:library", version.ref = "kiteUI" } +kiteUIProcessor = { module = "com.lightningkite.kiteui:processor", version.ref = "kiteUI" } +jdkDesugar = { module = "com.android.tools:desugar_jdk_libs", version.ref = "jdkDesugar" } +lkDeployHelpers = { module = "com.lightningkite:deploy-helpers", version.ref = "lkDeployHelpers" } + +[plugins] +dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" } +kotlinJvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } +kotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } +kotlinSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } +androidApplication = { id = "com.android.application", version.ref = "agp"} +androidLibrary = { id = "com.android.library", version.ref = "agp" } +kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } +kiteUI = { id = "com.lightningkite.kiteui", version.ref = "kiteUI"} +kotlinCocoapods = { id = "org.jetbrains.kotlin.native.cocoapods", version.ref = "kotlin" } +#lkDeployHelpers = { id = "com.lightningkite.deploy-helpers", version.ref = "lkDeployHelpers" } \ No newline at end of file diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 17ac21fa..70fbb71b 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -2,17 +2,15 @@ import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import com.lightningkite.deployhelpers.* plugins { - kotlin("multiplatform") - kotlin("plugin.serialization") - kotlin("native.cocoapods") - id("com.android.library") - id("org.jetbrains.dokka") + alias(libs.plugins.kotlinMultiplatform) + alias(libs.plugins.kotlinSerialization) + alias(libs.plugins.androidLibrary) + alias(libs.plugins.dokka) + alias(libs.plugins.kotlinCocoapods) id("maven-publish") id("signing") } -val ktorVersion = "2.3.7" - @OptIn(ExperimentalKotlinGradlePluginApi::class) kotlin { androidTarget { @@ -23,17 +21,17 @@ kotlin { } } dependencies { - api("androidx.transition:transition:1.4.1") - api("androidx.cardview:cardview:1.0.0") - api("com.jakewharton.timber:timber:5.0.1") - api("com.github.bumptech.glide:glide:5.0.0-rc01") - api("com.github.MikeOrtiz:TouchImageView:3.6") - api("io.ktor:ktor-client-core:$ktorVersion") - api("io.ktor:ktor-client-cio:$ktorVersion") - api("io.ktor:ktor-client-websockets:$ktorVersion") - api("androidx.media3:media3-exoplayer:1.2.1") - api("androidx.media3:media3-ui:1.2.1") - api("androidx.media3:media3-common:1.2.1") + api(libs.transition) + api(libs.cardView) + api(libs.timber) + api(libs.glide) + api(libs.touchImageView) + api(libs.ktorClientCore) + api(libs.ktorClientCio) + api(libs.ktorClientWebsockets) + api(libs.androidxMedia3Common) + api(libs.androidxMedia3ExoPLayer) + api(libs.androidxMedia3UI) } } jvm() @@ -61,21 +59,21 @@ kotlin { val commonMain by getting { dependencies { - api("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3") - api("org.jetbrains.kotlinx:kotlinx-serialization-properties:1.6.3") - api("org.jetbrains.kotlinx:kotlinx-datetime:0.5.0") + api(libs.kotlinxJson) + api(libs.kotlinxProperties) + api(libs.kotlinxDateTime) } } val commonTest by getting { dependencies { - implementation(kotlin("test")) + implementation(libs.kotlinTest) } } val androidMain by getting { dependencies { - api("androidx.appcompat:appcompat:1.6.1") - api("androidx.recyclerview:recyclerview:1.3.2") - api("com.google.android.material:material:1.11.0") + api(libs.appCompat) + api(libs.recyclerView) + api(libs.material) } } @@ -85,15 +83,15 @@ kotlin { val iosMain by getting { dependencies { - implementation("io.ktor:ktor-client-darwin:2.3.7") - implementation("io.ktor:ktor-client-websockets:2.3.7") + implementation(libs.ktorClientDarwin) + implementation(libs.ktorClientWebsockets) } } val jvmMain by getting { dependsOn(commonHtmlMain) dependencies { - api("org.apache.commons:commons-lang3:3.12.0") + api(libs.apacheCommonsLang) } } val jsMain by getting { @@ -155,7 +153,7 @@ android { targetCompatibility = JavaVersion.VERSION_17 } dependencies { - coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4") + coreLibraryDesugaring(libs.jdkDesugar) } } diff --git a/library/library.podspec b/library/library.podspec index 36f81b0f..d53d258a 100644 --- a/library/library.podspec +++ b/library/library.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |spec| spec.name = 'library' - spec.version = 'session2-SNAPSHOT' + spec.version = 'main-SNAPSHOT' spec.homepage = '' spec.source = { :http=> ''} spec.authors = '' @@ -39,7 +39,7 @@ Pod::Spec.new do |spec| fi set -ev REPO_ROOT="$PODS_TARGET_SRCROOT" - "$REPO_ROOT/../../picme-frontend/gradlew" -p "$REPO_ROOT" $KOTLIN_PROJECT_PATH:syncFramework \ + "$REPO_ROOT/../gradlew" -p "$REPO_ROOT" $KOTLIN_PROJECT_PATH:syncFramework \ -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME \ -Pkotlin.native.cocoapods.archs="$ARCHS" \ -Pkotlin.native.cocoapods.configuration="$CONFIGURATION" diff --git a/processor/build.gradle.kts b/processor/build.gradle.kts index e1e10b06..0db0d439 100644 --- a/processor/build.gradle.kts +++ b/processor/build.gradle.kts @@ -2,11 +2,10 @@ import com.lightningkite.deployhelpers.developer import com.lightningkite.deployhelpers.github import com.lightningkite.deployhelpers.mit import com.lightningkite.deployhelpers.standardPublishing -import java.util.Properties plugins { - kotlin("jvm") - id("org.jetbrains.dokka") + alias(libs.plugins.kotlinJvm) + alias(libs.plugins.dokka) id("signing") `maven-publish` } @@ -14,10 +13,10 @@ plugins { val kotlinVersion:String by project val kspVersion:String by project dependencies { - implementation("com.google.devtools.ksp:symbol-processing-api:$kspVersion") - implementation("org.jetbrains.kotlin:kotlin-compiler:$kotlinVersion") - implementation("org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion") - testImplementation("junit:junit:4.13.2") + implementation(libs.kspSymbolProcessing) + implementation(libs.kotlinCompiler) + implementation(libs.kotlinStdLib) + testImplementation(libs.kotlinTestJunit) } standardPublishing { diff --git a/settings.gradle.kts b/settings.gradle.kts index a7c54925..3aaaee8b 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -7,13 +7,16 @@ pluginManagement { mavenCentral() maven("https://jitpack.io") } - val kotlinVersion: String by settings - val kspVersion: String by settings - plugins { - kotlin("plugin.serialization") version kotlinVersion - id("com.google.devtools.ksp") version kspVersion - id("com.lightningkite.kiteui") version "main-SNAPSHOT" + dependencyResolutionManagement { + repositories { + mavenLocal() + google() + mavenCentral() + maven(url = "https://s01.oss.sonatype.org/content/repositories/snapshots/") + maven(url = "https://s01.oss.sonatype.org/content/repositories/releases/") + maven("https://jitpack.io") + } } }