[KeepAnno] Add builder option for experimental keep annotations.

Bug: b/248408342
Change-Id: I22c54b8b2d9f8eb2833d1bdb9c5c4f2ab6685d36
diff --git a/build.gradle b/build.gradle
index abf8ddf..de83e21 100644
--- a/build.gradle
+++ b/build.gradle
@@ -67,7 +67,7 @@
 sourceSets {
     main {
         java {
-            srcDirs = ['src/main/java']
+            srcDirs = ['src/main/java', 'src/keepanno/java']
         }
         resources {
             srcDirs "third_party/api_database/api_database"
@@ -75,7 +75,7 @@
     }
     main11 {
         java {
-            srcDirs = ['src/main/java']
+            srcDirs = ['src/main/java', 'src/keepanno/java']
         }
         resources {
             srcDirs "third_party/api_database/api_database"
@@ -83,7 +83,7 @@
     }
     main17 {
         java {
-            srcDirs = ['src/main/java']
+            srcDirs = ['src/main/java', 'src/keepanno/java']
         }
         resources {
             srcDirs "third_party/api_database/api_database"
@@ -213,7 +213,7 @@
 idea {
     sourceSets.all { SourceSet sources ->
         module {
-            if (sources.name == "main" || sources.name == "keepanno") {
+            if (sources.name == "main") {
                 sourceDirs += sources.java.srcDirs
                 outputDir sources.output.classesDirs[0]
             } else {
@@ -320,8 +320,6 @@
 
     keepannoCompile group: 'org.ow2.asm', name: 'asm', version: asmVersion
     keepannoCompile "com.google.guava:guava:$guavaVersion"
-    testCompile sourceSets.keepanno.output
-    testRuntime sourceSets.keepanno.output
 }
 
 def r8LibPath = "$buildDir/libs/r8lib.jar"
@@ -1106,7 +1104,6 @@
 task testJarSources(type: Jar, dependsOn: [testClasses, buildLibraryDesugarConversions]) {
     archiveFileName = "r8testsbase.jar"
     from sourceSets.test.output
-    from sourceSets.keepanno.output
     // We only want to include tests that use R8 when generating keep rules for applymapping.
     include "com/android/tools/r8/**"
     include "android/**"
@@ -2247,6 +2244,7 @@
 
 test { task ->
 
+    dependsOn sourceSets.keepanno.output
     dependsOn buildLibraryDesugarConversions
     dependsOn getJarsFromSupportLibs
     // R8.jar is required for running bootstrap tests.