Remove obsolete copy headers
When LOCAL_COPY_HEADER lines are removed, we just removed the copy rule, we didn't actually remove the old header, so C/C++ files could still include the old headers during incremental builds. While we do consider LOCAL_COPY_HEADERS as near-obsolet, and it'll disappear as we move everything over to Soong, this could produce some unfortunate incremental build results while people are attempting to remove them. Fix this by ensuring that only the files currently listed in LOCAL_COPY_HEADERS exist in TARGET_OUT_HEADERS after we run Kati. Test: Remove a LOCAL_COPY_HEADERS entry; see the header removed Change-Id: I817305703a6996d50490d552623d7df019b608c9
This commit is contained in:
parent
ac68248051
commit
7842826f49
1 changed files with 39 additions and 0 deletions
|
@ -151,6 +151,45 @@ func runKatiBuild(ctx Context, config Config) {
|
|||
"KATI_PACKAGE_MK_DIR="+config.KatiPackageMkDir())
|
||||
|
||||
runKati(ctx, config, katiBuildSuffix, args, func(env *Environment) {})
|
||||
|
||||
cleanCopyHeaders(ctx, config)
|
||||
}
|
||||
|
||||
func cleanCopyHeaders(ctx Context, config Config) {
|
||||
ctx.BeginTrace("clean", "clean copy headers")
|
||||
defer ctx.EndTrace()
|
||||
|
||||
data, err := ioutil.ReadFile(filepath.Join(config.ProductOut(), ".copied_headers_list"))
|
||||
if err != nil {
|
||||
if os.IsNotExist(err) {
|
||||
return
|
||||
}
|
||||
ctx.Fatalf("Failed to read copied headers list: %v", err)
|
||||
}
|
||||
|
||||
headers := strings.Fields(string(data))
|
||||
if len(headers) < 1 {
|
||||
ctx.Fatal("Failed to parse copied headers list: %q", string(data))
|
||||
}
|
||||
headerDir := headers[0]
|
||||
headers = headers[1:]
|
||||
|
||||
filepath.Walk(headerDir,
|
||||
func(path string, info os.FileInfo, err error) error {
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
if info.IsDir() {
|
||||
return nil
|
||||
}
|
||||
if !inList(path, headers) {
|
||||
ctx.Printf("Removing obsolete header %q", path)
|
||||
if err := os.Remove(path); err != nil {
|
||||
ctx.Fatalf("Failed to remove obsolete header %q: %v", path, err)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
func runKatiPackage(ctx Context, config Config) {
|
||||
|
|
Loading…
Reference in a new issue