From cb847638af5a56969929ddeae57d407fc8ad98c0 Mon Sep 17 00:00:00 2001 From: Spandan Das Date: Tue, 22 Aug 2023 19:24:07 +0000 Subject: 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 --- python/python.go | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'python/python.go') diff --git a/python/python.go b/python/python.go index 6c837a888..7d77ca772 100644 --- a/python/python.go +++ b/python/python.go @@ -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 } -- cgit v1.2.3-59-g8ed1b