From 6ca390f0b4be216226f31bc05ed5e3bba3105e17 Mon Sep 17 00:00:00 2001 From: Dan Willemsen Date: Thu, 14 Feb 2019 23:17:08 -0800 Subject: Support building a par file that does not automatically run Mainly so that we can build a `python` prebuilt that acts like the normal python install, though you could also build different ones with more packages pre-installed. Bug: 117811537 Test: move built py2-cmd into prebuilts/build-tools/path/linux-x86/python and build Change-Id: I21215f6fd3754d89f8c65e1dfeb3f2deea23239f --- python/python.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'python/python.go') diff --git a/python/python.go b/python/python.go index ddc3f1f93..4445f404f 100644 --- a/python/python.go +++ b/python/python.go @@ -156,6 +156,8 @@ type bootstrapper interface { bootstrap(ctx android.ModuleContext, ActualVersion string, embeddedLauncher bool, srcsPathMappings []pathMapping, srcsZip android.Path, depsSrcsZips android.Paths) android.OptionalPath + + autorun() bool } type installer interface { @@ -307,9 +309,14 @@ func (p *Module) DepsMutator(ctx android.BottomUpMutatorContext) { if p.bootstrapper != nil && p.isEmbeddedLauncherEnabled(pyVersion2) { ctx.AddVariationDependencies(nil, pythonLibTag, "py2-stdlib") + + launcherModule := "py2-launcher" + if p.bootstrapper.autorun() { + launcherModule = "py2-launcher-autorun" + } ctx.AddFarVariationDependencies([]blueprint.Variation{ {Mutator: "arch", Variation: ctx.Target().String()}, - }, launcherTag, "py2-launcher") + }, launcherTag, launcherModule) // Add py2-launcher shared lib dependencies. Ideally, these should be // derived from the `shared_libs` property of "py2-launcher". However, we @@ -422,7 +429,11 @@ func (p *Module) GeneratePythonBuildActions(ctx android.ModuleContext) { p.properties.Actual_version, ctx.ModuleName())) } expandedSrcs := ctx.ExpandSources(srcs, exclude_srcs) - if len(expandedSrcs) == 0 { + requiresSrcs := true + if p.bootstrapper != nil && !p.bootstrapper.autorun() { + requiresSrcs = false + } + if len(expandedSrcs) == 0 && requiresSrcs { ctx.ModuleErrorf("doesn't have any source files!") } @@ -656,4 +667,5 @@ func (p *Module) InstallInData() bool { } var Bool = proptools.Bool +var BoolDefault = proptools.BoolDefault var String = proptools.String -- cgit v1.2.3-59-g8ed1b