Use OutputFilesProvider on certain module types

se_build_files, se_cil_compat_map and sepolicy_vers will be using
OutputFilesProvider for output files inter-module-communication.

Test: CI
Bug: 339477385
Change-Id: Ib9972bcdea4850508cb9070903af53973bff9f66
diff --git a/build/soong/build_files.go b/build/soong/build_files.go
index a15c65c..9f9ea63 100644
--- a/build/soong/build_files.go
+++ b/build/soong/build_files.go
@@ -15,10 +15,8 @@
 package selinux
 
 import (
-	"fmt"
 	"path"
 	"path/filepath"
-	"strings"
 
 	"android/soong/android"
 )
@@ -76,16 +74,6 @@
 	// do nothing
 }
 
-func (b *buildFiles) OutputFiles(tag string) (android.Paths, error) {
-	if paths, ok := b.srcs[tag]; ok {
-		return paths, nil
-	}
-
-	return nil, fmt.Errorf("unknown tag %q. Supported tags are: %q", tag, strings.Join(android.SortedKeys(b.srcs), " "))
-}
-
-var _ android.OutputFileProducer = (*buildFiles)(nil)
-
 type sepolicyDir struct {
 	tag   string
 	paths []string
@@ -120,4 +108,12 @@
 		b.srcs[".product_public_"+ver] = b.findSrcsInDirs(ctx, filepath.Join(ctx.DeviceConfig().ProductSepolicyPrebuiltApiDir(), "prebuilts", "api", ver, "public"))
 		b.srcs[".product_private_"+ver] = b.findSrcsInDirs(ctx, filepath.Join(ctx.DeviceConfig().ProductSepolicyPrebuiltApiDir(), "prebuilts", "api", ver, "private"))
 	}
+
+	b.setOutputFiles(ctx)
+}
+
+func (b *buildFiles) setOutputFiles(ctx android.ModuleContext) {
+	for tag, files := range b.srcs {
+		ctx.SetOutputFiles(files, tag)
+	}
 }