From 0f3b7d2fc4d557073c162f801fd2176e9b15deb9 Mon Sep 17 00:00:00 2001 From: Liz Kammer Date: Tue, 28 Sep 2021 13:48:21 -0400 Subject: [PATCH] Add deps of protos to bp2build. Update BazelOutPath to implement genPathProvider. This allows Bazel outputs (incl filegroup) to be used as an input to generating a file (e.g. proto). Test: bp2build.sh Test: mixed_build.sh Bug: 200601772 Change-Id: I5ad67ade193025652100b214996b26ce9ca9bf83 --- android/bazel.go | 8 ++++++++ android/bazel_paths.go | 10 ++++++++++ 2 files changed, 18 insertions(+) diff --git a/android/bazel.go b/android/bazel.go index 4d887cad7..737533af0 100644 --- a/android/bazel.go +++ b/android/bazel.go @@ -187,7 +187,10 @@ var ( "external/libcxx": Bp2BuildDefaultTrueRecursively, "external/libcxxabi": Bp2BuildDefaultTrueRecursively, "external/lz4/lib": Bp2BuildDefaultTrue, + "external/protobuf": Bp2BuildDefaultTrueRecursively, + "external/python/six": Bp2BuildDefaultTrueRecursively, "external/scudo": Bp2BuildDefaultTrueRecursively, + "external/zlib": Bp2BuildDefaultTrueRecursively, "prebuilts/clang/host/linux-x86": Bp2BuildDefaultTrueRecursively, "system/core/libasyncio": Bp2BuildDefaultTrue, "system/core/libcutils": Bp2BuildDefaultTrueRecursively, @@ -233,6 +236,10 @@ var ( "libfdtrack", // depends on liblzma and libbase + "libprotobuf-python", // contains .proto sources + "libprotobuf-internal-protos", // we don't handle path property for fileegroups + "libprotobuf-internal-python-srcs", // we don't handle path property for fileegroups + "libseccomp_policy", // depends on libbase "gwp_asan_crash_handler", // cc_library, ld.lld: error: undefined symbol: memset @@ -271,6 +278,7 @@ var ( "libseccomp_policy_app_zygote_sources", // http://b/200899432, bazel-built cc_genrule does not work in mixed build when it is a dependency of another soong module. "libseccomp_policy_app_sources", // http://b/200899432, bazel-built cc_genrule does not work in mixed build when it is a dependency of another soong module. "libseccomp_policy_system_sources", // http://b/200899432, bazel-built cc_genrule does not work in mixed build when it is a dependency of another soong module. + } // Used for quicker lookups diff --git a/android/bazel_paths.go b/android/bazel_paths.go index b5746f750..995736999 100644 --- a/android/bazel_paths.go +++ b/android/bazel_paths.go @@ -393,9 +393,19 @@ type BazelOutPath struct { OutputPath } +// ensure BazelOutPath implements Path var _ Path = BazelOutPath{} + +// ensure BazelOutPath implements genPathProvider +var _ genPathProvider = BazelOutPath{} + +// ensure BazelOutPath implements objPathProvider var _ objPathProvider = BazelOutPath{} +func (p BazelOutPath) genPathWithExt(ctx ModuleOutPathContext, subdir, ext string) ModuleGenPath { + return PathForModuleGen(ctx, subdir, pathtools.ReplaceExtension(p.path, ext)) +} + func (p BazelOutPath) objPathWithExt(ctx ModuleOutPathContext, subdir, ext string) ModuleObjPath { return PathForModuleObj(ctx, subdir, pathtools.ReplaceExtension(p.path, ext)) }