Add source file provider for genrule/srcs, python libraries and rust libraries.

Change-Id: I2d7d4684a10c15aeecc27b8db800ab27a807d2e2
diff --git a/java/base.go b/java/base.go
index 295340d..7e1381b 100644
--- a/java/base.go
+++ b/java/base.go
@@ -24,6 +24,7 @@
 
 	"github.com/google/blueprint/pathtools"
 	"github.com/google/blueprint/proptools"
+	"github.com/google/blueprint"
 
 	"android/soong/aconfig"
 	"android/soong/android"
@@ -1170,6 +1171,7 @@
 	uniqueSrcFiles = append(uniqueSrcFiles, uniqueJavaFiles...)
 	uniqueSrcFiles = append(uniqueSrcFiles, uniqueKtFiles...)
 	j.uniqueSrcFiles = uniqueSrcFiles
+	ctx.SetProvider(blueprint.SrcsFileProviderKey, blueprint.SrcsFileProviderData{SrcPaths: uniqueSrcFiles.Strings()})
 
 	// We don't currently run annotation processors in turbine, which means we can't use turbine
 	// generated header jars when an annotation processor that generates API is enabled.  One
diff --git a/java/sdk_library.go b/java/sdk_library.go
index 4eaa382..fbfe509 100644
--- a/java/sdk_library.go
+++ b/java/sdk_library.go
@@ -1477,7 +1477,6 @@
 		}
 	}
 	ctx.SetProvider(android.AdditionalSdkInfoProvider, android.AdditionalSdkInfo{additionalSdkInfo})
-	ctx.SetProvider(android.SrcsFileProviderKey, android.SrcsFileProviderData{SrcPaths: module.uniqueSrcFiles})
 }
 
 func (module *SdkLibrary) AndroidMkEntries() []android.AndroidMkEntries {