Precompile python sources

This signifigantly improves the startup time of soong-built
python binaries. For example, running
`m apexer && time out/host/linux-x86/bin/apexer` gives
0.734s before this cl, and 0.094s after.

Fixes: 259718110
Test: Presubmits
Change-Id: Ib19e83e2c60c39a849525be117279c318de3afa7
This commit is contained in:
Cole Faust
2023-01-24 11:48:08 -08:00
parent 3420d978cf
commit 5c503d1c43
11 changed files with 295 additions and 96 deletions

View File

@@ -70,6 +70,17 @@ var (
CommandDeps: []string{"$mergeParCmd"},
},
"srcsZips", "launcher")
precompile = pctx.AndroidStaticRule("precompilePython", blueprint.RuleParams{
Command: `LD_LIBRARY_PATH="$ldLibraryPath" ` +
`PYTHONPATH=$stdlibZip/internal/stdlib ` +
`$launcher build/soong/python/scripts/precompile_python.py $in $out`,
CommandDeps: []string{
"$stdlibZip",
"$launcher",
"build/soong/python/scripts/precompile_python.py",
},
}, "stdlibZip", "launcher", "ldLibraryPath")
)
func init() {