Limit the number of the Java source files in a single compilation unit
KYTHE_JAVA_SOURCE_BATCH_SIZE environment variable controls this setting. The limit is 1000 if this variable is not set. Fixes: 179932118 Test: run prebuilts/build-tools/build-prebuilts.sh, use it to build kzips, check Change-Id: I9ad57dfd1d2c2dce5cff755b1bd61cf933420bd3
This commit is contained in:
parent
36eb24b3ab
commit
b0addafd93
3 changed files with 26 additions and 1 deletions
|
@ -24,6 +24,7 @@ import (
|
|||
"os"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
|
@ -911,6 +912,25 @@ func (c *config) XrefCuEncoding() string {
|
|||
return "json"
|
||||
}
|
||||
|
||||
// XrefCuJavaSourceMax returns the maximum number of the Java source files
|
||||
// in a single compilation unit
|
||||
const xrefJavaSourceFileMaxDefault = "1000"
|
||||
|
||||
func (c Config) XrefCuJavaSourceMax() string {
|
||||
v := c.Getenv("KYTHE_JAVA_SOURCE_BATCH_SIZE")
|
||||
if v == "" {
|
||||
return xrefJavaSourceFileMaxDefault
|
||||
}
|
||||
if _, err := strconv.ParseUint(v, 0, 0); err != nil {
|
||||
fmt.Fprintf(os.Stderr,
|
||||
"bad KYTHE_JAVA_SOURCE_BATCH_SIZE value: %s, will use %s",
|
||||
err, xrefJavaSourceFileMaxDefault)
|
||||
return xrefJavaSourceFileMaxDefault
|
||||
}
|
||||
return v
|
||||
|
||||
}
|
||||
|
||||
func (c *config) EmitXrefRules() bool {
|
||||
return c.XrefCorpusName() != ""
|
||||
}
|
||||
|
|
|
@ -7,14 +7,16 @@
|
|||
# BUILD_NUMBER build number, used to generate unique ID (will use UUID if not set)
|
||||
# DIST_DIR where the resulting all.kzip will be placed
|
||||
# KYTHE_KZIP_ENCODING proto or json (proto is default)
|
||||
# KYTHE_JAVA_SOURCE_BATCH_SIZE maximum number of the Java source files in a compilation unit
|
||||
# OUT_DIR output directory (out if not specified})
|
||||
# TARGET_BUILD_VARIANT variant, e.g., `userdebug`
|
||||
# TARGET_PRODUCT target device name, e.g., 'aosp_blueline'
|
||||
# XREF_CORPUS source code repository URI, e.g., 'android.googlesource.com/platform/superproject'
|
||||
|
||||
: ${BUILD_NUMBER:=$(uuidgen)}
|
||||
: ${KYTHE_JAVA_SOURCE_BATCH_SIZE:=500}
|
||||
: ${KYTHE_KZIP_ENCODING:=proto}
|
||||
export KYTHE_KZIP_ENCODING
|
||||
export KYTHE_JAVA_SOURCE_BATCH_SIZE KYTHE_KZIP_ENCODING
|
||||
|
||||
# The extraction might fail for some source files, so run with -k and then check that
|
||||
# sufficiently many files were generated.
|
||||
|
|
|
@ -80,6 +80,8 @@ var (
|
|||
func(ctx android.PackageVarContext) string { return ctx.Config().XrefCorpusName() })
|
||||
_ = pctx.VariableFunc("kytheCuEncoding",
|
||||
func(ctx android.PackageVarContext) string { return ctx.Config().XrefCuEncoding() })
|
||||
_ = pctx.VariableFunc("kytheCuJavaSourceMax",
|
||||
func(ctx android.PackageVarContext) string { return ctx.Config().XrefCuJavaSourceMax() })
|
||||
_ = pctx.SourcePathVariable("kytheVnames", "build/soong/vnames.json")
|
||||
// Run it with -add-opens=java.base/java.nio=ALL-UNNAMED to avoid JDK9's warning about
|
||||
// "Illegal reflective access by com.google.protobuf.Utf8$UnsafeProcessor ...
|
||||
|
@ -93,6 +95,7 @@ var (
|
|||
`KYTHE_CORPUS=${kytheCorpus} ` +
|
||||
`KYTHE_VNAMES=${kytheVnames} ` +
|
||||
`KYTHE_KZIP_ENCODING=${kytheCuEncoding} ` +
|
||||
`KYTHE_JAVA_SOURCE_BATCH_SIZE=${kytheCuJavaSourceMax} ` +
|
||||
`${config.SoongJavacWrapper} ${config.JavaCmd} ` +
|
||||
`--add-opens=java.base/java.nio=ALL-UNNAMED ` +
|
||||
`-jar ${config.JavaKytheExtractorJar} ` +
|
||||
|
|
Loading…
Reference in a new issue