Don't panic in turbine with no classes

ALLOW_MISSING_DEPENDENCIES=true can cause missing dependencies to be
hidden from GenerateAndroidBuildActions, which is triggering the
len(jars) == 0 check in compileJavaHeader.  For the
ALLOW_MISSING_DEPENDENCIES=true case the check is unnecessary, as the
build rules will be replaced with runtime errors.  On the off chance
the check would have been hit in a real build, allow merge_zips to
create an empty zip file if it is asked to.

Test: m ALLOW_MISSING_DEPENDENCIES=true
Change-Id: I3171f921d51229ddf38a1a647d32566658c673fa
This commit is contained in:
Colin Cross 2017-10-23 18:12:27 -07:00
parent 17ae970a92
commit 5c6ecc179f
2 changed files with 6 additions and 10 deletions

View File

@ -78,7 +78,7 @@ func main() {
// parse args
flag.Parse()
args := flag.Args()
if len(args) < 2 {
if len(args) < 1 {
flag.Usage()
os.Exit(1)
}

View File

@ -689,15 +689,11 @@ func (j *Module) compileJavaHeader(ctx android.ModuleContext, srcFiles android.P
var headerJar android.Path
jars = append(jars, deps.staticHeaderJars...)
if len(jars) == 0 {
panic("The turbine.jar is empty without any sources and static libs.")
} else {
// we cannot skip the combine step for now if there is only one jar
// since we have to strip META-INF/TRANSITIVE dir from turbine.jar
combinedJar := android.PathForModuleOut(ctx, "turbine-combined", jarName)
TransformJarsToJar(ctx, combinedJar, "for turbine", jars, android.OptionalPath{}, false, []string{"META-INF"})
headerJar = combinedJar
}
if j.properties.Jarjar_rules != nil {
jarjar_rules := android.PathForModuleSrc(ctx, *j.properties.Jarjar_rules)