Loading android/bazel.go +21 −1 Original line number Diff line number Diff line Loading @@ -210,7 +210,6 @@ var ( "libc_tzcode", // http://b/186822591, cc_library_static, localtime.c:84:46: error: expected expression "libc_bionic_ndk", // http://b/186822256, cc_library_static, signal.cpp:186:52: error: ISO C++ requires field designators to be specified in declaration order "libc_malloc_hooks", // http://b/187016307, cc_library, ld.lld: error: undefined symbol: __malloc_hook "libstdc++", // http://b/186822597, cc_library, ld.lld: error: undefined symbol: __errno "libm", // http://b/183064661, cc_library, math.h:25:16: error: unexpected token in argument list // http://b/186823769: Needs C++ STL support, includes from unconverted standard libraries in //external/libcxx Loading @@ -237,6 +236,12 @@ var ( "libjemalloc5_unittest", } // Per-module denylist of cc_library modules to only generate the static // variant if their shared variant isn't ready or buildable by Bazel. bp2buildCcLibraryStaticOnlyList = []string{ "libstdc++", // http://b/186822597, cc_library, ld.lld: error: undefined symbol: __errno } // Per-module denylist to opt modules out of mixed builds. Such modules will // still be generated via bp2build. mixedBuildsDisabledList = []string{ Loading @@ -251,6 +256,7 @@ var ( // Used for quicker lookups bp2buildDoNotWriteBuildFile = map[string]bool{} bp2buildModuleDoNotConvert = map[string]bool{} bp2buildCcLibraryStaticOnly = map[string]bool{} mixedBuildsDisabled = map[string]bool{} ) Loading @@ -263,11 +269,19 @@ func init() { bp2buildModuleDoNotConvert[moduleName] = true } for _, moduleName := range bp2buildCcLibraryStaticOnlyList { bp2buildCcLibraryStaticOnly[moduleName] = true } for _, moduleName := range mixedBuildsDisabledList { mixedBuildsDisabled[moduleName] = true } } func GenerateCcLibraryStaticOnly(ctx BazelConversionPathContext) bool { return bp2buildCcLibraryStaticOnly[ctx.Module().Name()] } func ShouldWriteBuildFileForDir(dir string) bool { if _, ok := bp2buildDoNotWriteBuildFile[dir]; ok { return false Loading @@ -285,6 +299,12 @@ func (b *BazelModuleBase) MixedBuildsEnabled(ctx BazelConversionPathContext) boo if len(b.GetBazelLabel(ctx, ctx.Module())) == 0 { return false } if GenerateCcLibraryStaticOnly(ctx) { // Don't use partially-converted cc_library targets in mixed builds, // since mixed builds would generally rely on both static and shared // variants of a cc_library. return false } return !mixedBuildsDisabled[ctx.Module().Name()] } Loading cc/library.go +26 −13 Original line number Diff line number Diff line Loading @@ -259,6 +259,14 @@ func CcLibraryBp2Build(ctx android.TopDownMutatorContext) { return } // For some cc_library modules, their static variants are ready to be // converted, but not their shared variants. For these modules, delegate to // the cc_library_static bp2build converter temporarily instead. if android.GenerateCcLibraryStaticOnly(ctx) { ccLibraryStaticBp2BuildInternal(ctx, m) return } sharedAttrs := bp2BuildParseSharedProps(ctx, m) staticAttrs := bp2BuildParseStaticProps(ctx, m) compilerAttrs := bp2BuildParseCompilerProps(ctx, m) Loading Loading @@ -2205,19 +2213,7 @@ func BazelCcLibraryStaticFactory() android.Module { return module } func CcLibraryStaticBp2Build(ctx android.TopDownMutatorContext) { module, ok := ctx.Module().(*Module) if !ok { // Not a cc module return } if !module.ConvertWithBp2build(ctx) { return } if ctx.ModuleType() != "cc_library_static" { return } func ccLibraryStaticBp2BuildInternal(ctx android.TopDownMutatorContext, module *Module) { compilerAttrs := bp2BuildParseCompilerProps(ctx, module) linkerAttrs := bp2BuildParseLinkerProps(ctx, module) exportedIncludes := bp2BuildParseExportedIncludes(ctx, module) Loading @@ -2226,6 +2222,7 @@ func CcLibraryStaticBp2Build(ctx android.TopDownMutatorContext) { Copts: compilerAttrs.copts, Srcs: compilerAttrs.srcs, Deps: linkerAttrs.deps, Linkopts: linkerAttrs.linkopts, Linkstatic: true, Includes: exportedIncludes, } Loading @@ -2238,6 +2235,22 @@ func CcLibraryStaticBp2Build(ctx android.TopDownMutatorContext) { ctx.CreateBazelTargetModule(BazelCcLibraryStaticFactory, module.Name(), props, attrs) } func CcLibraryStaticBp2Build(ctx android.TopDownMutatorContext) { module, ok := ctx.Module().(*Module) if !ok { // Not a cc module return } if !module.ConvertWithBp2build(ctx) { return } if ctx.ModuleType() != "cc_library_static" { return } ccLibraryStaticBp2BuildInternal(ctx, module) } func (m *bazelCcLibraryStatic) Name() string { return m.BaseModuleName() } Loading Loading
android/bazel.go +21 −1 Original line number Diff line number Diff line Loading @@ -210,7 +210,6 @@ var ( "libc_tzcode", // http://b/186822591, cc_library_static, localtime.c:84:46: error: expected expression "libc_bionic_ndk", // http://b/186822256, cc_library_static, signal.cpp:186:52: error: ISO C++ requires field designators to be specified in declaration order "libc_malloc_hooks", // http://b/187016307, cc_library, ld.lld: error: undefined symbol: __malloc_hook "libstdc++", // http://b/186822597, cc_library, ld.lld: error: undefined symbol: __errno "libm", // http://b/183064661, cc_library, math.h:25:16: error: unexpected token in argument list // http://b/186823769: Needs C++ STL support, includes from unconverted standard libraries in //external/libcxx Loading @@ -237,6 +236,12 @@ var ( "libjemalloc5_unittest", } // Per-module denylist of cc_library modules to only generate the static // variant if their shared variant isn't ready or buildable by Bazel. bp2buildCcLibraryStaticOnlyList = []string{ "libstdc++", // http://b/186822597, cc_library, ld.lld: error: undefined symbol: __errno } // Per-module denylist to opt modules out of mixed builds. Such modules will // still be generated via bp2build. mixedBuildsDisabledList = []string{ Loading @@ -251,6 +256,7 @@ var ( // Used for quicker lookups bp2buildDoNotWriteBuildFile = map[string]bool{} bp2buildModuleDoNotConvert = map[string]bool{} bp2buildCcLibraryStaticOnly = map[string]bool{} mixedBuildsDisabled = map[string]bool{} ) Loading @@ -263,11 +269,19 @@ func init() { bp2buildModuleDoNotConvert[moduleName] = true } for _, moduleName := range bp2buildCcLibraryStaticOnlyList { bp2buildCcLibraryStaticOnly[moduleName] = true } for _, moduleName := range mixedBuildsDisabledList { mixedBuildsDisabled[moduleName] = true } } func GenerateCcLibraryStaticOnly(ctx BazelConversionPathContext) bool { return bp2buildCcLibraryStaticOnly[ctx.Module().Name()] } func ShouldWriteBuildFileForDir(dir string) bool { if _, ok := bp2buildDoNotWriteBuildFile[dir]; ok { return false Loading @@ -285,6 +299,12 @@ func (b *BazelModuleBase) MixedBuildsEnabled(ctx BazelConversionPathContext) boo if len(b.GetBazelLabel(ctx, ctx.Module())) == 0 { return false } if GenerateCcLibraryStaticOnly(ctx) { // Don't use partially-converted cc_library targets in mixed builds, // since mixed builds would generally rely on both static and shared // variants of a cc_library. return false } return !mixedBuildsDisabled[ctx.Module().Name()] } Loading
cc/library.go +26 −13 Original line number Diff line number Diff line Loading @@ -259,6 +259,14 @@ func CcLibraryBp2Build(ctx android.TopDownMutatorContext) { return } // For some cc_library modules, their static variants are ready to be // converted, but not their shared variants. For these modules, delegate to // the cc_library_static bp2build converter temporarily instead. if android.GenerateCcLibraryStaticOnly(ctx) { ccLibraryStaticBp2BuildInternal(ctx, m) return } sharedAttrs := bp2BuildParseSharedProps(ctx, m) staticAttrs := bp2BuildParseStaticProps(ctx, m) compilerAttrs := bp2BuildParseCompilerProps(ctx, m) Loading Loading @@ -2205,19 +2213,7 @@ func BazelCcLibraryStaticFactory() android.Module { return module } func CcLibraryStaticBp2Build(ctx android.TopDownMutatorContext) { module, ok := ctx.Module().(*Module) if !ok { // Not a cc module return } if !module.ConvertWithBp2build(ctx) { return } if ctx.ModuleType() != "cc_library_static" { return } func ccLibraryStaticBp2BuildInternal(ctx android.TopDownMutatorContext, module *Module) { compilerAttrs := bp2BuildParseCompilerProps(ctx, module) linkerAttrs := bp2BuildParseLinkerProps(ctx, module) exportedIncludes := bp2BuildParseExportedIncludes(ctx, module) Loading @@ -2226,6 +2222,7 @@ func CcLibraryStaticBp2Build(ctx android.TopDownMutatorContext) { Copts: compilerAttrs.copts, Srcs: compilerAttrs.srcs, Deps: linkerAttrs.deps, Linkopts: linkerAttrs.linkopts, Linkstatic: true, Includes: exportedIncludes, } Loading @@ -2238,6 +2235,22 @@ func CcLibraryStaticBp2Build(ctx android.TopDownMutatorContext) { ctx.CreateBazelTargetModule(BazelCcLibraryStaticFactory, module.Name(), props, attrs) } func CcLibraryStaticBp2Build(ctx android.TopDownMutatorContext) { module, ok := ctx.Module().(*Module) if !ok { // Not a cc module return } if !module.ConvertWithBp2build(ctx) { return } if ctx.ModuleType() != "cc_library_static" { return } ccLibraryStaticBp2BuildInternal(ctx, module) } func (m *bazelCcLibraryStatic) Name() string { return m.BaseModuleName() } Loading