Dedup adding of arch/common properties to cc library snapshot
Some additional, possibly arch specific, properties need adding to cc library (e.g. recovery_available). This dedups and cleans up the code involved to simply the addition of those new properties. Bug: 142918168 Test: m nothing Change-Id: I0963aa02e9504af1ae9b427ff1016e7c481465f4
This commit is contained in:
@@ -241,8 +241,30 @@ func buildSharedNativeLibSnapshot(sdkModuleContext android.ModuleContext, info *
|
|||||||
|
|
||||||
func (info *nativeLibInfo) generatePrebuiltLibrary(sdkModuleContext android.ModuleContext, builder android.SnapshotBuilder, member android.SdkMember) {
|
func (info *nativeLibInfo) generatePrebuiltLibrary(sdkModuleContext android.ModuleContext, builder android.SnapshotBuilder, member android.SdkMember) {
|
||||||
|
|
||||||
|
pbm := builder.AddPrebuiltModule(member, info.memberType.prebuiltModuleType)
|
||||||
|
|
||||||
|
addPossiblyArchSpecificProperties(info.commonProperties, pbm)
|
||||||
|
|
||||||
|
archProperties := pbm.AddPropertySet("arch")
|
||||||
|
for _, av := range info.archVariantProperties {
|
||||||
|
archTypeProperties := archProperties.AddPropertySet(av.archType)
|
||||||
|
// Add any arch specific properties inside the appropriate arch: {<arch>: {...}} block
|
||||||
|
archTypeProperties.AddProperty("srcs", []string{nativeLibraryPathFor(av)})
|
||||||
|
|
||||||
|
addPossiblyArchSpecificProperties(av, archTypeProperties)
|
||||||
|
}
|
||||||
|
pbm.AddProperty("stl", "none")
|
||||||
|
pbm.AddProperty("system_shared_libs", []string{})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add properties that may, or may not, be arch specific.
|
||||||
|
func addPossiblyArchSpecificProperties(libInfo nativeLibInfoProperties, outputProperties android.BpPropertySet) {
|
||||||
|
addExportedDirsForNativeLibs(libInfo, outputProperties, false /*systemInclude*/)
|
||||||
|
addExportedDirsForNativeLibs(libInfo, outputProperties, true /*systemInclude*/)
|
||||||
|
}
|
||||||
|
|
||||||
// a function for emitting include dirs
|
// a function for emitting include dirs
|
||||||
addExportedDirsForNativeLibs := func(lib nativeLibInfoProperties, properties android.BpPropertySet, systemInclude bool) {
|
func addExportedDirsForNativeLibs(lib nativeLibInfoProperties, properties android.BpPropertySet, systemInclude bool) {
|
||||||
includeDirs := nativeIncludeDirPathsFor(lib, systemInclude)
|
includeDirs := nativeIncludeDirPathsFor(lib, systemInclude)
|
||||||
if len(includeDirs) == 0 {
|
if len(includeDirs) == 0 {
|
||||||
return
|
return
|
||||||
@@ -256,24 +278,6 @@ func (info *nativeLibInfo) generatePrebuiltLibrary(sdkModuleContext android.Modu
|
|||||||
properties.AddProperty(propertyName, includeDirs)
|
properties.AddProperty(propertyName, includeDirs)
|
||||||
}
|
}
|
||||||
|
|
||||||
pbm := builder.AddPrebuiltModule(member, info.memberType.prebuiltModuleType)
|
|
||||||
|
|
||||||
addExportedDirsForNativeLibs(info.commonProperties, pbm, false /*systemInclude*/)
|
|
||||||
addExportedDirsForNativeLibs(info.commonProperties, pbm, true /*systemInclude*/)
|
|
||||||
|
|
||||||
archProperties := pbm.AddPropertySet("arch")
|
|
||||||
for _, av := range info.archVariantProperties {
|
|
||||||
archTypeProperties := archProperties.AddPropertySet(av.archType)
|
|
||||||
archTypeProperties.AddProperty("srcs", []string{nativeLibraryPathFor(av)})
|
|
||||||
|
|
||||||
// export_* properties are added inside the arch: {<arch>: {...}} block
|
|
||||||
addExportedDirsForNativeLibs(av, archTypeProperties, false /*systemInclude*/)
|
|
||||||
addExportedDirsForNativeLibs(av, archTypeProperties, true /*systemInclude*/)
|
|
||||||
}
|
|
||||||
pbm.AddProperty("stl", "none")
|
|
||||||
pbm.AddProperty("system_shared_libs", []string{})
|
|
||||||
}
|
|
||||||
|
|
||||||
const (
|
const (
|
||||||
nativeIncludeDir = "include"
|
nativeIncludeDir = "include"
|
||||||
nativeGeneratedIncludeDir = "include_gen"
|
nativeGeneratedIncludeDir = "include_gen"
|
||||||
|
Reference in New Issue
Block a user