Skip to content

Commit 7ba2d2a

Browse files
authored
Simplify proguard handling logic. (#2744)
* Simplify proguard handling logic. This change removes custom logic that configures proguarding and consumerProguardFiles for SDKs and instead makes all configuration explicit per SDK. * Fix
1 parent c816404 commit 7ba2d2a

File tree

21 files changed

+10
-532
lines changed

21 files changed

+10
-532
lines changed

build.gradle

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -101,55 +101,6 @@ configure(subprojects) {
101101
apply plugin: "org.jlleitschuh.gradle.ktlint"
102102
}
103103

104-
105-
/**
106-
* Configure "Preguarding" for the subprojects.
107-
*
108-
* <p> The way it works is every library subproject that has the android plugin applied and:
109-
*
110-
* <ul>
111-
* <li>Contains a file named "preguard.txt" will get proguarded using that file as proguard
112-
* configuration in release mode.
113-
* <li>Contains a file named "proguard.txt" will ship this file inside its release aar as a
114-
* consumer proguard file.
115-
*/
116-
configure(subprojects) {
117-
def PREGUARD_FILE_NAME = 'preguard.txt'
118-
def CONSUMER_PROGUARD_FILE_NAME = 'proguard.txt'
119-
afterEvaluate { Project sub ->
120-
121-
if (sub.plugins.findPlugin('com.android.library') == null) {
122-
return
123-
}
124-
125-
boolean skipPreguard = sub.getProperties().getOrDefault('firebaseSkipPreguard', 'true').toBoolean()
126-
def defaultPreguard = rootProject.getProperties().getOrDefault('firebaseDefaultPreguardFile', 'default-preguard.txt')
127-
128-
if(!skipPreguard) {
129-
130-
sub.android {
131-
buildTypes {
132-
release {
133-
// default behavior for minifyEnabled is:
134-
// useProguard true
135-
// shrinkResources false
136-
minifyEnabled true
137-
proguardFiles file(defaultPreguard), sub.file(PREGUARD_FILE_NAME)
138-
}
139-
}
140-
}
141-
}
142-
143-
// Ship consumer proguard config if it exists.
144-
if (sub.file(CONSUMER_PROGUARD_FILE_NAME).exists()) {
145-
sub.android { buildTypes { release { consumerProguardFiles 'proguard.txt' } } }
146-
}
147-
148-
sub.apply plugin: LicenseResolverPlugin
149-
}
150-
}
151-
152-
153104
task clean(type: Delete) {
154105
delete rootProject.buildDir
155106
}

buildSrc/src/main/java/com/google/firebase/gradle/plugins/FirebaseLibraryPlugin.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.google.firebase.gradle.plugins.apiinfo.GetMetalavaJarTask;
2626
import com.google.firebase.gradle.plugins.ci.Coverage;
2727
import com.google.firebase.gradle.plugins.ci.device.FirebaseTestServer;
28+
import com.google.firebase.gradle.plugins.license.LicenseResolverPlugin;
2829
import java.io.File;
2930
import java.nio.file.Paths;
3031
import org.gradle.api.JavaVersion;
@@ -40,6 +41,7 @@ public class FirebaseLibraryPlugin implements Plugin<Project> {
4041
@Override
4142
public void apply(Project project) {
4243
project.apply(ImmutableMap.of("plugin", "com.android.library"));
44+
project.apply(ImmutableMap.of("plugin", LicenseResolverPlugin.class));
4345

4446
FirebaseLibraryExtension firebaseLibrary =
4547
project

buildSrc/src/main/java/com/google/firebase/gradle/plugins/license/LicenseResolverPlugin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
* GenerateLicensesTask} to create the artifacts necessary for our release.
4141
* </ul>
4242
*/
43-
class LicenseResolverPlugin implements Plugin<Project> {
43+
public class LicenseResolverPlugin implements Plugin<Project> {
4444
private static final String[] ANDROID_PLUGINS = {
4545
"com.android.application", "com.android.library", "com.android.test"
4646
};

encoders/firebase-encoders-json/proguard.txt

Whitespace-only changes.

firebase-common/firebase-common.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ android {
3333
versionName version
3434
multiDexEnabled true
3535
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
36+
consumerProguardFiles 'proguard.txt'
3637
}
3738
sourceSets {
3839
androidTest {

firebase-common/mapping.txt

Lines changed: 0 additions & 412 deletions
This file was deleted.

firebase-components/firebase-components.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ android {
2727
targetSdkVersion project.targetSdkVersion
2828
versionName version
2929
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
30+
consumerProguardFiles 'proguard.txt'
3031
}
3132

3233
compileOptions {

firebase-database-collection/mapping.txt

Whitespace-only changes.

firebase-database-collection/preguard.txt

Lines changed: 0 additions & 32 deletions
This file was deleted.

firebase-database/proguard.txt

Whitespace-only changes.

firebase-firestore/firebase-firestore.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ android {
5858
versionName version
5959
multiDexEnabled true
6060
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
61+
consumerProguardFiles 'proguard.txt'
6162
}
6263

6364
sourceSets {

firebase-functions/firebase-functions.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ android {
3333
versionName version
3434
multiDexEnabled true
3535
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
36+
consumerProguardFiles 'proguard.txt'
3637
}
3738
sourceSets {
3839
androidTest {

firebase-inappmessaging-display/preguard.txt

Lines changed: 0 additions & 18 deletions
This file was deleted.

firebase-inappmessaging-display/proguard.txt

Whitespace-only changes.

firebase-inappmessaging/firebase-inappmessaging.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ android {
5959
multiDexEnabled true
6060
versionName version
6161
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
62+
consumerProguardFiles 'proguard.txt'
6263
}
6364
sourceSets {
6465
main {

firebase-inappmessaging/mapping.txt

Whitespace-only changes.

firebase-inappmessaging/preguard.txt

Lines changed: 0 additions & 20 deletions
This file was deleted.

firebase-storage/mapping.txt

Whitespace-only changes.

firebase-storage/proguard.txt

Whitespace-only changes.

transport/transport-api/transport-api.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ android {
2626
minSdkVersion 14
2727
targetSdkVersion project.targetSdkVersion
2828
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
29+
consumerProguardFiles 'proguard.txt'
2930
}
3031

3132
compileOptions {

transport/transport-backend-cct/transport-backend-cct.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ android {
4343
targetSdkVersion project.targetSdkVersion
4444
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
4545
versionName version
46+
consumerProguardFiles 'proguard.txt'
4647
}
4748
compileOptions {
4849
sourceCompatibility = '1.8'

0 commit comments

Comments
 (0)