Remove ConvertWithBp2build implementations
Remove the ConvertWithBp2build implementations from all the module types, along with the related code. Bug: 315353489 Test: m blueprint_tests Change-Id: I212672286686a318893bc7348ddd5a5ec51e77a7
This commit is contained in:
129
cc/object.go
129
cc/object.go
@@ -19,8 +19,6 @@ import (
|
||||
"strings"
|
||||
|
||||
"android/soong/android"
|
||||
"android/soong/bazel"
|
||||
"android/soong/bazel/cquery"
|
||||
)
|
||||
|
||||
//
|
||||
@@ -50,33 +48,6 @@ type objectLinker struct {
|
||||
ndkSysrootPath android.Path
|
||||
}
|
||||
|
||||
type objectBazelHandler struct {
|
||||
module *Module
|
||||
}
|
||||
|
||||
var _ BazelHandler = (*objectBazelHandler)(nil)
|
||||
|
||||
func (handler *objectBazelHandler) QueueBazelCall(ctx android.BaseModuleContext, label string) {
|
||||
bazelCtx := ctx.Config().BazelContext
|
||||
bazelCtx.QueueBazelRequest(label, cquery.GetOutputFiles, android.GetConfigKeyApexVariant(ctx, GetApexConfigKey(ctx)))
|
||||
}
|
||||
|
||||
func (handler *objectBazelHandler) ProcessBazelQueryResponse(ctx android.ModuleContext, label string) {
|
||||
bazelCtx := ctx.Config().BazelContext
|
||||
objPaths, err := bazelCtx.GetOutputFiles(label, android.GetConfigKeyApexVariant(ctx, GetApexConfigKey(ctx)))
|
||||
if err != nil {
|
||||
ctx.ModuleErrorf(err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if len(objPaths) != 1 {
|
||||
ctx.ModuleErrorf("expected exactly one object file for '%s', but got %s", label, objPaths)
|
||||
return
|
||||
}
|
||||
|
||||
handler.module.outputFile = android.OptionalPathForPath(android.PathForBazelOut(ctx, objPaths[0]))
|
||||
}
|
||||
|
||||
type ObjectLinkerProperties struct {
|
||||
// list of static library modules that should only provide headers for this module.
|
||||
Static_libs []string `android:"arch_variant,variant_prepend"`
|
||||
@@ -125,115 +96,15 @@ func ObjectFactory() android.Module {
|
||||
baseLinker: NewBaseLinker(module.sanitize),
|
||||
}
|
||||
module.compiler = NewBaseCompiler()
|
||||
module.bazelHandler = &objectBazelHandler{module: module}
|
||||
|
||||
// Clang's address-significance tables are incompatible with ld -r.
|
||||
module.compiler.appendCflags([]string{"-fno-addrsig"})
|
||||
|
||||
module.sdkMemberTypes = []android.SdkMemberType{ccObjectSdkMemberType}
|
||||
|
||||
module.bazelable = true
|
||||
return module.Init()
|
||||
}
|
||||
|
||||
// For bp2build conversion.
|
||||
type bazelObjectAttributes struct {
|
||||
Srcs bazel.LabelListAttribute
|
||||
Srcs_as bazel.LabelListAttribute
|
||||
Hdrs bazel.LabelListAttribute
|
||||
Objs bazel.LabelListAttribute
|
||||
Deps bazel.LabelListAttribute
|
||||
System_dynamic_deps bazel.LabelListAttribute
|
||||
Copts bazel.StringListAttribute
|
||||
Asflags bazel.StringListAttribute
|
||||
Local_includes bazel.StringListAttribute
|
||||
Absolute_includes bazel.StringListAttribute
|
||||
Stl *string
|
||||
Linker_script bazel.LabelAttribute
|
||||
Crt *bool
|
||||
SdkAttributes
|
||||
}
|
||||
|
||||
// objectBp2Build is the bp2build converter from cc_object modules to the
|
||||
// Bazel equivalent target, plus any necessary include deps for the cc_object.
|
||||
func objectBp2Build(ctx android.Bp2buildMutatorContext, m *Module) {
|
||||
if m.compiler == nil {
|
||||
// a cc_object must have access to the compiler decorator for its props.
|
||||
ctx.ModuleErrorf("compiler must not be nil for a cc_object module")
|
||||
}
|
||||
|
||||
// Set arch-specific configurable attributes
|
||||
baseAttributes := bp2BuildParseBaseProps(ctx, m)
|
||||
compilerAttrs := baseAttributes.compilerAttributes
|
||||
var objs bazel.LabelListAttribute
|
||||
var deps bazel.LabelListAttribute
|
||||
systemDynamicDeps := bazel.LabelListAttribute{ForceSpecifyEmptyList: true}
|
||||
|
||||
var linkerScript bazel.LabelAttribute
|
||||
|
||||
for axis, configToProps := range m.GetArchVariantProperties(ctx, &ObjectLinkerProperties{}) {
|
||||
for config, props := range configToProps {
|
||||
if objectLinkerProps, ok := props.(*ObjectLinkerProperties); ok {
|
||||
if objectLinkerProps.Linker_script != nil {
|
||||
label := android.BazelLabelForModuleSrcSingle(ctx, *objectLinkerProps.Linker_script)
|
||||
linkerScript.SetSelectValue(axis, config, label)
|
||||
}
|
||||
objs.SetSelectValue(axis, config, android.BazelLabelForModuleDeps(ctx, objectLinkerProps.Objs))
|
||||
systemSharedLibs := objectLinkerProps.System_shared_libs
|
||||
if len(systemSharedLibs) > 0 {
|
||||
systemSharedLibs = android.FirstUniqueStrings(systemSharedLibs)
|
||||
}
|
||||
systemDynamicDeps.SetSelectValue(axis, config, bazelLabelForSharedDeps(ctx, systemSharedLibs))
|
||||
deps.SetSelectValue(axis, config, android.BazelLabelForModuleDeps(ctx, objectLinkerProps.Static_libs))
|
||||
deps.SetSelectValue(axis, config, android.BazelLabelForModuleDeps(ctx, objectLinkerProps.Shared_libs))
|
||||
deps.SetSelectValue(axis, config, android.BazelLabelForModuleDeps(ctx, objectLinkerProps.Header_libs))
|
||||
// static_libs, shared_libs, and header_libs have variant_prepend tag
|
||||
deps.Prepend = true
|
||||
}
|
||||
}
|
||||
}
|
||||
objs.ResolveExcludes()
|
||||
|
||||
// Don't split cc_object srcs across languages. Doing so would add complexity,
|
||||
// and this isn't typically done for cc_object.
|
||||
srcs := compilerAttrs.srcs
|
||||
srcs.Append(compilerAttrs.cSrcs)
|
||||
|
||||
asFlags := compilerAttrs.asFlags
|
||||
if compilerAttrs.asSrcs.IsEmpty() {
|
||||
// Skip asflags for BUILD file simplicity if there are no assembly sources.
|
||||
asFlags = bazel.MakeStringListAttribute(nil)
|
||||
}
|
||||
|
||||
attrs := &bazelObjectAttributes{
|
||||
Srcs: srcs,
|
||||
Srcs_as: compilerAttrs.asSrcs,
|
||||
Objs: objs,
|
||||
Deps: deps,
|
||||
System_dynamic_deps: systemDynamicDeps,
|
||||
Copts: compilerAttrs.copts,
|
||||
Asflags: asFlags,
|
||||
Local_includes: compilerAttrs.localIncludes,
|
||||
Absolute_includes: compilerAttrs.absoluteIncludes,
|
||||
Stl: compilerAttrs.stl,
|
||||
Linker_script: linkerScript,
|
||||
Crt: m.linker.(*objectLinker).Properties.Crt,
|
||||
SdkAttributes: Bp2BuildParseSdkAttributes(m),
|
||||
}
|
||||
|
||||
props := bazel.BazelTargetModuleProperties{
|
||||
Rule_class: "cc_object",
|
||||
Bzl_load_location: "//build/bazel/rules/cc:cc_object.bzl",
|
||||
}
|
||||
|
||||
tags := android.ApexAvailableTagsWithoutTestApexes(ctx, m)
|
||||
|
||||
ctx.CreateBazelTargetModule(props, android.CommonAttributes{
|
||||
Name: m.Name(),
|
||||
Tags: tags,
|
||||
}, attrs)
|
||||
}
|
||||
|
||||
func (object *objectLinker) appendLdflags(flags []string) {
|
||||
panic(fmt.Errorf("appendLdflags on objectLinker not supported"))
|
||||
}
|
||||
|
Reference in New Issue
Block a user