Merge "Ban --coverage now that we have native coverage"
diff --git a/cc/library.go b/cc/library.go
index efaf440..f7194e4 100644
--- a/cc/library.go
+++ b/cc/library.go
@@ -64,7 +64,9 @@
// export headers generated from .proto sources
Export_proto_headers bool
}
+}
+type LibraryMutatedProperties struct {
VariantName string `blueprint:"mutated"`
// Build a static variant
@@ -175,7 +177,8 @@
// libraryDecorator wraps baseCompiler, baseLinker and baseInstaller to provide library-specific
// functionality: static vs. shared linkage, reusing object files for shared libraries
type libraryDecorator struct {
- Properties LibraryProperties
+ Properties LibraryProperties
+ MutatedProperties LibraryMutatedProperties
// For reusing static library objects for shared library
reuseObjects Objects
@@ -213,6 +216,7 @@
props = append(props, library.baseLinker.linkerProps()...)
return append(props,
&library.Properties,
+ &library.MutatedProperties,
&library.flagExporter.Properties,
&library.stripper.StripProperties,
&library.relocationPacker.Properties)
@@ -230,11 +234,11 @@
if library.static() {
flags.CFlags = append(flags.CFlags, library.Properties.Static.Cflags...)
- } else {
+ } else if library.shared() {
flags.CFlags = append(flags.CFlags, library.Properties.Shared.Cflags...)
}
- if !library.static() {
+ if library.shared() {
libName := library.getLibName(ctx)
// GCC for Android assumes that -shared means -Bsymbolic, use -Wl,-shared instead
sharedFlag := "-Wl,-shared"
@@ -303,7 +307,7 @@
srcs := android.PathsForModuleSrc(ctx, library.Properties.Static.Srcs)
objs = objs.Append(compileObjs(ctx, buildFlags, android.DeviceStaticLibrary,
srcs, library.baseCompiler.deps))
- } else {
+ } else if library.shared() {
srcs := android.PathsForModuleSrc(ctx, library.Properties.Shared.Srcs)
objs = objs.Append(compileObjs(ctx, buildFlags, android.DeviceSharedLibrary,
srcs, library.baseCompiler.deps))
@@ -324,7 +328,8 @@
buildShared() bool
// Sets whether a specific variant is static or shared
- setStatic(bool)
+ setStatic()
+ setShared()
}
func (library *libraryDecorator) getLibName(ctx ModuleContext) string {
@@ -339,7 +344,7 @@
}
}
- return name + library.Properties.VariantName
+ return name + library.MutatedProperties.VariantName
}
func (library *libraryDecorator) linkerInit(ctx BaseModuleContext) {
@@ -362,7 +367,7 @@
library.Properties.Static.Whole_static_libs...)
deps.StaticLibs = append(deps.StaticLibs, library.Properties.Static.Static_libs...)
deps.SharedLibs = append(deps.SharedLibs, library.Properties.Static.Shared_libs...)
- } else {
+ } else if library.shared() {
if ctx.toolchain().Bionic() && !Bool(library.baseLinker.Properties.Nocrt) {
if !ctx.sdk() && !ctx.vndk() {
deps.CrtBegin = "crtbegin_so"
@@ -395,13 +400,13 @@
library.objects = library.objects.Append(objs)
outputFile := android.PathForModuleOut(ctx,
- ctx.ModuleName()+library.Properties.VariantName+staticLibraryExtension)
+ ctx.ModuleName()+library.MutatedProperties.VariantName+staticLibraryExtension)
builderFlags := flagsToBuilderFlags(flags)
TransformObjToStaticLib(ctx, library.objects.objFiles, builderFlags, outputFile, objs.tidyFiles)
library.coverageOutputFile = TransformCoverageFilesToLib(ctx, library.objects, builderFlags,
- ctx.ModuleName()+library.Properties.VariantName)
+ ctx.ModuleName()+library.MutatedProperties.VariantName)
library.wholeStaticMissingDeps = ctx.GetMissingDependencies()
@@ -522,7 +527,7 @@
objs = objs.Append(deps.Objs)
var out android.Path
- if library.static() {
+ if library.static() || library.header() {
out = library.linkStatic(ctx, flags, deps, objs)
} else {
out = library.linkShared(ctx, flags, deps, objs)
@@ -555,12 +560,12 @@
}
func (library *libraryDecorator) buildStatic() bool {
- return library.Properties.BuildStatic &&
+ return library.MutatedProperties.BuildStatic &&
(library.Properties.Static.Enabled == nil || *library.Properties.Static.Enabled)
}
func (library *libraryDecorator) buildShared() bool {
- return library.Properties.BuildShared &&
+ return library.MutatedProperties.BuildShared &&
(library.Properties.Shared.Enabled == nil || *library.Properties.Shared.Enabled)
}
@@ -587,31 +592,45 @@
}
func (library *libraryDecorator) static() bool {
- return library.Properties.VariantIsStatic
+ return library.MutatedProperties.VariantIsStatic
}
-func (library *libraryDecorator) setStatic(static bool) {
- library.Properties.VariantIsStatic = static
+func (library *libraryDecorator) shared() bool {
+ return library.MutatedProperties.VariantIsShared
+}
+
+func (library *libraryDecorator) header() bool {
+ return !library.static() && !library.shared()
+}
+
+func (library *libraryDecorator) setStatic() {
+ library.MutatedProperties.VariantIsStatic = true
+ library.MutatedProperties.VariantIsShared = false
+}
+
+func (library *libraryDecorator) setShared() {
+ library.MutatedProperties.VariantIsStatic = false
+ library.MutatedProperties.VariantIsShared = true
}
func (library *libraryDecorator) BuildOnlyStatic() {
- library.Properties.BuildShared = false
+ library.MutatedProperties.BuildShared = false
}
func (library *libraryDecorator) BuildOnlyShared() {
- library.Properties.BuildStatic = false
+ library.MutatedProperties.BuildStatic = false
}
func (library *libraryDecorator) HeaderOnly() {
- library.Properties.BuildShared = false
- library.Properties.BuildStatic = false
+ library.MutatedProperties.BuildShared = false
+ library.MutatedProperties.BuildStatic = false
}
func NewLibrary(hod android.HostOrDeviceSupported) (*Module, *libraryDecorator) {
module := newModule(hod, android.MultilibBoth)
library := &libraryDecorator{
- Properties: LibraryProperties{
+ MutatedProperties: LibraryMutatedProperties{
BuildShared: true,
BuildStatic: true,
},
@@ -637,8 +656,8 @@
static := modules[0].(*Module)
shared := modules[1].(*Module)
- static.linker.(libraryInterface).setStatic(true)
- shared.linker.(libraryInterface).setStatic(false)
+ static.linker.(libraryInterface).setStatic()
+ shared.linker.(libraryInterface).setShared()
if staticCompiler, ok := static.compiler.(*libraryDecorator); ok {
sharedCompiler := shared.compiler.(*libraryDecorator)
@@ -652,10 +671,10 @@
}
} else if library.buildStatic() {
modules = mctx.CreateLocalVariations("static")
- modules[0].(*Module).linker.(libraryInterface).setStatic(true)
+ modules[0].(*Module).linker.(libraryInterface).setStatic()
} else if library.buildShared() {
modules = mctx.CreateLocalVariations("shared")
- modules[0].(*Module).linker.(libraryInterface).setStatic(false)
+ modules[0].(*Module).linker.(libraryInterface).setShared()
}
}
}
diff --git a/cc/ndk_library.go b/cc/ndk_library.go
index da3d5c7..6ebd0c4 100644
--- a/cc/ndk_library.go
+++ b/cc/ndk_library.go
@@ -335,7 +335,7 @@
module.linker = stub
module.installer = stub
- return module, []interface{}{&stub.properties}
+ return module, []interface{}{&stub.properties, &library.MutatedProperties}
}
func ndkLibraryFactory() (blueprint.Module, []interface{}) {
diff --git a/cc/ndk_prebuilt.go b/cc/ndk_prebuilt.go
index 676d63d..f1bd3b5 100644
--- a/cc/ndk_prebuilt.go
+++ b/cc/ndk_prebuilt.go
@@ -194,7 +194,7 @@
libName := strings.TrimPrefix(ctx.ModuleName(), "ndk_")
libExt := flags.Toolchain.ShlibSuffix()
- if ndk.Properties.BuildStatic {
+ if ndk.static() {
libExt = staticLibraryExtension
}