Do not load Android.mk files from the directories defined in the list.

This intial list contains the directories that don't have any Android.mk file, and this will prevent new Android.mk file being added in these directories.

Bug: 318428689
Test: CIs
Change-Id: Ifde1b77ad17b8bb2e7ba962229cee6ba267d6316
This commit is contained in:
Wei Li 2024-01-02 17:56:51 -08:00
parent a3759f98a6
commit 0d7231170f
4 changed files with 50 additions and 1 deletions

4
OWNERS
View file

@ -12,4 +12,6 @@ lamontjones@google.com
mrziwang@google.com
spandandas@google.com
weiwli@google.com
yudiliu@google.com
yudiliu@google.com
per-file build/soong/ui/build/androidmk_denylist.go = joeo@google.com, weiwli@google.com

View file

@ -35,6 +35,7 @@ bootstrap_go_package {
"blueprint",
"blueprint-bootstrap",
"blueprint-microfactory",
"soong-android",
"soong-finder",
"soong-remoteexec",
"soong-shared",
@ -46,6 +47,7 @@ bootstrap_go_package {
"soong-ui-tracer",
],
srcs: [
"androidmk_denylist.go",
"build.go",
"cleanbuild.go",
"config.go",

View file

@ -0,0 +1,44 @@
// Copyright 2024 Google Inc. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package build
import (
"strings"
"android/soong/android"
)
var androidmk_denylist []string = []string{
"chained_build_config/",
"cts/",
"dalvik/",
"developers/",
"kernel/",
"libcore/",
"libnativehelper/",
"pdk/",
"toolchain/",
}
func blockAndroidMks(androidMks []string) []string {
return android.FilterListPred(androidMks, func(s string) bool {
for _, d := range androidmk_denylist {
if strings.HasPrefix(s, d) {
return false
}
}
return true
})
}

View file

@ -128,6 +128,7 @@ func FindSources(ctx Context, config Config, f *finder.Finder) {
// Stop searching a subdirectory recursively after finding an Android.mk.
androidMks := f.FindFirstNamedAt(".", "Android.mk")
androidMks = blockAndroidMks(androidMks)
err := dumpListToFile(ctx, config, androidMks, filepath.Join(dumpDir, "Android.mk.list"))
if err != nil {
ctx.Fatalf("Could not export module list: %v", err)