diff --git a/buildSrc/src/main/java/io/wax911/emoji/buildSrc/plugin/CorePlugin.kt b/buildSrc/src/main/java/io/wax911/emoji/buildSrc/plugin/CorePlugin.kt index c7536e34..90652a56 100644 --- a/buildSrc/src/main/java/io/wax911/emoji/buildSrc/plugin/CorePlugin.kt +++ b/buildSrc/src/main/java/io/wax911/emoji/buildSrc/plugin/CorePlugin.kt @@ -13,8 +13,7 @@ open class CorePlugin : Plugin { /** * Inspecting available extensions */ - @Suppress("UnstableApiUsage") - internal fun Project.availableExtensions() { + private fun Project.availableExtensions() { val extensionSchema = project.extensions.extensionsSchema extensionSchema.forEach { println("Available extension for module ${project.path}: ${it.name} -> ${it.publicType}") @@ -24,8 +23,7 @@ open class CorePlugin : Plugin { /** * Inspecting available components */ - @Suppress("UnstableApiUsage") - internal fun Project.availableComponents() { + private fun Project.availableComponents() { val collectionSchema = project.components.asMap collectionSchema.forEach { println("Available component for module ${project.path}: ${it.key} -> ${it.value}") diff --git a/buildSrc/src/main/java/io/wax911/emoji/buildSrc/plugin/components/AndroidConfiguration.kt b/buildSrc/src/main/java/io/wax911/emoji/buildSrc/plugin/components/AndroidConfiguration.kt index 695f742b..02402faa 100644 --- a/buildSrc/src/main/java/io/wax911/emoji/buildSrc/plugin/components/AndroidConfiguration.kt +++ b/buildSrc/src/main/java/io/wax911/emoji/buildSrc/plugin/components/AndroidConfiguration.kt @@ -1,7 +1,13 @@ package io.wax911.emoji.buildSrc.plugin.components import com.android.build.gradle.internal.dsl.DefaultConfig -import io.wax911.emoji.buildSrc.plugin.extensions.* +import io.wax911.emoji.buildSrc.plugin.extensions.baseAppExtension +import io.wax911.emoji.buildSrc.plugin.extensions.baseExtension +import io.wax911.emoji.buildSrc.plugin.extensions.isLibraryModule +import io.wax911.emoji.buildSrc.plugin.extensions.isSampleModule +import io.wax911.emoji.buildSrc.plugin.extensions.libs +import io.wax911.emoji.buildSrc.plugin.extensions.props +import io.wax911.emoji.buildSrc.plugin.extensions.spotlessExtension import org.gradle.api.JavaVersion import org.gradle.api.Project import org.jetbrains.kotlin.gradle.dsl.KotlinCompile @@ -13,7 +19,7 @@ internal fun Project.configureSpotless() { spotlessExtension().run { kotlin { target("**/kotlin/**/*.kt") - targetExclude("$buildDir/**/*.kt", "**/test/**/*.kt", "bin/**/*.kt") + targetExclude("${layout.buildDirectory}/**/*.kt", "**/test/**/*.kt", "bin/**/*.kt") ktlint(libs.versions.ktlint.get()) licenseHeaderFile(rootProject.file("spotless/copyright.kt")) } @@ -28,7 +34,6 @@ private fun Project.configureLint() = baseAppExtension().run { } } -@Suppress("UnstableApiUsage") private fun DefaultConfig.applyAdditionalConfiguration(project: Project) { if (project.isSampleModule()) { applicationId = "io.wax911.emoji.sample" @@ -106,9 +111,7 @@ internal fun Project.configureAndroid(): Unit = baseExtension().run { if (isSampleModule()) { compileArgs.add("-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi") compileArgs.add("-opt-in=kotlinx.coroutines.FlowPreview") - } else - compileArgs.add("-opt-in=kotlinx.serialization.ExperimentalSerializationApi") - // Filter out modules that won't be using coroutines + } freeCompilerArgs = compileArgs } } diff --git a/buildSrc/src/main/java/io/wax911/emoji/buildSrc/plugin/components/AndroidOptions.kt b/buildSrc/src/main/java/io/wax911/emoji/buildSrc/plugin/components/AndroidOptions.kt index 007f0739..581d04cb 100644 --- a/buildSrc/src/main/java/io/wax911/emoji/buildSrc/plugin/components/AndroidOptions.kt +++ b/buildSrc/src/main/java/io/wax911/emoji/buildSrc/plugin/components/AndroidOptions.kt @@ -26,7 +26,7 @@ private fun Project.createMavenPublicationUsing(sourcesJar: Jar) { version = props[PropertyTypes.VERSION] artifact(sourcesJar) - artifact("${project.buildDir}/outputs/aar/${project.name}-release.aar") + artifact("${project.layout.buildDirectory}/outputs/aar/${project.name}-release.aar") from(component) pom { @@ -148,7 +148,6 @@ private fun Project.createDokkaTaskProvider() = tasks.named("dokkaHtm } -@Suppress("UnstableApiUsage") internal fun Project.configureOptions() { if (isLibraryModule()) { println("Applying additional tasks options for dokka and javadoc on ${project.path}") @@ -161,7 +160,7 @@ internal fun Project.configureOptions() { } val classesJar by tasks.register("classesJar", Jar::class.java) { - from("${project.buildDir}/intermediates/classes/release") + from("${project.layout.buildDirectory}/intermediates/classes/release") } artifacts { diff --git a/buildSrc/src/main/java/io/wax911/emoji/buildSrc/plugin/extensions/ProjectExtensions.kt b/buildSrc/src/main/java/io/wax911/emoji/buildSrc/plugin/extensions/ProjectExtensions.kt index 11b2b742..95276bd7 100644 --- a/buildSrc/src/main/java/io/wax911/emoji/buildSrc/plugin/extensions/ProjectExtensions.kt +++ b/buildSrc/src/main/java/io/wax911/emoji/buildSrc/plugin/extensions/ProjectExtensions.kt @@ -22,11 +22,14 @@ fun Project.isSampleModule() = name == Modules.App.Sample.id fun Project.isLibraryModule() = - name == Modules.Library.Emojify.id + name == "emojify" || + name == "contract" || + name == "kotlinx" || + name == "gson" || + name == "moshi" internal val Project.libs: LibrariesForLibs - get() = - extensions.getByType() + get() = extensions.getByType() internal val Project.props: PropertiesReader get() = PropertiesReader(this) diff --git a/contract/build.gradle.kts b/contract/build.gradle.kts index d9ee914c..2051ce90 100644 --- a/contract/build.gradle.kts +++ b/contract/build.gradle.kts @@ -1,19 +1,9 @@ plugins { - id("com.android.library") - id("org.jetbrains.kotlin.android") + id("io.wax911.emojify") } android { namespace = "io.wax911.emojify.contract" - compileSdk = 34 - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - } - kotlinOptions { - jvmTarget = "1.8" - } } dependencies { diff --git a/serializer/kotlinx/src/main/kotlin/io/wax911/emojify/serializer/KotlinxDeserializer.kt b/serializer/kotlinx/src/main/kotlin/io/wax911/emojify/serializer/KotlinxDeserializer.kt index ec663bb6..409fc7fe 100644 --- a/serializer/kotlinx/src/main/kotlin/io/wax911/emojify/serializer/KotlinxDeserializer.kt +++ b/serializer/kotlinx/src/main/kotlin/io/wax911/emojify/serializer/KotlinxDeserializer.kt @@ -30,6 +30,7 @@ import java.io.InputStream class KotlinxDeserializer : IEmojiDeserializer { private val json = Json { isLenient = true } + @OptIn(kotlinx.serialization.ExperimentalSerializationApi::class) @Throws(SerializationException::class) override fun decodeFromStream(inputStream: InputStream): List { val deserializer = ListSerializer(KotlinxEmoji.serializer())