Allow libwifi-hal to use makefile_goal

To migrate libwifi-hal from make to soong, its dependencis
(libwifi-hal-<vendor>) are wrapped in makefile_goal until they are
migrated to soong as well.

Bug: 239984067
Test: m
Merged-In: Icb09ef1bf40311498db04b7358634eadd0fed5fa
Change-Id: Icb09ef1bf40311498db04b7358634eadd0fed5fa
(cherry picked from commit f9392095d7e6f065310ab7662bb34897295f7d9f)
This commit is contained in:
Jooyung Han
2022-07-25 12:32:32 +09:00
parent 950f28abe2
commit 39cadf9f06
2 changed files with 32 additions and 2 deletions

View File

@@ -212,11 +212,16 @@ func createUncompressDexRules() []Rule {
}
func createMakefileGoalRules() []Rule {
allowlist := []string{
// libwifi_hal uses makefile_goal for its dependencies
"frameworks/opt/net/wifi/libwifi_hal",
}
return []Rule{
NeverAllow().
ModuleType("makefile_goal").
WithoutMatcher("product_out_path", Regexp("^boot[0-9a-zA-Z.-]*[.]img$")).
Because("Only boot images may be imported as a makefile goal."),
NotIn(allowlist...).
Because("Only boot images may be imported as a makefile goal if not in allowed projects"),
}
}

View File

@@ -324,7 +324,32 @@ var neverallowTests = []struct {
`),
},
expectedErrors: []string{
"Only boot images may be imported as a makefile goal.",
"Only boot images.* may be imported as a makefile goal",
},
},
{
name: "disallowed makefile_goal outside external",
fs: map[string][]byte{
"project/Android.bp": []byte(`
makefile_goal {
name: "foo",
product_out_path: "obj/EXE/foo",
}
`),
},
expectedErrors: []string{
"not in allowed projects",
},
},
{
name: "allow makefile_goal within external",
fs: map[string][]byte{
"frameworks/opt/net/wifi/libwifi_hal/Android.bp": []byte(`
makefile_goal {
name: "foo",
product_out_path: "obj/EXE/foo",
}
`),
},
},
// Tests for the rule prohibiting the use of framework