diff options
Diffstat (limited to 'java/java.go')
| -rw-r--r-- | java/java.go | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/java/java.go b/java/java.go index 50ffd6589..4c6a5a5ac 100644 --- a/java/java.go +++ b/java/java.go @@ -627,12 +627,9 @@ func (j *Module) deps(ctx android.BottomUpMutatorContext) { } linkType, _ := j.getLinkType(ctx.ModuleName()) - if linkType == javaSystem { + // only platform modules can use internal props + if linkType != javaPlatform { ret[idx] = stub - } else if linkType != javaPlatform { - ctx.PropertyErrorf("sdk_version", - "can't link against sysprop_library %q from a module using public or core API", - lib) } } @@ -660,7 +657,14 @@ func (j *Module) deps(ctx android.BottomUpMutatorContext) { } } - if j.shouldInstrumentStatic(ctx) { + // Framework libraries need special handling in static coverage builds: they should not have + // static dependency on jacoco, otherwise there would be multiple conflicting definitions of + // the same jacoco classes coming from different bootclasspath jars. + if inList(ctx.ModuleName(), config.InstrumentFrameworkModules) { + if ctx.Config().IsEnvTrue("EMMA_INSTRUMENT_FRAMEWORK") { + j.properties.Instrument = true + } + } else if j.shouldInstrumentStatic(ctx) { ctx.AddVariationDependencies(nil, staticLibTag, "jacocoagent") } } @@ -1463,12 +1467,6 @@ func (j *Module) compile(ctx android.ModuleContext, aaptSrcJar android.Path) { j.headerJarFile = j.implementationJarFile } - if ctx.Config().IsEnvTrue("EMMA_INSTRUMENT_FRAMEWORK") { - if inList(ctx.ModuleName(), config.InstrumentFrameworkModules) { - j.properties.Instrument = true - } - } - if j.shouldInstrument(ctx) { outputFile = j.instrument(ctx, flags, outputFile, jarName) } |