diff options
author | 2022-09-23 16:36:11 -0700 | |
---|---|---|
committer | 2022-09-28 14:18:45 -0700 | |
commit | b3cb38c3c8aa7431da9b60b8f01fa0c7cce6d89d (patch) | |
tree | 5974d304cae29b4f43beefd57ff3aafa226e6640 /bpf/bpf.go | |
parent | c0d3527a0d2863bac1d6e4168938dadfa86dc117 (diff) |
Add bp2build converter for bpf
Bug: 240163393
Test: m bp2build
Test: bp2build/bpf_conversion_test.go
Change-Id: Ie3bbc64511146b099a766d7e8b56e93cef58ef68
Diffstat (limited to 'bpf/bpf.go')
-rw-r--r-- | bpf/bpf.go | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/bpf/bpf.go b/bpf/bpf.go index e89cc4ec8..dbbce505e 100644 --- a/bpf/bpf.go +++ b/bpf/bpf.go @@ -21,6 +21,7 @@ import ( "strings" "android/soong/android" + "android/soong/bazel" "github.com/google/blueprint" "github.com/google/blueprint/proptools" @@ -93,6 +94,7 @@ type BpfProperties struct { type bpf struct { android.ModuleBase + android.BazelModuleBase properties BpfProperties @@ -260,5 +262,39 @@ func BpfFactory() android.Module { module.AddProperties(&module.properties) android.InitAndroidArchModule(module, android.DeviceSupported, android.MultilibCommon) + android.InitBazelModule(module) return module } + +type bazelBpfAttributes struct { + Srcs bazel.LabelListAttribute + Copts bazel.StringListAttribute + Absolute_includes bazel.StringListAttribute + Btf *bool + // TODO(b/249528391): Add support for sub_dir +} + +// bpf bp2build converter +func (b *bpf) ConvertWithBp2build(ctx android.TopDownMutatorContext) { + if ctx.ModuleType() != "bpf" { + return + } + + srcs := bazel.MakeLabelListAttribute(android.BazelLabelForModuleSrc(ctx, b.properties.Srcs)) + copts := bazel.MakeStringListAttribute(b.properties.Cflags) + absolute_includes := bazel.MakeStringListAttribute(b.properties.Include_dirs) + btf := b.properties.Btf + + attrs := bazelBpfAttributes{ + Srcs: srcs, + Copts: copts, + Absolute_includes: absolute_includes, + Btf: btf, + } + props := bazel.BazelTargetModuleProperties{ + Rule_class: "bpf", + Bzl_load_location: "//build/bazel/rules/bpf:bpf.bzl", + } + + ctx.CreateBazelTargetModule(props, android.CommonAttributes{Name: b.Name()}, &attrs) +} |