diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2019-08-17 23:15:56 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2019-08-17 23:15:56 +0000 |
commit | ef28eb63cc6c45781413b36c9a016198c620ce95 (patch) | |
tree | 7e45239ca47a3572cfd7f120421b736d886555e6 | |
parent | 12bcfa5e9b104e2fceaf6a5207af0f718b01d96a (diff) | |
parent | ba1ea7583953186a1a5519c0cd1087e403ad516f (diff) | |
download | blueprint-android10-qpr1-c-release.tar.gz |
Snap for 5811135 from ba1ea7583953186a1a5519c0cd1087e403ad516f to qt-qpr1-releaseandroid-10.0.0_r29android-10.0.0_r28android-10.0.0_r27android-10.0.0_r26android-10.0.0_r25android-10.0.0_r24android-10.0.0_r23android-10.0.0_r22android-10.0.0_r21android-10.0.0_r20android-10.0.0_r19android-10.0.0_r18android-10.0.0_r16android-10.0.0_r15android10-qpr1-releaseandroid10-qpr1-d-releaseandroid10-qpr1-c-s1-releaseandroid10-qpr1-c-releaseandroid10-qpr1-b-s1-releaseandroid10-qpr1-b-release
Change-Id: I2010b45f225a6ad7bdfa12de5b3bc1348995672e
-rw-r--r-- | context.go | 15 | ||||
-rw-r--r-- | module_ctx.go | 29 |
2 files changed, 33 insertions, 11 deletions
@@ -1147,7 +1147,7 @@ func (c *Context) cloneLogicModule(origModule *moduleInfo) (Module, []interface{ } func (c *Context) createVariations(origModule *moduleInfo, mutatorName string, - variationNames []string) ([]*moduleInfo, []error) { + defaultVariationName *string, variationNames []string) ([]*moduleInfo, []error) { if len(variationNames) == 0 { panic(fmt.Errorf("mutator %q passed zero-length variation list for module %q", @@ -1192,7 +1192,7 @@ func (c *Context) createVariations(origModule *moduleInfo, mutatorName string, newModules = append(newModules, newModule) - newErrs := c.convertDepsToVariation(newModule, mutatorName, variationName) + newErrs := c.convertDepsToVariation(newModule, mutatorName, variationName, defaultVariationName) if len(newErrs) > 0 { errs = append(errs, newErrs...) } @@ -1209,7 +1209,7 @@ func (c *Context) createVariations(origModule *moduleInfo, mutatorName string, } func (c *Context) convertDepsToVariation(module *moduleInfo, - mutatorName, variationName string) (errs []error) { + mutatorName, variationName string, defaultVariationName *string) (errs []error) { for i, dep := range module.directDeps { if dep.module.logicModule == nil { @@ -1220,6 +1220,15 @@ func (c *Context) convertDepsToVariation(module *moduleInfo, break } } + if newDep == nil && defaultVariationName != nil { + // give it a second chance; match with defaultVariationName + for _, m := range dep.module.splitModules { + if m.variant[mutatorName] == *defaultVariationName { + newDep = m + break + } + } + } if newDep == nil { errs = append(errs, &BlueprintError{ Err: fmt.Errorf("failed to find variation %q for module %q needed by %q", diff --git a/module_ctx.go b/module_ctx.go index d127c0e..bdb14ad 100644 --- a/module_ctx.go +++ b/module_ctx.go @@ -555,12 +555,13 @@ func (m *moduleContext) GetMissingDependencies() []string { type mutatorContext struct { baseModuleContext - name string - reverseDeps []reverseDep - rename []rename - replace []replace - newVariations []*moduleInfo // new variants of existing modules - newModules []*moduleInfo // brand new modules + name string + reverseDeps []reverseDep + rename []rename + replace []replace + newVariations []*moduleInfo // new variants of existing modules + newModules []*moduleInfo // brand new modules + defaultVariation *string } type baseMutatorContext interface { @@ -607,7 +608,15 @@ type BottomUpMutatorContext interface { AddReverseDependency(module Module, tag DependencyTag, name string) CreateVariations(...string) []Module CreateLocalVariations(...string) []Module + + // SetDependencyVariation sets all dangling dependencies on the current module to point to the variation + // with given name. This function ignores the default variation set by SetDefaultDependencyVariation. SetDependencyVariation(string) + + // SetDefaultDependencyVariation sets the default variation when a dangling reference is detected + // during the subsequent calls on Create*Variations* functions. To reset, set it to nil. + SetDefaultDependencyVariation(*string) + AddVariationDependencies([]Variation, DependencyTag, ...string) AddFarVariationDependencies([]Variation, DependencyTag, ...string) AddInterVariantDependency(tag DependencyTag, from, to Module) @@ -671,7 +680,7 @@ func (mctx *mutatorContext) CreateLocalVariations(variationNames ...string) []Mo func (mctx *mutatorContext) createVariations(variationNames []string, local bool) []Module { ret := []Module{} - modules, errs := mctx.context.createVariations(mctx.module, mctx.name, variationNames) + modules, errs := mctx.context.createVariations(mctx.module, mctx.name, mctx.defaultVariation, variationNames) if len(errs) > 0 { mctx.errs = append(mctx.errs, errs...) } @@ -698,7 +707,11 @@ func (mctx *mutatorContext) createVariations(variationNames []string, local bool // Set all dangling dependencies on the current module to point to the variation // with given name. func (mctx *mutatorContext) SetDependencyVariation(variationName string) { - mctx.context.convertDepsToVariation(mctx.module, mctx.name, variationName) + mctx.context.convertDepsToVariation(mctx.module, mctx.name, variationName, nil) +} + +func (mctx *mutatorContext) SetDefaultDependencyVariation(variationName *string) { + mctx.defaultVariation = variationName } func (mctx *mutatorContext) Module() Module { |