Skip to content

Commit 9b840be

Browse files
committed
Eliminate need for extra dependencies and mapping r8 errors to warnings + cleanup compose examples
1 parent 7c25fc1 commit 9b840be

File tree

5 files changed

+21
-42
lines changed

5 files changed

+21
-42
lines changed

example/thirdparty/android-compose-samples/build.mill

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import mill.*, androidlib.*, kotlinlib.*
22

33
object Versions {
44
val kotlinVersion = "2.1.20"
5-
val kotlinLanguageVersion = "1.9"
65

76
val androidCompileSdk = 33
87
val androidMinSdk = 21
@@ -17,8 +16,6 @@ object JetLagged extends mill.api.Module {
1716
object app extends AndroidAppKotlinModule, AndroidR8AppModule {
1817
def kotlinVersion = Versions.kotlinVersion
1918

20-
def kotlinLanguageVersion = Versions.kotlinLanguageVersion
21-
2219
def androidIsDebug = true
2320

2421
override def androidDebugSettings: T[AndroidBuildTypeSettings] = Task {
@@ -61,15 +58,8 @@ object JetLagged extends mill.api.Module {
6158
mvn"androidx.lifecycle:lifecycle-viewmodel-compose:2.9.0",
6259
mvn"androidx.lifecycle:lifecycle-viewmodel-ktx:2.9.0",
6360
mvn"androidx.navigation:navigation-compose:2.9.0",
64-
mvn"androidx.emoji2:emoji2:1.5.0",
65-
mvn"androidx.emoji2:emoji2-views:1.5.0",
66-
mvn"androidx.emoji2:emoji2-bundled:1.5.0",
67-
mvn"androidx.window:window:1.3.0",
68-
mvn"androidx.window.extensions.core:core:1.0.0",
61+
mvn"androidx.window:window:1.4.0",
6962
mvn"androidx.constraintlayout:constraintlayout-compose:1.1.1",
70-
mvn"io.coil-kt:coil-compose:2.7.0",
71-
mvn"androidx.customview:customview-poolingcontainer:1.0.0",
72-
mvn"androidx.tracing:tracing:1.2.0",
7363
mvn"org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1",
7464

7565
// version is resolved from compose-bom
@@ -79,7 +69,6 @@ object JetLagged extends mill.api.Module {
7969
mvn"androidx.compose.ui:ui-util",
8070
mvn"androidx.compose.material3:material3",
8171
mvn"androidx.compose.animation:animation",
82-
mvn"androidx.compose.animation:animation-tooling-internal",
8372
mvn"androidx.compose.material:material-icons-extended",
8473
mvn"androidx.compose.material:material",
8574
mvn"androidx.compose.material3:material3-window-size-class",
@@ -117,10 +106,6 @@ object JetLagged extends mill.api.Module {
117106
true
118107
}
119108

120-
// FIXME: ideally R8 should compile without erroring, but the app seems to be working
121-
// without some reportedly missing classes.
122-
override def androidR8Args = Seq("--map-diagnostics", "error", "warning")
123-
124109
def mvnDeps = super.mvnDeps() ++ Seq(
125110
mvn"junit:junit:4.13.2",
126111
mvn"androidx.test:core:1.6.1",
@@ -140,8 +125,6 @@ object JetNews extends mill.api.Module {
140125
object app extends AndroidAppKotlinModule, AndroidR8AppModule {
141126
def kotlinVersion = Versions.kotlinVersion
142127

143-
def kotlinLanguageVersion = Versions.kotlinLanguageVersion
144-
145128
def androidIsDebug = true
146129

147130
override def androidDebugSettings: T[AndroidBuildTypeSettings] = Task {
@@ -183,15 +166,8 @@ object JetNews extends mill.api.Module {
183166
mvn"androidx.lifecycle:lifecycle-viewmodel-compose:2.9.0",
184167
mvn"androidx.lifecycle:lifecycle-viewmodel-ktx:2.9.0",
185168
mvn"androidx.navigation:navigation-compose:2.9.0",
186-
mvn"androidx.emoji2:emoji2:1.5.0",
187-
mvn"androidx.emoji2:emoji2-views:1.5.0",
188-
mvn"androidx.emoji2:emoji2-bundled:1.5.0",
189169
mvn"androidx.window:window:1.4.0",
190-
mvn"androidx.window.extensions.core:core:1.0.0",
191170
mvn"androidx.constraintlayout:constraintlayout-compose:1.1.1",
192-
mvn"io.coil-kt:coil-compose:2.7.0",
193-
mvn"androidx.customview:customview-poolingcontainer:1.0.0",
194-
mvn"androidx.tracing:tracing:1.2.0",
195171
mvn"org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1",
196172
mvn"androidx.glance:glance-appwidget:1.2.0-alpha01",
197173
mvn"androidx.glance:glance-material3:1.2.0-alpha01",
@@ -241,10 +217,6 @@ object JetNews extends mill.api.Module {
241217
true
242218
}
243219

244-
// FIXME: ideally R8 should compile without erroring, but the app seems to be working
245-
// without some reportedly missing classes.
246-
override def androidR8Args = Seq("--map-diagnostics", "error", "warning")
247-
248220
def mvnDeps = super.mvnDeps() ++ Seq(
249221
mvn"junit:junit:4.13.2",
250222
mvn"androidx.test:core:1.6.1",
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#junit transitive dependency, referencing javax.lang
2+
-dontwarn com.google.errorprone.annotations.**

libs/androidlib/src/mill/androidlib/AndroidAppModule.scala

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -917,6 +917,14 @@ trait AndroidAppModule extends AndroidModule { outer =>
917917
"androidx.test.runner.AndroidJUnitRunner"
918918
}
919919

920+
override def androidCommonProguardFiles: T[Seq[PathRef]] = Task {
921+
val resource = "proguard-android-test.txt"
922+
val resourceUrl = getClass.getResourceAsStream(s"/$resource")
923+
val dest = Task.dest / resource
924+
os.write(dest, resourceUrl)
925+
super.androidCommonProguardFiles() :+ PathRef(dest)
926+
}
927+
920928
private def androidInstrumentedTestsBaseManifest: Task[Elem] = Task.Anon {
921929
val label = s"Tests for ${outer.androidApplicationId}"
922930
val instrumentationName = testFramework()

libs/androidlib/src/mill/androidlib/AndroidModule.scala

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -172,14 +172,17 @@ trait AndroidModule extends JavaModule { outer =>
172172
rules
173173
}
174174

175-
// Common Proguard Rules used by AGP
176-
// Source: https://android.googlesource.com/platform/tools/base/+/refs/heads/studio-master-dev/build-system/gradle-core/src/main/resources/com/android/build/gradle/proguard-common.txt
177-
def commonProguardFile: T[PathRef] = Task {
175+
/**
176+
* Common Proguard Rules used by AGP
177+
*
178+
* Source: https://android.googlesource.com/platform/tools/base/+/refs/heads/studio-master-dev/build-system/gradle-core/src/main/resources/com/android/build/gradle/proguard-common.txt
179+
*/
180+
def androidCommonProguardFiles: T[Seq[PathRef]] = Task {
178181
val resource = "proguard-common.txt"
179182
val resourceUrl = getClass.getResourceAsStream(s"/$resource")
180183
val dest = Task.dest / resource
181184
os.write(dest, resourceUrl)
182-
PathRef(dest)
185+
Seq(PathRef(dest))
183186
}
184187

185188
def androidProguard: T[PathRef] = Task {

libs/androidlib/src/mill/androidlib/AndroidR8AppModule.scala

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -137,10 +137,6 @@ trait AndroidR8AppModule extends AndroidAppModule {
137137
androidReleaseSettings()
138138
}
139139

140-
def androidR8ExtraRules: T[Seq[String]] = Task {
141-
Seq.empty[String]
142-
}
143-
144140
/**
145141
* Prepares the R8 cli command to build this android app!
146142
* @return
@@ -164,7 +160,7 @@ trait AndroidR8AppModule extends AndroidAppModule {
164160
destDir / "res"
165161

166162
// Instruct R8 to print seeds and usage.
167-
val extraRules = androidR8ExtraRules() ++ Seq(
163+
val extraRules = Seq(
168164
s"-printseeds $seedsOut",
169165
s"-printusage $usageOut"
170166
)
@@ -241,10 +237,8 @@ trait AndroidR8AppModule extends AndroidAppModule {
241237
"--pg-conf",
242238
androidProguard().path.toString,
243239
"--pg-conf",
244-
extraRulesFile.toString,
245-
"--pg-conf",
246-
commonProguardFile().path.toString
247-
)
240+
extraRulesFile.toString
241+
) ++ androidCommonProguardFiles().flatMap(pgf => Seq("--pg-conf", pgf.path.toString))
248242

249243
r8ArgsBuilder ++= pgArgs
250244

0 commit comments

Comments
 (0)