Translate python_libray.pkg_path to proto.import_prefix

If a python_library uses a pkg_path foo/bar, then the proto srcs in
that libray need to import the dep .proto as foo/bar/proto.proto.

This behavior is restricted to python modules. To implement this is in
bp2build, this CL creates a new interface with a single method
`PkgPath`. Only python module structs implement this interface, and
this method is only available during bp2build

Test: Added a bp2build unit test
Test: TH

Change-Id: If8d207c0b321f75337a053795826b283a5eaaf46
This commit is contained in:
Spandan Das
2023-08-22 19:24:07 +00:00
parent 4ed3d120c9
commit cb847638af
3 changed files with 60 additions and 0 deletions

View File

@@ -197,6 +197,14 @@ func (p *PythonLibraryModule) getPkgPath() string {
return String(p.properties.Pkg_path)
}
// PkgPath is the "public" version of `getPkgPath` that is only available during bp2build
func (p *PythonLibraryModule) PkgPath(ctx android.BazelConversionContext) *string {
if ctx.Config().BuildMode != android.Bp2build {
ctx.ModuleErrorf("PkgPath is only supported in bp2build mode")
}
return p.properties.Pkg_path
}
func (p *PythonLibraryModule) getBaseProperties() *BaseProperties {
return &p.properties
}