Prevent art module types being used outside art
Adds neverallow rules to limit use of art specific module types to art
and external/vixl.
Bug: 136159343
Bug: 134379140
Test: disallowed them in all modules and ran `m droid` to ensure that
soong reported usages in art and external/vixl. Update the rules
and then ran `m droid` again.
Change-Id: I28097a88c13acbf5e65c32cdd9f1a6c6eedfe8a2
diff --git a/build/art.go b/build/art.go
index 4db8da2..14ba7d5 100644
--- a/build/art.go
+++ b/build/art.go
@@ -283,6 +283,24 @@
var artTestMutex sync.Mutex
func init() {
+ artModuleTypes := []string{
+ "art_cc_library",
+ "art_cc_library_static",
+ "art_cc_binary",
+ "art_cc_test",
+ "art_cc_test_library",
+ "art_cc_defaults",
+ "libart_cc_defaults",
+ "libart_static_cc_defaults",
+ "art_global_defaults",
+ "art_debug_defaults",
+ "art_apex_test",
+ }
+ android.AddNeverAllowRules(
+ android.NeverAllow().
+ NotIn("art", "external/vixl").
+ ModuleType(artModuleTypes...))
+
android.RegisterModuleType("art_cc_library", artLibrary)
android.RegisterModuleType("art_cc_library_static", artStaticLibrary)
android.RegisterModuleType("art_cc_binary", artBinary)