File tree Expand file tree Collapse file tree 29 files changed +251
-327
lines changed
src/main/kotlin/com/android/developers/androidify/plugin
src/main/java/com/android/developers/androidify/theme Expand file tree Collapse file tree 29 files changed +251
-327
lines changed Original file line number Diff line number Diff line change 6060 - name : Build debug APK
6161 run : ./gradlew assembleDebug --no-configuration-cache
6262
63- - name : Verify Screenshot Tests (AndroidX)
64- run : ./gradlew validateDebugScreenshotTest
65-
6663 - name : Run local unit tests
6764 run : ./gradlew testDebugUnitTest
6865
Original file line number Diff line number Diff line change 1010/app /src /release /generated /*
1111/core /build /
1212/feature /build /
13+ /build-plugin /build
14+ /build-plugin /.gradle /*
Original file line number Diff line number Diff line change 1616import com.google.firebase.crashlytics.buildtools.gradle.CrashlyticsExtension
1717
1818plugins {
19- alias(libs.plugins.android.application)
20- alias(libs.plugins.kotlin.android)
21- alias(libs.plugins.kotlin.compose)
19+ alias(libs.plugins.androidify.androidApplication)
2220 alias(libs.plugins.serialization)
2321 alias(libs.plugins.kotlin.ksp)
2422 alias(libs.plugins.hilt)
@@ -31,20 +29,10 @@ plugins {
3129
3230android {
3331 namespace = " com.android.developers.androidify"
34- compileSdk = libs.versions.compileSdk.get().toInt()
35-
3632 defaultConfig {
3733 applicationId = " com.android.developers.androidify"
38- minSdk = libs.versions.minSdk.get().toInt()
39- targetSdk = 36
4034 versionCode = libs.versions.appVersionCode.get().toInt()
4135 versionName = libs.versions.appVersionName.get()
42-
43- testInstrumentationRunner = " androidx.test.runner.AndroidJUnitRunner"
44- }
45-
46- signingConfigs {
47-
4836 }
4937
5038 buildTypes {
@@ -84,13 +72,6 @@ android {
8472 }
8573 }
8674 }
87- compileOptions {
88- sourceCompatibility = JavaVersion .toVersion(libs.versions.javaVersion.get())
89- targetCompatibility = JavaVersion .toVersion(libs.versions.javaVersion.get())
90- }
91- kotlinOptions {
92- jvmTarget = libs.versions.javaVersion.get()
93- }
9475 testOptions {
9576 unitTests {
9677 isIncludeAndroidResources = true
Original file line number Diff line number Diff line change 1515 */
1616import com.android.build.api.dsl.ManagedVirtualDevice
1717import org.gradle.kotlin.dsl.create
18+ import org.jetbrains.kotlin.gradle.dsl.JvmTarget
1819
1920/*
2021 * Copyright 2025 The Android Open Source Project
@@ -39,21 +40,13 @@ plugins {
3940
4041android {
4142 namespace = " com.android.developers.androidify.benchmark"
42- compileSdk = libs.versions.compileSdk.get().toInt()
4343
4444 compileOptions {
4545 sourceCompatibility = JavaVersion .toVersion(libs.versions.javaVersion.get())
4646 targetCompatibility = JavaVersion .toVersion(libs.versions.javaVersion.get())
4747 }
4848
49- kotlinOptions {
50- jvmTarget = libs.versions.javaVersion.get()
51- }
52-
5349 defaultConfig {
54- minSdk = libs.versions.minSdk.get().toInt()
55- targetSdk = libs.versions.compileSdk.get().toInt()
56-
5750 testInstrumentationRunner = " androidx.test.runner.AndroidJUnitRunner"
5851 }
5952
@@ -80,6 +73,12 @@ android {
8073 }
8174}
8275
76+ kotlin {
77+ compilerOptions {
78+ jvmTarget = JvmTarget .fromTarget(libs.versions.javaVersion.get())
79+ }
80+ }
81+
8382// This is the configuration block for the Baseline Profile plugin.
8483// You can specify to run the generators on a managed devices or connected devices.
8584baselineProfile {
Original file line number Diff line number Diff line change 1+ plugins {
2+ `kotlin- dsl`
3+ }
4+
5+ dependencies {
6+ compileOnly(libs.android.gradlePluginApi)
7+ compileOnly(libs.kotlin.gradlePlugin)
8+ }
9+
10+
11+ tasks {
12+ validatePlugins {
13+ enableStricterValidation = true
14+ failOnWarning = true
15+ }
16+ }
17+
18+ gradlePlugin {
19+ plugins {
20+ register(libs.plugins.androidify.androidLibrary.get().pluginId) {
21+ id = libs.plugins.androidify.androidLibrary.get().pluginId
22+ implementationClass = " com.android.developers.androidify.plugin.AndroidLibraryPlugin"
23+ }
24+ register(libs.plugins.androidify.androidComposeLibrary.get().pluginId) {
25+ id = libs.plugins.androidify.androidComposeLibrary.get().pluginId
26+ implementationClass = " com.android.developers.androidify.plugin.AndroidComposeLibraryPlugin"
27+ }
28+ register(libs.plugins.androidify.androidApplication.get().pluginId) {
29+ id = libs.plugins.androidify.androidApplication.get().pluginId
30+ implementationClass = " com.android.developers.androidify.plugin.AndroidApplicationPlugin"
31+ }
32+ }
33+ }
Original file line number Diff line number Diff line change 1+ pluginManagement {
2+ repositories {
3+ gradlePluginPortal()
4+ google()
5+ }
6+ }
7+
8+ dependencyResolutionManagement {
9+ repositories {
10+ google {
11+ content {
12+ includeGroupByRegex(" com\\ .android.*" )
13+ includeGroupByRegex(" com\\ .google.*" )
14+ includeGroupByRegex(" androidx.*" )
15+ }
16+ }
17+ mavenCentral()
18+ }
19+ versionCatalogs {
20+ create(" libs" ) {
21+ from(files(" ../gradle/libs.versions.toml" ))
22+ }
23+ }
24+ }
25+
26+ rootProject.name = " build-logic"
Original file line number Diff line number Diff line change 1+ package com.android.developers.androidify.plugin
2+
3+ import com.android.build.api.dsl.ApplicationExtension
4+ import org.gradle.api.JavaVersion
5+ import org.gradle.api.Plugin
6+ import org.gradle.api.Project
7+ import org.gradle.kotlin.dsl.apply
8+ import org.gradle.kotlin.dsl.assign
9+ import org.gradle.kotlin.dsl.configure
10+ import org.jetbrains.kotlin.gradle.dsl.JvmTarget
11+ import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidProjectExtension
12+
13+ class AndroidApplicationPlugin : Plugin <Project > {
14+ override fun apply (project : Project ) {
15+ with (project) {
16+ apply (plugin = " com.android.application" )
17+ apply (plugin = " org.jetbrains.kotlin.android" )
18+ apply (plugin = " org.jetbrains.kotlin.plugin.compose" )
19+
20+ extensions.configure<ApplicationExtension > {
21+ defaultConfig {
22+ testInstrumentationRunner = " androidx.test.runner.AndroidJUnitRunner"
23+ }
24+ compileOptions {
25+ val javaVersion = JavaVersion .toVersion(getVersionByName(" javaVersion" ))
26+ sourceCompatibility = javaVersion
27+ targetCompatibility = javaVersion
28+ }
29+ buildFeatures {
30+ compose = true
31+ }
32+ }
33+ extensions.configure<KotlinAndroidProjectExtension > {
34+ compilerOptions {
35+ jvmTarget = JvmTarget .fromTarget(getVersionByName(" javaVersion" ))
36+ }
37+ }
38+ }
39+ }
40+ }
Original file line number Diff line number Diff line change 1+ package com.android.developers.androidify.plugin
2+
3+ import com.android.build.api.dsl.LibraryExtension
4+ import org.gradle.api.Plugin
5+ import org.gradle.api.Project
6+ import org.gradle.kotlin.dsl.apply
7+ import org.gradle.kotlin.dsl.configure
8+
9+ class AndroidComposeLibraryPlugin : Plugin <Project > {
10+ override fun apply (project : Project ) {
11+ with (project) {
12+ apply (plugin = " androidify.androidLibrary" )
13+ apply (plugin = " org.jetbrains.kotlin.plugin.compose" )
14+ extensions.configure<LibraryExtension > {
15+ defaultConfig {
16+ testInstrumentationRunner = " com.android.developers.testing.AndroidifyTestRunner"
17+ }
18+ buildFeatures.compose = true
19+ }
20+ }
21+ }
22+ }
Original file line number Diff line number Diff line change 1+ package com.android.developers.androidify.plugin
2+
3+ import com.android.build.api.dsl.LibraryExtension
4+ import org.gradle.api.JavaVersion
5+ import org.gradle.api.Plugin
6+ import org.gradle.api.Project
7+ import org.gradle.kotlin.dsl.apply
8+ import org.gradle.kotlin.dsl.assign
9+ import org.gradle.kotlin.dsl.configure
10+ import org.jetbrains.kotlin.gradle.dsl.JvmTarget
11+ import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidProjectExtension
12+
13+ class AndroidLibraryPlugin : Plugin <Project > {
14+ override fun apply (project : Project ) {
15+ with (project) {
16+ apply (plugin = " com.android.library" )
17+ apply (plugin = " org.jetbrains.kotlin.android" )
18+
19+ extensions.configure<LibraryExtension > {
20+ compileOptions {
21+ val javaVersion = JavaVersion .toVersion(getVersionByName(" javaVersion" ))
22+ sourceCompatibility = javaVersion
23+ targetCompatibility = javaVersion
24+ }
25+ }
26+ extensions.configure<KotlinAndroidProjectExtension > {
27+ compilerOptions {
28+ jvmTarget = JvmTarget .fromTarget(getVersionByName(" javaVersion" ))
29+ }
30+ }
31+ }
32+ }
33+ }
Original file line number Diff line number Diff line change 1+ package com.android.developers.androidify.plugin
2+
3+ import org.gradle.api.GradleException
4+ import org.gradle.api.Project
5+ import org.gradle.api.artifacts.VersionCatalog
6+ import org.gradle.api.artifacts.VersionCatalogsExtension
7+ import org.gradle.kotlin.dsl.getByType
8+
9+ private val Project .versionCatalog: VersionCatalog
10+ get() = project.extensions.getByType<VersionCatalogsExtension >().find(" libs" ).get()
11+
12+ internal fun Project.getVersionByName (name : String ): String {
13+ val version = versionCatalog.findVersion(name)
14+ return if (version.isPresent) {
15+ version.get().requiredVersion
16+ } else {
17+ throw GradleException (" Could not find a version for `$name `" )
18+ }
19+ }
You can’t perform that action at this time.
0 commit comments