Support cc_prebuilt_binary building with Bazel
Bp2build-enable cc_prebuilt_binary -> cc_prebuilt_binary Bug: 241415823 Test: cc_prebuilt_binary_conversion_test.go Change-Id: I007deef8d44f68993012f2114314d1cb52cfbb0e
This commit is contained in:
parent
a44a4e079f
commit
b12ff59f0b
@@ -33,7 +33,7 @@ func RegisterPrebuiltBuildComponents(ctx android.RegistrationContext) {
|
||||
ctx.RegisterModuleType("cc_prebuilt_library_static", PrebuiltStaticLibraryFactory)
|
||||
ctx.RegisterModuleType("cc_prebuilt_test_library_shared", PrebuiltSharedTestLibraryFactory)
|
||||
ctx.RegisterModuleType("cc_prebuilt_object", prebuiltObjectFactory)
|
||||
ctx.RegisterModuleType("cc_prebuilt_binary", prebuiltBinaryFactory)
|
||||
ctx.RegisterModuleType("cc_prebuilt_binary", PrebuiltBinaryFactory)
|
||||
}
|
||||
|
||||
type prebuiltLinkerInterface interface {
|
||||
@@ -668,8 +668,8 @@ func (p *prebuiltBinaryLinker) binary() bool {
|
||||
}
|
||||
|
||||
// cc_prebuilt_binary installs a precompiled executable in srcs property in the
|
||||
// device's directory.
|
||||
func prebuiltBinaryFactory() android.Module {
|
||||
// device's directory, for both the host and device
|
||||
func PrebuiltBinaryFactory() android.Module {
|
||||
module, _ := NewPrebuiltBinary(android.HostAndDeviceSupported)
|
||||
return module.Init()
|
||||
}
|
||||
@@ -690,6 +690,30 @@ func NewPrebuiltBinary(hod android.HostOrDeviceSupported) (*Module, *binaryDecor
|
||||
return module, binary
|
||||
}
|
||||
|
||||
type bazelPrebuiltBinaryAttributes struct {
|
||||
Src bazel.LabelAttribute
|
||||
Strip stripAttributes
|
||||
}
|
||||
|
||||
func prebuiltBinaryBp2Build(ctx android.TopDownMutatorContext, module *Module) {
|
||||
prebuiltAttrs := bp2BuildParsePrebuiltBinaryProps(ctx, module)
|
||||
|
||||
var la linkerAttributes
|
||||
la.convertStripProps(ctx, module)
|
||||
attrs := &bazelPrebuiltBinaryAttributes{
|
||||
Src: prebuiltAttrs.Src,
|
||||
Strip: stripAttrsFromLinkerAttrs(&la),
|
||||
}
|
||||
|
||||
props := bazel.BazelTargetModuleProperties{
|
||||
Rule_class: "cc_prebuilt_binary",
|
||||
Bzl_load_location: "//build/bazel/rules/cc:cc_prebuilt_binary.bzl",
|
||||
}
|
||||
|
||||
name := android.RemoveOptionalPrebuiltPrefix(module.Name())
|
||||
ctx.CreateBazelTargetModule(props, android.CommonAttributes{Name: name}, attrs)
|
||||
}
|
||||
|
||||
type Sanitized struct {
|
||||
None struct {
|
||||
Srcs []string `android:"path,arch_variant"`
|
||||
|
Reference in New Issue
Block a user