mirror of
https://github.com/mihonapp/mihon.git
synced 2025-08-25 23:51:32 +02:00
Compare commits
5 Commits
f5a41e9693
...
20e4cb26d6
Author | SHA1 | Date | |
---|---|---|---|
|
20e4cb26d6 | ||
|
e448e40406 | ||
|
aed53d3bdc | ||
|
d77f2f429d | ||
|
c3fd2df6f5 |
@@ -1,11 +1,14 @@
|
||||
import mihon.buildlogic.getBuildTime
|
||||
import mihon.buildlogic.getCommitCount
|
||||
import mihon.buildlogic.getGitSha
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||
|
||||
plugins {
|
||||
id("com.android.application")
|
||||
id("mihon.android.application")
|
||||
id("mihon.android.application.compose")
|
||||
id("com.mikepenz.aboutlibraries.plugin")
|
||||
kotlin("android")
|
||||
kotlin("plugin.serialization")
|
||||
id("com.github.zellius.shortcut-helper")
|
||||
kotlin("plugin.serialization")
|
||||
}
|
||||
|
||||
if (gradle.startParameter.taskRequests.toString().contains("Standard")) {
|
||||
@@ -119,7 +122,6 @@ android {
|
||||
|
||||
buildFeatures {
|
||||
viewBinding = true
|
||||
compose = true
|
||||
buildConfig = true
|
||||
|
||||
// Disable some unused things
|
||||
@@ -132,10 +134,6 @@ android {
|
||||
abortOnError = false
|
||||
checkReleaseBuilds = false
|
||||
}
|
||||
|
||||
composeOptions {
|
||||
kotlinCompilerExtensionVersion = compose.versions.compiler.get()
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@@ -150,7 +148,6 @@ dependencies {
|
||||
implementation(projects.presentationWidget)
|
||||
|
||||
// Compose
|
||||
implementation(platform(compose.bom))
|
||||
implementation(compose.activity)
|
||||
implementation(compose.foundation)
|
||||
implementation(compose.material3.core)
|
||||
@@ -295,25 +292,6 @@ tasks {
|
||||
"-opt-in=kotlinx.coroutines.InternalCoroutinesApi",
|
||||
"-opt-in=kotlinx.serialization.ExperimentalSerializationApi",
|
||||
)
|
||||
|
||||
if (project.findProperty("tachiyomi.enableComposeCompilerMetrics") == "true") {
|
||||
kotlinOptions.freeCompilerArgs += listOf(
|
||||
"-P",
|
||||
"plugin:androidx.compose.compiler.plugins.kotlin:reportsDestination=" +
|
||||
project.layout.buildDirectory.dir("compose_metrics").get().asFile.absolutePath,
|
||||
)
|
||||
kotlinOptions.freeCompilerArgs += listOf(
|
||||
"-P",
|
||||
"plugin:androidx.compose.compiler.plugins.kotlin:metricsDestination=" +
|
||||
project.layout.buildDirectory.dir("compose_metrics").get().asFile.absolutePath,
|
||||
)
|
||||
}
|
||||
|
||||
// https://developer.android.com/jetpack/androidx/releases/compose-compiler#1.5.9
|
||||
kotlinOptions.freeCompilerArgs += listOf(
|
||||
"-P",
|
||||
"plugin:androidx.compose.compiler.plugins.kotlin:nonSkippingGroupOptimization=true",
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -55,10 +55,9 @@ import tachiyomi.presentation.core.icons.Reddit
|
||||
import tachiyomi.presentation.core.icons.X
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import java.time.Instant
|
||||
import java.time.LocalDateTime
|
||||
import java.time.ZoneId
|
||||
import java.time.format.DateTimeFormatter
|
||||
import java.util.Locale
|
||||
|
||||
object AboutScreen : Screen() {
|
||||
|
||||
@@ -269,11 +268,15 @@ object AboutScreen : Screen() {
|
||||
|
||||
internal fun getFormattedBuildTime(): String {
|
||||
return try {
|
||||
val df = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm'Z'", Locale.US)
|
||||
.withZone(ZoneId.of("UTC"))
|
||||
val buildTime = LocalDateTime.from(df.parse(BuildConfig.BUILD_TIME))
|
||||
|
||||
buildTime!!.toDateTimestampString(UiPreferences.dateFormat(Injekt.get<UiPreferences>().dateFormat().get()))
|
||||
LocalDateTime.ofInstant(
|
||||
Instant.parse(BuildConfig.BUILD_TIME),
|
||||
ZoneId.systemDefault(),
|
||||
)
|
||||
.toDateTimestampString(
|
||||
UiPreferences.dateFormat(
|
||||
Injekt.get<UiPreferences>().dateFormat().get(),
|
||||
),
|
||||
)
|
||||
} catch (e: Exception) {
|
||||
BuildConfig.BUILD_TIME
|
||||
}
|
||||
|
@@ -1,8 +1,3 @@
|
||||
import com.android.build.gradle.BaseExtension
|
||||
import com.android.build.gradle.BasePlugin
|
||||
import org.gradle.api.tasks.testing.logging.TestLogEvent
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
|
||||
|
||||
buildscript {
|
||||
dependencies {
|
||||
classpath(libs.android.shortcut.gradle)
|
||||
@@ -17,45 +12,6 @@ plugins {
|
||||
alias(kotlinx.plugins.serialization) apply false
|
||||
}
|
||||
|
||||
subprojects {
|
||||
tasks.withType<KotlinJvmCompile> {
|
||||
kotlinOptions {
|
||||
jvmTarget = JavaVersion.VERSION_17.toString()
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType<Test> {
|
||||
useJUnitPlatform()
|
||||
testLogging {
|
||||
events(TestLogEvent.PASSED, TestLogEvent.SKIPPED, TestLogEvent.FAILED)
|
||||
}
|
||||
}
|
||||
|
||||
plugins.withType<BasePlugin> {
|
||||
plugins.apply("detekt")
|
||||
configure<BaseExtension> {
|
||||
compileSdkVersion(AndroidConfig.compileSdk)
|
||||
defaultConfig {
|
||||
minSdk = AndroidConfig.minSdk
|
||||
targetSdk = AndroidConfig.targetSdk
|
||||
ndk {
|
||||
version = AndroidConfig.ndk
|
||||
}
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
isCoreLibraryDesugaringEnabled = true
|
||||
}
|
||||
|
||||
dependencies {
|
||||
add("coreLibraryDesugaring", libs.desugar)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.register<Delete>("clean") {
|
||||
delete(rootProject.layout.buildDirectory)
|
||||
}
|
||||
|
@@ -4,8 +4,11 @@ plugins {
|
||||
|
||||
dependencies {
|
||||
implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location))
|
||||
implementation(androidxLibs.gradle)
|
||||
implementation(kotlinLibs.gradle)
|
||||
implementation(files(androidx.javaClass.superclass.protectionDomain.codeSource.location))
|
||||
implementation(files(compose.javaClass.superclass.protectionDomain.codeSource.location))
|
||||
implementation(files(kotlinx.javaClass.superclass.protectionDomain.codeSource.location))
|
||||
implementation(androidx.gradle)
|
||||
implementation(kotlinx.gradle)
|
||||
implementation(libs.detekt.gradlePlugin)
|
||||
implementation(gradleApi())
|
||||
}
|
||||
|
@@ -3,10 +3,13 @@ dependencyResolutionManagement {
|
||||
create("libs") {
|
||||
from(files("../gradle/libs.versions.toml"))
|
||||
}
|
||||
create("androidxLibs") {
|
||||
create("androidx") {
|
||||
from(files("../gradle/androidx.versions.toml"))
|
||||
}
|
||||
create("kotlinLibs") {
|
||||
create("compose") {
|
||||
from(files("../gradle/compose.versions.toml"))
|
||||
}
|
||||
create("kotlinx") {
|
||||
from(files("../gradle/kotlinx.versions.toml"))
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +0,0 @@
|
||||
object AndroidConfig {
|
||||
const val compileSdk = 34
|
||||
const val minSdk = 26
|
||||
const val targetSdk = 34
|
||||
const val ndk = "26.1.10909125"
|
||||
}
|
@@ -1,39 +0,0 @@
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.Task
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
import org.gradle.kotlin.dsl.TaskContainerScope
|
||||
|
||||
private val emptyResourcesElement = "<resources>\\s*</resources>|<resources/>".toRegex()
|
||||
|
||||
fun TaskContainerScope.registerLocalesConfigTask(project: Project): TaskProvider<Task> {
|
||||
return with(project) {
|
||||
register("generateLocalesConfig") {
|
||||
val languages = fileTree("$projectDir/src/commonMain/resources/MR/")
|
||||
.matching { include("**/strings.xml") }
|
||||
.filterNot { it.readText().contains(emptyResourcesElement) }
|
||||
.map {
|
||||
it.parentFile.name
|
||||
.replace("base", "en")
|
||||
.replace("-r", "-")
|
||||
.replace("+", "-")
|
||||
.takeIf(String::isNotBlank) ?: "en"
|
||||
}
|
||||
.sorted()
|
||||
.joinToString(separator = "\n") {
|
||||
" <locale android:name=\"$it\"/>"
|
||||
}
|
||||
|
||||
val content = """
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<locale-config xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
$languages
|
||||
</locale-config>
|
||||
""".trimIndent()
|
||||
|
||||
val localeFile = file("$projectDir/src/androidMain/res/xml/locales_config.xml")
|
||||
localeFile.parentFile.mkdirs()
|
||||
localeFile.writeText(content)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,11 @@
|
||||
import mihon.buildlogic.AndroidConfig
|
||||
import mihon.buildlogic.configureCompose
|
||||
|
||||
plugins {
|
||||
id("com.android.application")
|
||||
kotlin("android")
|
||||
}
|
||||
|
||||
android {
|
||||
configureCompose(this)
|
||||
}
|
@@ -0,0 +1,17 @@
|
||||
import mihon.buildlogic.AndroidConfig
|
||||
import mihon.buildlogic.configureAndroid
|
||||
import mihon.buildlogic.configureTest
|
||||
|
||||
plugins {
|
||||
id("mihon.code.detekt")
|
||||
id("com.android.application")
|
||||
kotlin("android")
|
||||
}
|
||||
|
||||
android {
|
||||
defaultConfig {
|
||||
targetSdk = AndroidConfig.TARGET_SDK
|
||||
}
|
||||
configureAndroid(this)
|
||||
configureTest()
|
||||
}
|
13
buildSrc/src/main/kotlin/mihon.benchmark.gradle.kts
Normal file
13
buildSrc/src/main/kotlin/mihon.benchmark.gradle.kts
Normal file
@@ -0,0 +1,13 @@
|
||||
import mihon.buildlogic.configureAndroid
|
||||
import mihon.buildlogic.configureTest
|
||||
|
||||
plugins {
|
||||
id("mihon.code.detekt")
|
||||
id("com.android.test")
|
||||
kotlin("android")
|
||||
}
|
||||
|
||||
android {
|
||||
configureAndroid(this)
|
||||
configureTest()
|
||||
}
|
10
buildSrc/src/main/kotlin/mihon.library.compose.gradle.kts
Normal file
10
buildSrc/src/main/kotlin/mihon.library.compose.gradle.kts
Normal file
@@ -0,0 +1,10 @@
|
||||
import mihon.buildlogic.configureCompose
|
||||
|
||||
plugins {
|
||||
id("mihon.code.detekt")
|
||||
id("com.android.library")
|
||||
}
|
||||
|
||||
android {
|
||||
configureCompose(this)
|
||||
}
|
12
buildSrc/src/main/kotlin/mihon.library.gradle.kts
Normal file
12
buildSrc/src/main/kotlin/mihon.library.gradle.kts
Normal file
@@ -0,0 +1,12 @@
|
||||
import mihon.buildlogic.configureAndroid
|
||||
import mihon.buildlogic.configureTest
|
||||
|
||||
plugins {
|
||||
id("mihon.code.detekt")
|
||||
id("com.android.library")
|
||||
}
|
||||
|
||||
android {
|
||||
configureAndroid(this)
|
||||
configureTest()
|
||||
}
|
11
buildSrc/src/main/kotlin/mihon/buildlogic/AndroidConfig.kt
Normal file
11
buildSrc/src/main/kotlin/mihon/buildlogic/AndroidConfig.kt
Normal file
@@ -0,0 +1,11 @@
|
||||
package mihon.buildlogic
|
||||
|
||||
import org.gradle.api.JavaVersion as GradleJavaVersion
|
||||
|
||||
object AndroidConfig {
|
||||
const val COMPILE_SDK = 34
|
||||
const val TARGET_SDK = 34
|
||||
const val MIN_SDK = 26
|
||||
const val NDK = "26.1.10909125"
|
||||
val JavaVersion = GradleJavaVersion.VERSION_17
|
||||
}
|
@@ -1,8 +1,10 @@
|
||||
package mihon.buildlogic
|
||||
|
||||
import org.gradle.api.Project
|
||||
import java.io.ByteArrayOutputStream
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.TimeZone
|
||||
import java.util.Date
|
||||
import java.time.LocalDateTime
|
||||
import java.time.ZoneOffset
|
||||
import java.time.format.DateTimeFormatter
|
||||
|
||||
// Git is needed in your system PATH for these commands to work.
|
||||
// If it's not installed, you can return a random value as a workaround
|
||||
@@ -16,17 +18,18 @@ fun Project.getGitSha(): String {
|
||||
// return "1"
|
||||
}
|
||||
|
||||
private val BUILD_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'")
|
||||
|
||||
@Suppress("UnusedReceiverParameter")
|
||||
fun Project.getBuildTime(): String {
|
||||
val df = SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'")
|
||||
df.timeZone = TimeZone.getTimeZone("UTC")
|
||||
return df.format(Date())
|
||||
return LocalDateTime.now(ZoneOffset.UTC).format(BUILD_TIME_FORMATTER)
|
||||
}
|
||||
|
||||
fun Project.runCommand(command: String): String {
|
||||
private fun Project.runCommand(command: String): String {
|
||||
val byteOut = ByteArrayOutputStream()
|
||||
project.exec {
|
||||
exec {
|
||||
commandLine = command.split(" ")
|
||||
standardOutput = byteOut
|
||||
}
|
||||
return String(byteOut.toByteArray()).trim()
|
||||
}
|
||||
}
|
112
buildSrc/src/main/kotlin/mihon/buildlogic/ProjectExtensions.kt
Normal file
112
buildSrc/src/main/kotlin/mihon/buildlogic/ProjectExtensions.kt
Normal file
@@ -0,0 +1,112 @@
|
||||
package mihon.buildlogic
|
||||
|
||||
import com.android.build.api.dsl.CommonExtension
|
||||
import org.gradle.accessors.dm.LibrariesForAndroidx
|
||||
import org.gradle.accessors.dm.LibrariesForCompose
|
||||
import org.gradle.accessors.dm.LibrariesForKotlinx
|
||||
import org.gradle.accessors.dm.LibrariesForLibs
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.tasks.testing.Test
|
||||
import org.gradle.api.tasks.testing.logging.TestLogEvent
|
||||
import org.gradle.kotlin.dsl.dependencies
|
||||
import org.gradle.kotlin.dsl.the
|
||||
import org.gradle.kotlin.dsl.withType
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||
|
||||
val Project.androidx get() = the<LibrariesForAndroidx>()
|
||||
val Project.compose get() = the<LibrariesForCompose>()
|
||||
val Project.kotlinx get() = the<LibrariesForKotlinx>()
|
||||
val Project.libs get() = the<LibrariesForLibs>()
|
||||
|
||||
internal fun Project.configureAndroid(commonExtension: CommonExtension<*, *, *, *, *, *>) {
|
||||
commonExtension.apply {
|
||||
compileSdk = AndroidConfig.COMPILE_SDK
|
||||
|
||||
defaultConfig {
|
||||
minSdk = AndroidConfig.MIN_SDK
|
||||
ndk {
|
||||
version = AndroidConfig.NDK
|
||||
}
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = AndroidConfig.JavaVersion
|
||||
targetCompatibility = AndroidConfig.JavaVersion
|
||||
isCoreLibraryDesugaringEnabled = true
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType<KotlinCompile>().configureEach {
|
||||
kotlinOptions {
|
||||
jvmTarget = AndroidConfig.JavaVersion.toString()
|
||||
// freeCompilerArgs += "-opt-in=kotlin.RequiresOptIn"
|
||||
// freeCompilerArgs += "-Xcontext-receivers"
|
||||
|
||||
// Treat all Kotlin warnings as errors (disabled by default)
|
||||
// Override by setting warningsAsErrors=true in your ~/.gradle/gradle.properties
|
||||
// val warningsAsErrors: String? by project
|
||||
// allWarningsAsErrors = warningsAsErrors.toBoolean()
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
"coreLibraryDesugaring"(libs.desugar)
|
||||
}
|
||||
}
|
||||
|
||||
internal fun Project.configureCompose(commonExtension: CommonExtension<*, *, *, *, *, *>) {
|
||||
commonExtension.apply {
|
||||
buildFeatures {
|
||||
compose = true
|
||||
}
|
||||
|
||||
composeOptions {
|
||||
kotlinCompilerExtensionVersion = compose.versions.compiler.get()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
"implementation"(platform(compose.bom))
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType<KotlinCompile>().configureEach {
|
||||
kotlinOptions {
|
||||
freeCompilerArgs += buildComposeMetricsParameters()
|
||||
|
||||
// Enable experimental compiler opts
|
||||
// https://developer.android.com/jetpack/androidx/releases/compose-compiler#1.5.9
|
||||
freeCompilerArgs += listOf(
|
||||
"-P",
|
||||
"plugin:androidx.compose.compiler.plugins.kotlin:nonSkippingGroupOptimization=true",
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun Project.buildComposeMetricsParameters(): List<String> {
|
||||
val rootProjectDir = rootProject.layout.buildDirectory.asFile.get()
|
||||
val relativePath = projectDir.relativeTo(rootDir)
|
||||
|
||||
val enableMetrics = project.providers.gradleProperty("enableComposeCompilerMetrics").orNull.toBoolean()
|
||||
val enableReports = project.providers.gradleProperty("enableComposeCompilerReports").orNull.toBoolean()
|
||||
|
||||
return listOfNotNull(
|
||||
("metricsDestination" to "compose-metrics").takeIf { enableMetrics },
|
||||
("reportsDestination" to "compose-reports").takeIf { enableReports },
|
||||
).flatMap { (flag, dirName) ->
|
||||
val buildDirPath = rootProjectDir.resolve(dirName).resolve(relativePath).absolutePath
|
||||
listOf(
|
||||
"-P",
|
||||
"plugin:androidx.compose.compiler.plugins.kotlin:$flag=$buildDirPath"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
internal fun Project.configureTest() {
|
||||
tasks.withType<Test> {
|
||||
useJUnitPlatform()
|
||||
testLogging {
|
||||
events(TestLogEvent.PASSED, TestLogEvent.SKIPPED, TestLogEvent.FAILED)
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,37 @@
|
||||
package mihon.buildlogic.tasks
|
||||
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.Task
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
|
||||
private val emptyResourcesElement = "<resources>\\s*</resources>|<resources/>".toRegex()
|
||||
|
||||
fun Project.getLocalesConfigTask(): TaskProvider<Task> {
|
||||
return tasks.register("generateLocalesConfig") {
|
||||
val locales = fileTree("$projectDir/src/commonMain/resources/MR/")
|
||||
.matching { include("**/strings.xml") }
|
||||
.filterNot { it.readText().contains(emptyResourcesElement) }
|
||||
.map {
|
||||
it.parentFile.name
|
||||
.replace("base", "en")
|
||||
.replace("-r", "-")
|
||||
.replace("+", "-")
|
||||
.takeIf(String::isNotBlank) ?: "en"
|
||||
}
|
||||
.sorted()
|
||||
.joinToString("\n") { "| <locale android:name=\"$it\"/>" }
|
||||
|
||||
val content = """
|
||||
|<?xml version="1.0" encoding="utf-8"?>
|
||||
|<locale-config xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
$locales
|
||||
|</locale-config>
|
||||
""".trimMargin()
|
||||
|
||||
file("$projectDir/src/androidMain/res/xml/locales_config.xml").apply {
|
||||
parentFile.mkdirs()
|
||||
writeText(content)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
plugins {
|
||||
id("com.android.library")
|
||||
id("mihon.library")
|
||||
kotlin("android")
|
||||
kotlin("plugin.serialization")
|
||||
}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
plugins {
|
||||
id("com.android.library")
|
||||
id("mihon.library")
|
||||
kotlin("android")
|
||||
kotlin("plugin.serialization")
|
||||
}
|
||||
|
@@ -1,8 +1,8 @@
|
||||
plugins {
|
||||
id("com.android.library")
|
||||
id("mihon.library")
|
||||
id("app.cash.sqldelight")
|
||||
kotlin("android")
|
||||
kotlin("plugin.serialization")
|
||||
id("app.cash.sqldelight")
|
||||
}
|
||||
|
||||
android {
|
||||
|
@@ -1,5 +1,5 @@
|
||||
plugins {
|
||||
id("com.android.library")
|
||||
id("mihon.library")
|
||||
kotlin("android")
|
||||
kotlin("plugin.serialization")
|
||||
}
|
||||
|
@@ -2,6 +2,7 @@ android.nonTransitiveRClass=false
|
||||
android.useAndroidX=true
|
||||
|
||||
kotlin.code.style=official
|
||||
kotlin.mpp.androidGradlePluginCompatibility.nowarn=true
|
||||
kotlin.mpp.androidSourceSetLayoutVersion=2
|
||||
|
||||
org.gradle.caching=true
|
||||
|
@@ -5,7 +5,7 @@ moko = "0.23.0"
|
||||
okhttp_version = "5.0.0-alpha.12"
|
||||
richtext = "0.20.0"
|
||||
shizuku_version = "12.2.0"
|
||||
sqldelight = "2.0.0"
|
||||
sqldelight = "2.0.2"
|
||||
sqlite = "2.4.0"
|
||||
voyager = "1.0.0"
|
||||
detekt = "1.23.6"
|
||||
|
@@ -1,7 +1,10 @@
|
||||
import mihon.buildlogic.tasks.getLocalesConfigTask
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||
|
||||
plugins {
|
||||
kotlin("multiplatform")
|
||||
id("com.android.library")
|
||||
id("mihon.library")
|
||||
id("dev.icerock.mobile.multiplatform-resources")
|
||||
kotlin("multiplatform")
|
||||
}
|
||||
|
||||
kotlin {
|
||||
@@ -41,12 +44,12 @@ multiplatformResources {
|
||||
}
|
||||
|
||||
tasks {
|
||||
val localesConfigTask = registerLocalesConfigTask(project)
|
||||
val localesConfigTask = project.getLocalesConfigTask()
|
||||
preBuild {
|
||||
dependsOn(localesConfigTask)
|
||||
}
|
||||
|
||||
withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
|
||||
withType<KotlinCompile> {
|
||||
kotlinOptions.freeCompilerArgs += listOf(
|
||||
"-Xexpect-actual-classes",
|
||||
)
|
||||
|
@@ -1,6 +1,5 @@
|
||||
plugins {
|
||||
id("com.android.test")
|
||||
kotlin("android")
|
||||
id("mihon.benchmark")
|
||||
}
|
||||
|
||||
android {
|
||||
|
@@ -1,5 +1,6 @@
|
||||
plugins {
|
||||
id("com.android.library")
|
||||
id("mihon.library")
|
||||
id("mihon.library.compose")
|
||||
kotlin("android")
|
||||
}
|
||||
|
||||
@@ -10,14 +11,6 @@ android {
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
consumerProguardFiles("consumer-rules.pro")
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
compose = true
|
||||
}
|
||||
|
||||
composeOptions {
|
||||
kotlinCompilerExtensionVersion = compose.versions.compiler.get()
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@@ -25,7 +18,6 @@ dependencies {
|
||||
api(projects.i18n)
|
||||
|
||||
// Compose
|
||||
implementation(platform(compose.bom))
|
||||
implementation(compose.activity)
|
||||
implementation(compose.foundation)
|
||||
implementation(compose.material3.core)
|
||||
|
@@ -1,5 +1,6 @@
|
||||
plugins {
|
||||
id("com.android.library")
|
||||
id("mihon.library")
|
||||
id("mihon.library.compose")
|
||||
kotlin("android")
|
||||
}
|
||||
|
||||
@@ -10,14 +11,6 @@ android {
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
consumerProguardFiles("consumer-rules.pro")
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
compose = true
|
||||
}
|
||||
|
||||
composeOptions {
|
||||
kotlinCompilerExtensionVersion = compose.versions.compiler.get()
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
@@ -1,7 +1,7 @@
|
||||
plugins {
|
||||
id("mihon.library")
|
||||
kotlin("multiplatform")
|
||||
kotlin("plugin.serialization")
|
||||
id("com.android.library")
|
||||
}
|
||||
|
||||
kotlin {
|
||||
|
@@ -1,6 +1,6 @@
|
||||
plugins {
|
||||
id("mihon.library")
|
||||
kotlin("multiplatform")
|
||||
id("com.android.library")
|
||||
}
|
||||
|
||||
kotlin {
|
||||
|
Reference in New Issue
Block a user