From 8c535dad36b991f43f54972dbf8c936e0ec7fa04 Mon Sep 17 00:00:00 2001 From: Paul Duffin Date: Wed, 17 Mar 2021 14:51:03 +0000 Subject: [PATCH] Allow apex dependencies to be restricted to source modules only An upcoming change to create a prebuilt_platform_compat_config module will break if the apex tries to use it instead of a platform_compat_config because the former does not provide all the information that the apex needs. This change will allow the compatConfigsTag to be configured to prevent the prebuilt from being used even when it is preferred. Bug: 182402754 Test: m nothing Change-Id: Ib9dc06c038f7cf3fc229f3c4d2b025335a4715b4 --- apex/apex.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/apex/apex.go b/apex/apex.go index 3db20f465..fbda06ef8 100644 --- a/apex/apex.go +++ b/apex/apex.go @@ -549,8 +549,19 @@ type dependencyTag struct { // Determines if the dependent will be part of the APEX payload. Can be false for the // dependencies to the signing key module, etc. payload bool + + // True if the dependent can only be a source module, false if a prebuilt module is a suitable + // replacement. This is needed because some prebuilt modules do not provide all the information + // needed by the apex. + sourceOnly bool } +func (d dependencyTag) ReplaceSourceWithPrebuilt() bool { + return !d.sourceOnly +} + +var _ android.ReplaceSourceWithPrebuilt = &dependencyTag{} + var ( androidAppTag = dependencyTag{name: "androidApp", payload: true} bpfTag = dependencyTag{name: "bpf", payload: true}