Write the list of ndk libraries to cc_toolchain/ndk_libs.bzl
Soong adds "--no-ndk" to cc stubs for apexes if the library is not an NDK library. In order to port this logic, emit the list to a .bzl file. We cannot use the exportedVars.Export* soong_injection api for this since we need to visit all modules to get this list. Test: m nothing Bug: 299501496 Change-Id: If8487db85e08b32b9b40aef3371d9f3f7d5a77e0
This commit is contained in:
@@ -12,6 +12,7 @@ import (
|
|||||||
"android/soong/android/soongconfig"
|
"android/soong/android/soongconfig"
|
||||||
"android/soong/starlark_import"
|
"android/soong/starlark_import"
|
||||||
|
|
||||||
|
"github.com/google/blueprint"
|
||||||
"github.com/google/blueprint/proptools"
|
"github.com/google/blueprint/proptools"
|
||||||
"go.starlark.net/starlark"
|
"go.starlark.net/starlark"
|
||||||
)
|
)
|
||||||
@@ -45,6 +46,15 @@ func CreateProductConfigFiles(
|
|||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Visit all modules to determine the list of ndk libraries
|
||||||
|
// This list will be used to add additional flags for cc stub generation
|
||||||
|
ndkLibsStringFormatted := []string{}
|
||||||
|
ctx.Context().VisitAllModules(func(m blueprint.Module) {
|
||||||
|
if ctx.Context().ModuleType(m) == "ndk_library" {
|
||||||
|
ndkLibsStringFormatted = append(ndkLibsStringFormatted, fmt.Sprintf(`"%s"`, m.Name())) // name will be `"libc.ndk"`
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
// TODO(b/249685973): the name is product_config_platforms because product_config
|
// TODO(b/249685973): the name is product_config_platforms because product_config
|
||||||
// was already used for other files. Deduplicate them.
|
// was already used for other files. Deduplicate them.
|
||||||
currentProductFolder := fmt.Sprintf("product_config_platforms/products/%s-%s", targetProduct, targetBuildVariant)
|
currentProductFolder := fmt.Sprintf("product_config_platforms/products/%s-%s", targetProduct, targetBuildVariant)
|
||||||
@@ -154,6 +164,11 @@ build --host_platform @soong_injection//{PRODUCT_FOLDER}:{PRODUCT}-{VARIANT}_lin
|
|||||||
productReplacer.Replace(`
|
productReplacer.Replace(`
|
||||||
build --host_platform @soong_injection//{PRODUCT_FOLDER}:{PRODUCT}-{VARIANT}_darwin_x86_64
|
build --host_platform @soong_injection//{PRODUCT_FOLDER}:{PRODUCT}-{VARIANT}_darwin_x86_64
|
||||||
`)),
|
`)),
|
||||||
|
newFile(
|
||||||
|
"cc_toolchain",
|
||||||
|
"ndk_libs.bzl",
|
||||||
|
fmt.Sprintf("ndk_libs = [%v]", strings.Join(ndkLibsStringFormatted, ", ")),
|
||||||
|
),
|
||||||
}
|
}
|
||||||
bp2buildDirFiles := []BazelFile{
|
bp2buildDirFiles := []BazelFile{
|
||||||
newFile(
|
newFile(
|
||||||
|
Reference in New Issue
Block a user