diff options
author | 2022-09-14 15:25:15 -0700 | |
---|---|---|
committer | 2022-09-23 11:06:11 -0700 | |
commit | af4b13dbe4c4063f784777fc4f58b6fd4f727c6a (patch) | |
tree | 8192e0ce133bef71c125b2a5138a9a05ae08f13f /python/builder.go | |
parent | 9d75168276c7fb9fef8506b9241f0fed288d5054 (diff) |
Add flag to not add top-level modules to PYTHONPATH
stub_template_host.txt added all the top-level modules to the
PYTHONPATH, which isn't correct, and caused absl.logging to
override the built-in logging module.
Removing this also makes it more consistent with python binaries
built with embedded_launcher: true. embedded_launcher: true
binaries don't add the top-level modules.
Fixes: 245583294
Test: m py_dont_add_top_level_dirs_test && out/host/linux-x86/testcases/py_dont_add_top_level_dirs_test/x86_64/py_dont_add_top_level_dirs_test
Change-Id: Id3069565d2b2c4b2bda0ff5301e757a7b4201751
Diffstat (limited to 'python/builder.go')
-rw-r--r-- | python/builder.go | 32 |
1 files changed, 14 insertions, 18 deletions
diff --git a/python/builder.go b/python/builder.go index 7d7239c55..08d345c92 100644 --- a/python/builder.go +++ b/python/builder.go @@ -44,13 +44,13 @@ var ( hostPar = pctx.AndroidStaticRule("hostPar", blueprint.RuleParams{ - Command: `sed -e 's/%interpreter%/$interp/g' -e 's/%main%/$main/g' $template > $stub && ` + + Command: `sed -e 's/%interpreter%/$interp/g' -e 's/%main%/$main/g' -e 's/ADD_TOP_DIRECTORIES_TO_PATH/$addTopDirectoriesToPath/g' build/soong/python/scripts/stub_template_host.txt > $out.main && ` + `echo "#!/usr/bin/env $interp" >${out}.prefix &&` + - `$mergeParCmd -p --prefix ${out}.prefix -pm $stub $out $srcsZips && ` + - `chmod +x $out && (rm -f $stub; rm -f ${out}.prefix)`, - CommandDeps: []string{"$mergeParCmd"}, + `$mergeParCmd -p --prefix ${out}.prefix -pm $out.main $out $srcsZips && ` + + `chmod +x $out && (rm -f $out.main; rm -f ${out}.prefix)`, + CommandDeps: []string{"$mergeParCmd", "build/soong/python/scripts/stub_template_host.txt"}, }, - "interp", "main", "template", "stub", "srcsZips") + "interp", "main", "srcsZips", "addTopDirectoriesToPath") embeddedPar = pctx.AndroidStaticRule("embeddedPar", blueprint.RuleParams{ @@ -81,7 +81,7 @@ func init() { func registerBuildActionForParFile(ctx android.ModuleContext, embeddedLauncher bool, launcherPath android.OptionalPath, interpreter, main, binName string, - srcsZips android.Paths) android.Path { + srcsZips android.Paths, addTopDirectoriesToPath bool) android.Path { // .intermediate output path for bin executable. binFile := android.PathForModuleOut(ctx, binName) @@ -90,24 +90,20 @@ func registerBuildActionForParFile(ctx android.ModuleContext, embeddedLauncher b implicits := srcsZips if !embeddedLauncher { - // the path of stub_template_host.txt from source tree. - template := android.PathForSource(ctx, StubTemplateHost) - implicits = append(implicits, template) - - // intermediate output path for __main__.py - stub := android.PathForModuleOut(ctx, mainFileName).String() - + addDirsString := "False" + if addTopDirectoriesToPath { + addDirsString = "True" + } ctx.Build(pctx, android.BuildParams{ Rule: hostPar, Description: "host python archive", Output: binFile, Implicits: implicits, Args: map[string]string{ - "interp": strings.Replace(interpreter, "/", `\/`, -1), - "main": strings.Replace(main, "/", `\/`, -1), - "template": template.String(), - "stub": stub, - "srcsZips": strings.Join(srcsZips.Strings(), " "), + "interp": strings.Replace(interpreter, "/", `\/`, -1), + "main": strings.Replace(main, "/", `\/`, -1), + "srcsZips": strings.Join(srcsZips.Strings(), " "), + "addTopDirectoriesToPath": addDirsString, }, }) } else if launcherPath.Valid() { |