Add packing proguard.txt for AARs into gen_maven_artifact macro.

RELNOTES=N/A
PiperOrigin-RevId: 345035431
diff --git a/java/dagger/hilt/android/BUILD b/java/dagger/hilt/android/BUILD
index 0b11f19..ba531dd 100644
--- a/java/dagger/hilt/android/BUILD
+++ b/java/dagger/hilt/android/BUILD
@@ -181,6 +181,9 @@
     ],
     manifest = "AndroidManifest.xml",
     packaging = "aar",
+    proguard_specs = [
+        "//java/dagger/hilt/android/lifecycle:proguard-rules.pro",
+    ],
 )
 
 filegroup(
diff --git a/java/dagger/hilt/android/lifecycle/proguard-rules.pro b/java/dagger/hilt/android/lifecycle/proguard-rules.pro
index 293d195..579ead0 100644
--- a/java/dagger/hilt/android/lifecycle/proguard-rules.pro
+++ b/java/dagger/hilt/android/lifecycle/proguard-rules.pro
@@ -2,4 +2,4 @@
 -keepclasseswithmembernames class * extends androidx.lifecycle.ViewModel {
     @dagger.hilt.android.lifecycle.ViewModelInject
     <init>(...);
-}
\ No newline at end of file
+}
diff --git a/tools/maven.bzl b/tools/maven.bzl
index 76a5872..c79001d 100644
--- a/tools/maven.bzl
+++ b/tools/maven.bzl
@@ -56,7 +56,8 @@
         shaded_deps = None,
         shaded_rules = None,
         manifest = None,
-        lint_deps = None):
+        lint_deps = None,
+        proguard_specs = None):
     _gen_maven_artifact(
         name,
         artifact_name,
@@ -75,7 +76,8 @@
         shaded_deps,
         shaded_rules,
         manifest,
-        lint_deps
+        lint_deps,
+        proguard_specs
     )
 
 def _gen_maven_artifact(
@@ -96,7 +98,8 @@
         shaded_deps,
         shaded_rules,
         manifest,
-        lint_deps):
+        lint_deps,
+        proguard_specs):
     """Generates the files required for a maven artifact.
 
     This macro generates the following targets:
@@ -131,6 +134,7 @@
       shaded_rules: The shaded rules for the jarjar.
       manifest: The AndroidManifest.xml to bundle in when packaing an 'aar'.
       lint_deps: The lint targets to be bundled in when packaging an 'aar'.
+      proguard_specs: The proguard spec files to be bundled in when packaging an 'aar'
     """
 
     _validate_maven_deps(
@@ -181,11 +185,24 @@
         else:
             lint_jar_name = None
 
+        if proguard_specs:
+            # Concatenate all proguard rules since an aar only contains a single proguard.txt
+            native.genrule(
+                name = name + "-proguard.txt",
+                srcs = proguard_specs,
+                outs = [name + "-proguard.txt"],
+                cmd = "cat $(SRCS) > $@",
+            )
+            proguard_file = name + "-proguard.txt"
+        else:
+            proguard_file = None
+
         _package_android_library(
             name = name + "-android-lib",
             manifest = manifest,
             classesJar = name + "-classes.jar",
             lintJar = lint_jar_name,
+            proguardSpec = proguard_file,
         )
 
         # Copy intermediate outputs to final one.
@@ -329,6 +346,8 @@
     inputs = [ctx.file.manifest, ctx.file.classesJar]
     if ctx.file.lintJar:
         inputs.append(ctx.file.lintJar)
+    if ctx.file.proguardSpec:
+        inputs.append(ctx.file.proguardSpec)
 
     ctx.actions.run_shell(
         inputs = inputs,
@@ -340,12 +359,16 @@
             if [[ -a {lintJar} ]]; then
                 cp {lintJar} $TMPDIR/lint.jar
             fi
+            if [[ -a {proguardSpec} ]]; then
+                cp {proguardSpec} $TMPDIR/proguard.txt
+            fi
             touch $TMPDIR/R.txt
             zip -j {outputFile} $TMPDIR/*
             """.format(
             manifest = ctx.file.manifest.path,
             classesJar = ctx.file.classesJar.path,
             lintJar = ctx.file.lintJar.path if ctx.file.lintJar else "none",
+            proguardSpec = ctx.file.proguardSpec.path if ctx.file.proguardSpec else "none",
             outputFile = ctx.outputs.aar.path,
         ),
     )
@@ -368,6 +391,11 @@
             allow_single_file = True,
             mandatory = False,
         ),
+        "proguardSpec": attr.label(
+            doc = "The proguard.txt file.",
+            allow_single_file = True,
+            mandatory = False,
+        ),
     },
     outputs = {
         "aar": "%{name}.aar",