From 28d70c74db150fc2366edb7175e8f61b3b614d1a Mon Sep 17 00:00:00 2001 From: Paul Duffin Date: Tue, 25 Feb 2020 15:50:49 +0000 Subject: [PATCH] Improve documentation of CompileMultiTargets and related properties Bug: 153306490 Test: m nothing Merged-In: I1e3f0bf7e2a1303d2519d8405a228e9234235514 Change-Id: I1e3f0bf7e2a1303d2519d8405a228e9234235514 --- android/arch.go | 2 ++ android/module.go | 39 +++++++++++++++++++++++++++++++++++---- 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/android/arch.go b/android/arch.go index 16c9bddcd..922548ea1 100644 --- a/android/arch.go +++ b/android/arch.go @@ -1778,6 +1778,8 @@ func filterMultilibTargets(targets []Target, multilib string) []Target { return ret } +// Return the set of Os specific common architecture targets for each Os in a list of +// targets. func getCommonTargets(targets []Target) []Target { var ret []Target set := make(map[string]bool) diff --git a/android/module.go b/android/module.go index d0edf3be6..7ab1d1e3e 100644 --- a/android/module.go +++ b/android/module.go @@ -132,6 +132,9 @@ type BaseModuleContext interface { Target() Target TargetPrimary() bool + + // The additional arch specific targets (e.g. 32/64 bit) that this module variant is + // responsible for creating. MultiTargets() []Target Arch() Arch Os() OsType @@ -361,6 +364,10 @@ type commonProperties struct { } } + // If set to true then the archMutator will create variants for each arch specific target + // (e.g. 32/64) that the module is required to produce. If set to false then it will only + // create a variant for the architecture and will list the additional arch specific targets + // that the variant needs to produce in the CompileMultiTargets property. UseTargetVariants bool `blueprint:"mutated"` Default_multilib string `blueprint:"mutated"` @@ -439,11 +446,35 @@ type commonProperties struct { Suffix *string `android:"arch_variant"` } `android:"arch_variant"` - // Set by TargetMutator - CompileOS OsType `blueprint:"mutated"` - CompileTarget Target `blueprint:"mutated"` + // The OsType of artifacts that this module variant is responsible for creating. + // + // Set by osMutator + CompileOS OsType `blueprint:"mutated"` + + // The Target of artifacts that this module variant is responsible for creating. + // + // Set by archMutator + CompileTarget Target `blueprint:"mutated"` + + // The additional arch specific targets (e.g. 32/64 bit) that this module variant is + // responsible for creating. + // + // By default this is nil as, where necessary, separate variants are created for the + // different multilib types supported and that information is encapsulated in the + // CompileTarget so the module variant simply needs to create artifacts for that. + // + // However, if UseTargetVariants is set to false (e.g. by + // InitAndroidMultiTargetsArchModule) then no separate variants are created for the + // multilib targets. Instead a single variant is created for the architecture and + // this contains the multilib specific targets that this variant should create. + // + // Set by archMutator CompileMultiTargets []Target `blueprint:"mutated"` - CompilePrimary bool `blueprint:"mutated"` + + // True if the module variant's CompileTarget is the primary target + // + // Set by archMutator + CompilePrimary bool `blueprint:"mutated"` // Set by InitAndroidModule HostOrDeviceSupported HostOrDeviceSupported `blueprint:"mutated"`