Improve handling of generated include dirs

The exported include dirs includes both source and generated
directories (e.g. containing aidl generated headers). The latter are
always arch specific so if they are present they make all the include
directories arch specific.

This change separates the source and generated include dirs so that
the source include dirs (which are probably not arch specific) can be
optimized separately from the arch specific generated include dirs.

The FilterPathList() func was refactored to extract the more general
FilterPathListPredicate() func.

A number of tests needed to be updated to reflect the more optimal
snapshot creation.

Bug: 142918168
Test: m checkbuild
Change-Id: Id1a23d35a45b250ae2168834f9c2a65c86a5fd77
This commit is contained in:
Paul Duffin
2019-12-13 00:03:35 +00:00
parent a7cd8c8344
commit 57b9e1da75
3 changed files with 60 additions and 92 deletions

View File

@@ -512,8 +512,12 @@ func inPathList(p Path, list []Path) bool {
} }
func FilterPathList(list []Path, filter []Path) (remainder []Path, filtered []Path) { func FilterPathList(list []Path, filter []Path) (remainder []Path, filtered []Path) {
return FilterPathListPredicate(list, func(p Path) bool { return inPathList(p, filter) })
}
func FilterPathListPredicate(list []Path, predicate func(Path) bool) (remainder []Path, filtered []Path) {
for _, l := range list { for _, l := range list {
if inPathList(l, filter) { if predicate(l) {
filtered = append(filtered, l) filtered = append(filtered, l)
} else { } else {
remainder = append(remainder, l) remainder = append(remainder, l)

View File

@@ -1497,14 +1497,20 @@ func (mt *librarySdkMemberType) organizeVariants(member android.SdkMember) *nati
for _, variant := range member.Variants() { for _, variant := range member.Variants() {
ccModule := variant.(*Module) ccModule := variant.(*Module)
// Separate out the generated include dirs (which are arch specific) from the
// include dirs (which may not be).
exportedIncludeDirs, exportedGeneratedIncludeDirs := android.FilterPathListPredicate(
ccModule.ExportedIncludeDirs(), isGeneratedHeaderDirectory)
info.archVariantProperties = append(info.archVariantProperties, nativeLibInfoProperties{ info.archVariantProperties = append(info.archVariantProperties, nativeLibInfoProperties{
name: memberName, name: memberName,
archType: ccModule.Target().Arch.ArchType.String(), archType: ccModule.Target().Arch.ArchType.String(),
ExportedIncludeDirs: ccModule.ExportedIncludeDirs(), ExportedIncludeDirs: exportedIncludeDirs,
ExportedSystemIncludeDirs: ccModule.ExportedSystemIncludeDirs(), ExportedGeneratedIncludeDirs: exportedGeneratedIncludeDirs,
ExportedFlags: ccModule.ExportedFlags(), ExportedSystemIncludeDirs: ccModule.ExportedSystemIncludeDirs(),
exportedGeneratedHeaders: ccModule.ExportedGeneratedHeaders(), ExportedFlags: ccModule.ExportedFlags(),
outputFile: ccModule.OutputFile().Path(), exportedGeneratedHeaders: ccModule.ExportedGeneratedHeaders(),
outputFile: ccModule.OutputFile().Path(),
}) })
} }
@@ -1518,6 +1524,11 @@ func (mt *librarySdkMemberType) organizeVariants(member android.SdkMember) *nati
return info return info
} }
func isGeneratedHeaderDirectory(p android.Path) bool {
_, gen := p.(android.WritablePath)
return gen
}
// Extract common properties from a slice of property structures of the same type. // Extract common properties from a slice of property structures of the same type.
// //
// All the property structures must be of the same type. // All the property structures must be of the same type.
@@ -1580,16 +1591,11 @@ func extractCommonProperties(commonProperties interface{}, inputPropertiesSlice
func buildSharedNativeLibSnapshot(sdkModuleContext android.ModuleContext, info *nativeLibInfo, builder android.SnapshotBuilder, member android.SdkMember) { func buildSharedNativeLibSnapshot(sdkModuleContext android.ModuleContext, info *nativeLibInfo, builder android.SnapshotBuilder, member android.SdkMember) {
// a function for emitting include dirs // a function for emitting include dirs
addExportedDirCopyCommandsForNativeLibs := func(lib nativeLibInfoProperties) { addExportedDirCopyCommandsForNativeLibs := func(lib nativeLibInfoProperties) {
// Do not include ExportedGeneratedIncludeDirs in the list of directories whose
// contents are copied as they are copied from exportedGeneratedHeaders below.
includeDirs := lib.ExportedIncludeDirs includeDirs := lib.ExportedIncludeDirs
includeDirs = append(includeDirs, lib.ExportedSystemIncludeDirs...) includeDirs = append(includeDirs, lib.ExportedSystemIncludeDirs...)
if len(includeDirs) == 0 {
return
}
for _, dir := range includeDirs { for _, dir := range includeDirs {
if _, gen := dir.(android.WritablePath); gen {
// generated headers are copied via exportedGeneratedHeaders. See below.
continue
}
// lib.ArchType is "" for common properties. // lib.ArchType is "" for common properties.
targetDir := filepath.Join(lib.archType, nativeIncludeDir) targetDir := filepath.Join(lib.archType, nativeIncludeDir)
@@ -1676,13 +1682,14 @@ func nativeIncludeDirPathsFor(lib nativeLibInfoProperties, systemInclude bool) [
var result []string var result []string
var includeDirs []android.Path var includeDirs []android.Path
if !systemInclude { if !systemInclude {
includeDirs = lib.ExportedIncludeDirs // Include the generated include dirs in the exported include dirs.
includeDirs = append(lib.ExportedIncludeDirs, lib.ExportedGeneratedIncludeDirs...)
} else { } else {
includeDirs = lib.ExportedSystemIncludeDirs includeDirs = lib.ExportedSystemIncludeDirs
} }
for _, dir := range includeDirs { for _, dir := range includeDirs {
var path string var path string
if _, gen := dir.(android.WritablePath); gen { if isGeneratedHeaderDirectory(dir) {
path = filepath.Join(nativeGeneratedIncludeDir, lib.name) path = filepath.Join(nativeGeneratedIncludeDir, lib.name)
} else { } else {
path = filepath.Join(nativeIncludeDir, dir.String()) path = filepath.Join(nativeIncludeDir, dir.String())
@@ -1707,9 +1714,10 @@ type nativeLibInfoProperties struct {
// This is "" for common properties. // This is "" for common properties.
archType string archType string
ExportedIncludeDirs android.Paths ExportedIncludeDirs android.Paths
ExportedSystemIncludeDirs android.Paths ExportedGeneratedIncludeDirs android.Paths
ExportedFlags []string ExportedSystemIncludeDirs android.Paths
ExportedFlags []string
// exportedGeneratedHeaders is not exported as if set it is always arch specific. // exportedGeneratedHeaders is not exported as if set it is always arch specific.
exportedGeneratedHeaders android.Paths exportedGeneratedHeaders android.Paths

View File

@@ -288,20 +288,15 @@ func TestSnapshotWithCcSharedLibrary(t *testing.T) {
cc_prebuilt_library_shared { cc_prebuilt_library_shared {
name: "mysdk_mynativelib@current", name: "mysdk_mynativelib@current",
sdk_member_name: "mynativelib", sdk_member_name: "mynativelib",
export_include_dirs: ["include/include"],
arch: { arch: {
arm64: { arm64: {
srcs: ["arm64/lib/mynativelib.so"], srcs: ["arm64/lib/mynativelib.so"],
export_include_dirs: [ export_include_dirs: ["arm64/include_gen/mynativelib"],
"arm64/include/include",
"arm64/include_gen/mynativelib",
],
}, },
arm: { arm: {
srcs: ["arm/lib/mynativelib.so"], srcs: ["arm/lib/mynativelib.so"],
export_include_dirs: [ export_include_dirs: ["arm/include_gen/mynativelib"],
"arm/include/include",
"arm/include_gen/mynativelib",
],
}, },
}, },
stl: "none", stl: "none",
@@ -311,20 +306,15 @@ cc_prebuilt_library_shared {
cc_prebuilt_library_shared { cc_prebuilt_library_shared {
name: "mynativelib", name: "mynativelib",
prefer: false, prefer: false,
export_include_dirs: ["include/include"],
arch: { arch: {
arm64: { arm64: {
srcs: ["arm64/lib/mynativelib.so"], srcs: ["arm64/lib/mynativelib.so"],
export_include_dirs: [ export_include_dirs: ["arm64/include_gen/mynativelib"],
"arm64/include/include",
"arm64/include_gen/mynativelib",
],
}, },
arm: { arm: {
srcs: ["arm/lib/mynativelib.so"], srcs: ["arm/lib/mynativelib.so"],
export_include_dirs: [ export_include_dirs: ["arm/include_gen/mynativelib"],
"arm/include/include",
"arm/include_gen/mynativelib",
],
}, },
}, },
stl: "none", stl: "none",
@@ -337,13 +327,12 @@ sdk_snapshot {
} }
`), `),
checkAllCopyRules(` checkAllCopyRules(`
include/Test.h -> include/include/Test.h
.intermediates/mynativelib/android_arm64_armv8-a_core_shared/mynativelib.so -> arm64/lib/mynativelib.so .intermediates/mynativelib/android_arm64_armv8-a_core_shared/mynativelib.so -> arm64/lib/mynativelib.so
include/Test.h -> arm64/include/include/Test.h
.intermediates/mynativelib/android_arm64_armv8-a_core_shared/gen/aidl/aidl/foo/bar/Test.h -> arm64/include_gen/mynativelib/aidl/foo/bar/Test.h .intermediates/mynativelib/android_arm64_armv8-a_core_shared/gen/aidl/aidl/foo/bar/Test.h -> arm64/include_gen/mynativelib/aidl/foo/bar/Test.h
.intermediates/mynativelib/android_arm64_armv8-a_core_shared/gen/aidl/aidl/foo/bar/BnTest.h -> arm64/include_gen/mynativelib/aidl/foo/bar/BnTest.h .intermediates/mynativelib/android_arm64_armv8-a_core_shared/gen/aidl/aidl/foo/bar/BnTest.h -> arm64/include_gen/mynativelib/aidl/foo/bar/BnTest.h
.intermediates/mynativelib/android_arm64_armv8-a_core_shared/gen/aidl/aidl/foo/bar/BpTest.h -> arm64/include_gen/mynativelib/aidl/foo/bar/BpTest.h .intermediates/mynativelib/android_arm64_armv8-a_core_shared/gen/aidl/aidl/foo/bar/BpTest.h -> arm64/include_gen/mynativelib/aidl/foo/bar/BpTest.h
.intermediates/mynativelib/android_arm_armv7-a-neon_core_shared/mynativelib.so -> arm/lib/mynativelib.so .intermediates/mynativelib/android_arm_armv7-a-neon_core_shared/mynativelib.so -> arm/lib/mynativelib.so
include/Test.h -> arm/include/include/Test.h
.intermediates/mynativelib/android_arm_armv7-a-neon_core_shared/gen/aidl/aidl/foo/bar/Test.h -> arm/include_gen/mynativelib/aidl/foo/bar/Test.h .intermediates/mynativelib/android_arm_armv7-a-neon_core_shared/gen/aidl/aidl/foo/bar/Test.h -> arm/include_gen/mynativelib/aidl/foo/bar/Test.h
.intermediates/mynativelib/android_arm_armv7-a-neon_core_shared/gen/aidl/aidl/foo/bar/BnTest.h -> arm/include_gen/mynativelib/aidl/foo/bar/BnTest.h .intermediates/mynativelib/android_arm_armv7-a-neon_core_shared/gen/aidl/aidl/foo/bar/BnTest.h -> arm/include_gen/mynativelib/aidl/foo/bar/BnTest.h
.intermediates/mynativelib/android_arm_armv7-a-neon_core_shared/gen/aidl/aidl/foo/bar/BpTest.h -> arm/include_gen/mynativelib/aidl/foo/bar/BpTest.h .intermediates/mynativelib/android_arm_armv7-a-neon_core_shared/gen/aidl/aidl/foo/bar/BpTest.h -> arm/include_gen/mynativelib/aidl/foo/bar/BpTest.h
@@ -389,20 +378,15 @@ cc_prebuilt_library_shared {
sdk_member_name: "mynativelib", sdk_member_name: "mynativelib",
device_supported: false, device_supported: false,
host_supported: true, host_supported: true,
export_include_dirs: ["include/include"],
arch: { arch: {
x86_64: { x86_64: {
srcs: ["x86_64/lib/mynativelib.so"], srcs: ["x86_64/lib/mynativelib.so"],
export_include_dirs: [ export_include_dirs: ["x86_64/include_gen/mynativelib"],
"x86_64/include/include",
"x86_64/include_gen/mynativelib",
],
}, },
x86: { x86: {
srcs: ["x86/lib/mynativelib.so"], srcs: ["x86/lib/mynativelib.so"],
export_include_dirs: [ export_include_dirs: ["x86/include_gen/mynativelib"],
"x86/include/include",
"x86/include_gen/mynativelib",
],
}, },
}, },
stl: "none", stl: "none",
@@ -414,20 +398,15 @@ cc_prebuilt_library_shared {
prefer: false, prefer: false,
device_supported: false, device_supported: false,
host_supported: true, host_supported: true,
export_include_dirs: ["include/include"],
arch: { arch: {
x86_64: { x86_64: {
srcs: ["x86_64/lib/mynativelib.so"], srcs: ["x86_64/lib/mynativelib.so"],
export_include_dirs: [ export_include_dirs: ["x86_64/include_gen/mynativelib"],
"x86_64/include/include",
"x86_64/include_gen/mynativelib",
],
}, },
x86: { x86: {
srcs: ["x86/lib/mynativelib.so"], srcs: ["x86/lib/mynativelib.so"],
export_include_dirs: [ export_include_dirs: ["x86/include_gen/mynativelib"],
"x86/include/include",
"x86/include_gen/mynativelib",
],
}, },
}, },
stl: "none", stl: "none",
@@ -442,13 +421,12 @@ sdk_snapshot {
} }
`), `),
checkAllCopyRules(` checkAllCopyRules(`
include/Test.h -> include/include/Test.h
.intermediates/mynativelib/linux_glibc_x86_64_shared/mynativelib.so -> x86_64/lib/mynativelib.so .intermediates/mynativelib/linux_glibc_x86_64_shared/mynativelib.so -> x86_64/lib/mynativelib.so
include/Test.h -> x86_64/include/include/Test.h
.intermediates/mynativelib/linux_glibc_x86_64_shared/gen/aidl/aidl/foo/bar/Test.h -> x86_64/include_gen/mynativelib/aidl/foo/bar/Test.h .intermediates/mynativelib/linux_glibc_x86_64_shared/gen/aidl/aidl/foo/bar/Test.h -> x86_64/include_gen/mynativelib/aidl/foo/bar/Test.h
.intermediates/mynativelib/linux_glibc_x86_64_shared/gen/aidl/aidl/foo/bar/BnTest.h -> x86_64/include_gen/mynativelib/aidl/foo/bar/BnTest.h .intermediates/mynativelib/linux_glibc_x86_64_shared/gen/aidl/aidl/foo/bar/BnTest.h -> x86_64/include_gen/mynativelib/aidl/foo/bar/BnTest.h
.intermediates/mynativelib/linux_glibc_x86_64_shared/gen/aidl/aidl/foo/bar/BpTest.h -> x86_64/include_gen/mynativelib/aidl/foo/bar/BpTest.h .intermediates/mynativelib/linux_glibc_x86_64_shared/gen/aidl/aidl/foo/bar/BpTest.h -> x86_64/include_gen/mynativelib/aidl/foo/bar/BpTest.h
.intermediates/mynativelib/linux_glibc_x86_shared/mynativelib.so -> x86/lib/mynativelib.so .intermediates/mynativelib/linux_glibc_x86_shared/mynativelib.so -> x86/lib/mynativelib.so
include/Test.h -> x86/include/include/Test.h
.intermediates/mynativelib/linux_glibc_x86_shared/gen/aidl/aidl/foo/bar/Test.h -> x86/include_gen/mynativelib/aidl/foo/bar/Test.h .intermediates/mynativelib/linux_glibc_x86_shared/gen/aidl/aidl/foo/bar/Test.h -> x86/include_gen/mynativelib/aidl/foo/bar/Test.h
.intermediates/mynativelib/linux_glibc_x86_shared/gen/aidl/aidl/foo/bar/BnTest.h -> x86/include_gen/mynativelib/aidl/foo/bar/BnTest.h .intermediates/mynativelib/linux_glibc_x86_shared/gen/aidl/aidl/foo/bar/BnTest.h -> x86/include_gen/mynativelib/aidl/foo/bar/BnTest.h
.intermediates/mynativelib/linux_glibc_x86_shared/gen/aidl/aidl/foo/bar/BpTest.h -> x86/include_gen/mynativelib/aidl/foo/bar/BpTest.h .intermediates/mynativelib/linux_glibc_x86_shared/gen/aidl/aidl/foo/bar/BpTest.h -> x86/include_gen/mynativelib/aidl/foo/bar/BpTest.h
@@ -485,20 +463,15 @@ func TestSnapshotWithCcStaticLibrary(t *testing.T) {
cc_prebuilt_library_static { cc_prebuilt_library_static {
name: "mysdk_mynativelib@current", name: "mysdk_mynativelib@current",
sdk_member_name: "mynativelib", sdk_member_name: "mynativelib",
export_include_dirs: ["include/include"],
arch: { arch: {
arm64: { arm64: {
srcs: ["arm64/lib/mynativelib.a"], srcs: ["arm64/lib/mynativelib.a"],
export_include_dirs: [ export_include_dirs: ["arm64/include_gen/mynativelib"],
"arm64/include/include",
"arm64/include_gen/mynativelib",
],
}, },
arm: { arm: {
srcs: ["arm/lib/mynativelib.a"], srcs: ["arm/lib/mynativelib.a"],
export_include_dirs: [ export_include_dirs: ["arm/include_gen/mynativelib"],
"arm/include/include",
"arm/include_gen/mynativelib",
],
}, },
}, },
stl: "none", stl: "none",
@@ -508,20 +481,15 @@ cc_prebuilt_library_static {
cc_prebuilt_library_static { cc_prebuilt_library_static {
name: "mynativelib", name: "mynativelib",
prefer: false, prefer: false,
export_include_dirs: ["include/include"],
arch: { arch: {
arm64: { arm64: {
srcs: ["arm64/lib/mynativelib.a"], srcs: ["arm64/lib/mynativelib.a"],
export_include_dirs: [ export_include_dirs: ["arm64/include_gen/mynativelib"],
"arm64/include/include",
"arm64/include_gen/mynativelib",
],
}, },
arm: { arm: {
srcs: ["arm/lib/mynativelib.a"], srcs: ["arm/lib/mynativelib.a"],
export_include_dirs: [ export_include_dirs: ["arm/include_gen/mynativelib"],
"arm/include/include",
"arm/include_gen/mynativelib",
],
}, },
}, },
stl: "none", stl: "none",
@@ -534,13 +502,12 @@ sdk_snapshot {
} }
`), `),
checkAllCopyRules(` checkAllCopyRules(`
include/Test.h -> include/include/Test.h
.intermediates/mynativelib/android_arm64_armv8-a_core_static/mynativelib.a -> arm64/lib/mynativelib.a .intermediates/mynativelib/android_arm64_armv8-a_core_static/mynativelib.a -> arm64/lib/mynativelib.a
include/Test.h -> arm64/include/include/Test.h
.intermediates/mynativelib/android_arm64_armv8-a_core_static/gen/aidl/aidl/foo/bar/Test.h -> arm64/include_gen/mynativelib/aidl/foo/bar/Test.h .intermediates/mynativelib/android_arm64_armv8-a_core_static/gen/aidl/aidl/foo/bar/Test.h -> arm64/include_gen/mynativelib/aidl/foo/bar/Test.h
.intermediates/mynativelib/android_arm64_armv8-a_core_static/gen/aidl/aidl/foo/bar/BnTest.h -> arm64/include_gen/mynativelib/aidl/foo/bar/BnTest.h .intermediates/mynativelib/android_arm64_armv8-a_core_static/gen/aidl/aidl/foo/bar/BnTest.h -> arm64/include_gen/mynativelib/aidl/foo/bar/BnTest.h
.intermediates/mynativelib/android_arm64_armv8-a_core_static/gen/aidl/aidl/foo/bar/BpTest.h -> arm64/include_gen/mynativelib/aidl/foo/bar/BpTest.h .intermediates/mynativelib/android_arm64_armv8-a_core_static/gen/aidl/aidl/foo/bar/BpTest.h -> arm64/include_gen/mynativelib/aidl/foo/bar/BpTest.h
.intermediates/mynativelib/android_arm_armv7-a-neon_core_static/mynativelib.a -> arm/lib/mynativelib.a .intermediates/mynativelib/android_arm_armv7-a-neon_core_static/mynativelib.a -> arm/lib/mynativelib.a
include/Test.h -> arm/include/include/Test.h
.intermediates/mynativelib/android_arm_armv7-a-neon_core_static/gen/aidl/aidl/foo/bar/Test.h -> arm/include_gen/mynativelib/aidl/foo/bar/Test.h .intermediates/mynativelib/android_arm_armv7-a-neon_core_static/gen/aidl/aidl/foo/bar/Test.h -> arm/include_gen/mynativelib/aidl/foo/bar/Test.h
.intermediates/mynativelib/android_arm_armv7-a-neon_core_static/gen/aidl/aidl/foo/bar/BnTest.h -> arm/include_gen/mynativelib/aidl/foo/bar/BnTest.h .intermediates/mynativelib/android_arm_armv7-a-neon_core_static/gen/aidl/aidl/foo/bar/BnTest.h -> arm/include_gen/mynativelib/aidl/foo/bar/BnTest.h
.intermediates/mynativelib/android_arm_armv7-a-neon_core_static/gen/aidl/aidl/foo/bar/BpTest.h -> arm/include_gen/mynativelib/aidl/foo/bar/BpTest.h .intermediates/mynativelib/android_arm_armv7-a-neon_core_static/gen/aidl/aidl/foo/bar/BpTest.h -> arm/include_gen/mynativelib/aidl/foo/bar/BpTest.h
@@ -586,20 +553,15 @@ cc_prebuilt_library_static {
sdk_member_name: "mynativelib", sdk_member_name: "mynativelib",
device_supported: false, device_supported: false,
host_supported: true, host_supported: true,
export_include_dirs: ["include/include"],
arch: { arch: {
x86_64: { x86_64: {
srcs: ["x86_64/lib/mynativelib.a"], srcs: ["x86_64/lib/mynativelib.a"],
export_include_dirs: [ export_include_dirs: ["x86_64/include_gen/mynativelib"],
"x86_64/include/include",
"x86_64/include_gen/mynativelib",
],
}, },
x86: { x86: {
srcs: ["x86/lib/mynativelib.a"], srcs: ["x86/lib/mynativelib.a"],
export_include_dirs: [ export_include_dirs: ["x86/include_gen/mynativelib"],
"x86/include/include",
"x86/include_gen/mynativelib",
],
}, },
}, },
stl: "none", stl: "none",
@@ -611,20 +573,15 @@ cc_prebuilt_library_static {
prefer: false, prefer: false,
device_supported: false, device_supported: false,
host_supported: true, host_supported: true,
export_include_dirs: ["include/include"],
arch: { arch: {
x86_64: { x86_64: {
srcs: ["x86_64/lib/mynativelib.a"], srcs: ["x86_64/lib/mynativelib.a"],
export_include_dirs: [ export_include_dirs: ["x86_64/include_gen/mynativelib"],
"x86_64/include/include",
"x86_64/include_gen/mynativelib",
],
}, },
x86: { x86: {
srcs: ["x86/lib/mynativelib.a"], srcs: ["x86/lib/mynativelib.a"],
export_include_dirs: [ export_include_dirs: ["x86/include_gen/mynativelib"],
"x86/include/include",
"x86/include_gen/mynativelib",
],
}, },
}, },
stl: "none", stl: "none",
@@ -639,13 +596,12 @@ sdk_snapshot {
} }
`), `),
checkAllCopyRules(` checkAllCopyRules(`
include/Test.h -> include/include/Test.h
.intermediates/mynativelib/linux_glibc_x86_64_static/mynativelib.a -> x86_64/lib/mynativelib.a .intermediates/mynativelib/linux_glibc_x86_64_static/mynativelib.a -> x86_64/lib/mynativelib.a
include/Test.h -> x86_64/include/include/Test.h
.intermediates/mynativelib/linux_glibc_x86_64_static/gen/aidl/aidl/foo/bar/Test.h -> x86_64/include_gen/mynativelib/aidl/foo/bar/Test.h .intermediates/mynativelib/linux_glibc_x86_64_static/gen/aidl/aidl/foo/bar/Test.h -> x86_64/include_gen/mynativelib/aidl/foo/bar/Test.h
.intermediates/mynativelib/linux_glibc_x86_64_static/gen/aidl/aidl/foo/bar/BnTest.h -> x86_64/include_gen/mynativelib/aidl/foo/bar/BnTest.h .intermediates/mynativelib/linux_glibc_x86_64_static/gen/aidl/aidl/foo/bar/BnTest.h -> x86_64/include_gen/mynativelib/aidl/foo/bar/BnTest.h
.intermediates/mynativelib/linux_glibc_x86_64_static/gen/aidl/aidl/foo/bar/BpTest.h -> x86_64/include_gen/mynativelib/aidl/foo/bar/BpTest.h .intermediates/mynativelib/linux_glibc_x86_64_static/gen/aidl/aidl/foo/bar/BpTest.h -> x86_64/include_gen/mynativelib/aidl/foo/bar/BpTest.h
.intermediates/mynativelib/linux_glibc_x86_static/mynativelib.a -> x86/lib/mynativelib.a .intermediates/mynativelib/linux_glibc_x86_static/mynativelib.a -> x86/lib/mynativelib.a
include/Test.h -> x86/include/include/Test.h
.intermediates/mynativelib/linux_glibc_x86_static/gen/aidl/aidl/foo/bar/Test.h -> x86/include_gen/mynativelib/aidl/foo/bar/Test.h .intermediates/mynativelib/linux_glibc_x86_static/gen/aidl/aidl/foo/bar/Test.h -> x86/include_gen/mynativelib/aidl/foo/bar/Test.h
.intermediates/mynativelib/linux_glibc_x86_static/gen/aidl/aidl/foo/bar/BnTest.h -> x86/include_gen/mynativelib/aidl/foo/bar/BnTest.h .intermediates/mynativelib/linux_glibc_x86_static/gen/aidl/aidl/foo/bar/BnTest.h -> x86/include_gen/mynativelib/aidl/foo/bar/BnTest.h
.intermediates/mynativelib/linux_glibc_x86_static/gen/aidl/aidl/foo/bar/BpTest.h -> x86/include_gen/mynativelib/aidl/foo/bar/BpTest.h .intermediates/mynativelib/linux_glibc_x86_static/gen/aidl/aidl/foo/bar/BpTest.h -> x86/include_gen/mynativelib/aidl/foo/bar/BpTest.h