Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import com.android.build.gradle.internal.api.BaseVariantOutputImpl
import com.android.build.api.variant.impl.VariantOutputImpl

plugins {
alias(libs.plugins.logfox.android.application)
Expand All @@ -25,12 +25,12 @@ android {
buildFeatures {
viewBinding = true
}
}

applicationVariants.configureEach {
outputs.configureEach {
if (this is BaseVariantOutputImpl) {
outputFileName = "LogFox-${versionName}-${name}.apk"
}
androidComponents.onVariants { variant ->
variant.outputs.forEach { output ->
if (output is VariantOutputImpl) {
output.outputFileName.set("LogFox-${output.versionName.get()}-${variant.name}.apk")
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import com.f0x1d.logfox.buildlogic.extensions.implementation
import com.f0x1d.logfox.buildlogic.extensions.pluginId
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.dependencies

class AndroidComposeConventionPlugin : Plugin<Project> {
Expand All @@ -14,16 +15,12 @@ class AndroidComposeConventionPlugin : Plugin<Project> {
apply(pluginId("compose-compiler"))
}

extensions.configure(CommonExtension::class.java) {
enableCompose()
extensions.configure<CommonExtension> {
buildFeatures.compose = true
}

dependencies {
implementation(bundle("androidx-compose"))
}
}

private fun CommonExtension<*, *, *, *, *, *>.enableCompose() {
buildFeatures.compose = true
}
}
Original file line number Diff line number Diff line change
@@ -1,30 +1,22 @@
package com.f0x1d.logfox.buildlogic.additional.tests

import com.android.build.api.dsl.ApplicationExtension
import com.android.build.api.dsl.CommonExtension
import com.android.build.api.dsl.LibraryExtension
import com.f0x1d.logfox.buildlogic.extensions.pluginId
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.configure

class AndroidSnapshotTestsConventionPlugin : Plugin<Project> {
override fun apply(target: Project) = with(target) {
with(pluginManager) {
apply(pluginId("roborazzi"))
}

listOf(
LibraryExtension::class.java,
ApplicationExtension::class.java,
).forEach { extensionClass ->
extensions.findByType(extensionClass)?.configureRobolectric()
}
}

private fun CommonExtension<*, *, *, *, *, *>.configureRobolectric() {
testOptions {
animationsDisabled = true
unitTests.isIncludeAndroidResources = true
extensions.configure<CommonExtension> {
with(testOptions) {
animationsDisabled = true
unitTests.isIncludeAndroidResources = true
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,20 @@ package com.f0x1d.logfox.buildlogic.extensions

import com.android.build.api.dsl.CommonExtension
import org.gradle.api.Project
import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidProjectExtension
import org.gradle.internal.Actions.with
import org.gradle.kotlin.dsl.configure
import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidExtension

internal fun Project.configureKotlinAndroid(commonExtension: CommonExtension<*, *, *, *, *, *>) = with(commonExtension) {
internal fun Project.configureKotlinAndroid(
commonExtension: CommonExtension,
) = with(commonExtension) {
compileSdk = version("compileSdk")

defaultConfig {
with(defaultConfig) {
minSdk = version("minSdk")
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}

extensions.configure<KotlinAndroidProjectExtension>("kotlin") {
this@configureKotlinAndroid.extensions.configure<KotlinAndroidExtension> {
jvmToolchain(JVM_VERSION)

compilerOptions {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ class AndroidApplicationConventionPlugin : Plugin<Project> {
override fun apply(target: Project) = with(target) {
with(pluginManager) {
apply(pluginId("android-application"))
apply(pluginId("kotlin-android"))
}

extensions.configure<ApplicationExtension> {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.f0x1d.logfox.buildlogic.main

import com.android.build.gradle.LibraryExtension
import com.android.build.api.dsl.LibraryExtension
import com.f0x1d.logfox.buildlogic.extensions.configureKotlinAndroid
import com.f0x1d.logfox.buildlogic.extensions.pluginId
import org.gradle.api.Plugin
Expand All @@ -11,7 +11,6 @@ class AndroidLibraryConventionPlugin : Plugin<Project> {
override fun apply(target: Project) = with(target) {
with(pluginManager) {
apply(pluginId("android-library"))
apply(pluginId("kotlin-android"))
}

extensions.configure<LibraryExtension> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import com.f0x1d.logfox.buildlogic.extensions.JVM_VERSION
import com.f0x1d.logfox.buildlogic.extensions.pluginId
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.configure
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension

class KotlinJvmConventionPlugin : Plugin<Project> {
Expand All @@ -12,7 +13,7 @@ class KotlinJvmConventionPlugin : Plugin<Project> {
apply(pluginId("kotlin-jvm"))
}

extensions.configure(KotlinJvmProjectExtension::class.java) {
extensions.configure<KotlinJvmProjectExtension> {
jvmToolchain(JVM_VERSION)

compilerOptions {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
package com.f0x1d.logfox.buildlogic.main.feature

import com.f0x1d.logfox.buildlogic.additional.AndroidHiltConventionPlugin
import com.f0x1d.logfox.buildlogic.main.AndroidLibraryConventionPlugin
import org.gradle.api.Plugin
import org.gradle.api.Project

class AndroidFeatureConventionPlugin : Plugin<Project> {
override fun apply(target: Project) = with(target) {
with(pluginManager) {
apply("logfox.android.library")
apply("logfox.android.hilt")
apply(AndroidLibraryConventionPlugin::class.java)
apply(AndroidHiltConventionPlugin::class.java)
}
}
}
3 changes: 2 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
plugins {
alias(libs.plugins.android.application) apply false
alias(libs.plugins.android.library) apply false
alias(libs.plugins.kotlin.android) apply false
alias(libs.plugins.compose.compiler) apply false

alias(libs.plugins.kotlin.jvm) apply false

alias(libs.plugins.ksp) apply false
alias(libs.plugins.hilt.android) apply false

Expand Down
17 changes: 8 additions & 9 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,25 @@ compileSdk = "36"
minSdk = "24"
targetSdk = "36"

kotlin = "2.3.0"
kotlin = "2.3.10"
kotlinx-coroutines = "1.10.2"
androidGradlePlugin = "8.13.2"
androidGradlePlugin = "9.0.0"
ksp = "2.3.4"
hilt = "2.58"
hilt = "2.59.1"
javax-inject = "1"
androidx-appcompat = "1.7.1"
androidx-constraintlayout = "2.2.1"
androidx-core = "1.17.0"
androidx-collection = "1.5.0"
androidx-fragment = "1.8.9"
androidx-activity = "1.12.2"
androidx-activity = "1.12.3"
androidx-hilt-navigation-fragment = "1.3.0"
androidx-lifecycle = "2.10.0"
androidx-navigation = "2.9.6"
androidx-navigation = "2.9.7"
androidx-preference = "1.2.1"
androidx-recyclerview = "1.4.0"
androidx-room = "2.8.4"
androidx-compose = "1.10.1"
androidx-compose = "1.10.2"
androidx-compose-material3 = "1.4.0"
androidx-documentfile = "1.1.0"
insetter = "0.6.1"
Expand All @@ -36,8 +36,8 @@ flow-preferences = "1.9.1"
timber = "5.0.1"
libsu = "6.0.0"
junit = "4.13.2"
robolectric = "4.16"
roborazzi = "1.56.0"
robolectric = "4.16.1"
roborazzi = "1.58.0"
androidx-test-core = "1.7.0"
androidx-test-ext-junit = "1.3.0"
androidx-test-espresso = "3.7.0"
Expand Down Expand Up @@ -104,7 +104,6 @@ kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", v

[plugins]

kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" }
android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }
Expand Down