diff options
Diffstat (limited to 'python/python.go')
| -rw-r--r-- | python/python.go | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/python/python.go b/python/python.go index 8b912be17..479c7291d 100644 --- a/python/python.go +++ b/python/python.go @@ -30,9 +30,11 @@ import ( ) func init() { - android.PreDepsMutators(func(ctx android.RegisterMutatorsContext) { - ctx.BottomUp("version_split", versionSplitMutator()).Parallel() - }) + android.PreDepsMutators(RegisterPythonPreDepsMutators) +} + +func RegisterPythonPreDepsMutators(ctx android.RegisterMutatorsContext) { + ctx.BottomUp("version_split", versionSplitMutator()).Parallel() } // the version properties that apply to python libraries and binaries. @@ -226,15 +228,20 @@ func versionSplitMutator() func(android.BottomUpMutatorContext) { return func(mctx android.BottomUpMutatorContext) { if base, ok := mctx.Module().(*Module); ok { versionNames := []string{} - if base.properties.Version.Py2.Enabled != nil && - *(base.properties.Version.Py2.Enabled) == true { - versionNames = append(versionNames, pyVersion2) - } + // PY3 is first so that we alias the PY3 variant rather than PY2 if both + // are available if !(base.properties.Version.Py3.Enabled != nil && *(base.properties.Version.Py3.Enabled) == false) { versionNames = append(versionNames, pyVersion3) } + if base.properties.Version.Py2.Enabled != nil && + *(base.properties.Version.Py2.Enabled) == true { + versionNames = append(versionNames, pyVersion2) + } modules := mctx.CreateVariations(versionNames...) + if len(versionNames) > 0 { + mctx.AliasVariation(versionNames[0]) + } for i, v := range versionNames { // set the actual version for Python module. modules[i].(*Module).properties.Actual_version = v @@ -251,6 +258,18 @@ func (p *Module) HostToolPath() android.OptionalPath { return android.OptionalPathForPath(p.installer.(*binaryDecorator).path) } +func (p *Module) OutputFiles(tag string) (android.Paths, error) { + switch tag { + case "": + if outputFile := p.installSource; outputFile.Valid() { + return android.Paths{outputFile.Path()}, nil + } + return android.Paths{}, nil + default: + return nil, fmt.Errorf("unsupported module reference tag %q", tag) + } +} + func (p *Module) isEmbeddedLauncherEnabled(actual_version string) bool { switch actual_version { case pyVersion2: |