summaryrefslogtreecommitdiff
path: root/python/builder.go
diff options
context:
space:
mode:
author Cole Faust <colefaust@google.com> 2022-09-14 15:25:15 -0700
committer Cole Faust <colefaust@google.com> 2022-09-23 11:06:11 -0700
commitaf4b13dbe4c4063f784777fc4f58b6fd4f727c6a (patch)
tree8192e0ce133bef71c125b2a5138a9a05ae08f13f /python/builder.go
parent9d75168276c7fb9fef8506b9241f0fed288d5054 (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.go32
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() {