Merge "Revert "Revert "Remove desugar support"""
diff --git a/cc/cc.go b/cc/cc.go
index f6b1152..36b2f95 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -1202,8 +1202,6 @@
if ccDep == nil {
// handling for a few module types that aren't cc Module but that are also supported
switch depTag {
- case android.DefaultsDepTag, android.SourceDepTag:
- // Nothing to do
case genSourceDepTag:
if genRule, ok := dep.(genrule.SourceFileGenerator); ok {
depPaths.GeneratedSources = append(depPaths.GeneratedSources,
@@ -1241,8 +1239,6 @@
} else {
ctx.ModuleErrorf("module %q is not a genrule", depName)
}
- default:
- ctx.ModuleErrorf("depends on non-cc module %q", depName)
}
return
}
diff --git a/cc/compiler.go b/cc/compiler.go
index 8f119cf..10cec8c 100644
--- a/cc/compiler.go
+++ b/cc/compiler.go
@@ -392,6 +392,12 @@
fmt.Sprintf("${config.%sGlobalCflags}", hod))
}
+ if flags.Clang {
+ if strings.HasPrefix(android.PathForModuleSrc(ctx).String(), "external/") {
+ flags.GlobalFlags = append([]string{"${config.ClangExternalCflags}"}, flags.GlobalFlags...)
+ }
+ }
+
if ctx.Device() {
if Bool(compiler.Properties.Rtti) {
flags.CppFlags = append(flags.CppFlags, "-frtti")
diff --git a/cc/config/clang.go b/cc/config/clang.go
index ba1cd3c..22e428f 100644
--- a/cc/config/clang.go
+++ b/cc/config/clang.go
@@ -182,6 +182,11 @@
// compatibility.
"-Wno-c++98-compat-extra-semi",
}, " "))
+
+ // Extra cflags for projects under external/ directory
+ pctx.StaticVariable("ClangExtraExternalCflags", strings.Join([]string{
+ // TODO(yikong): Move -Wno flags here
+ }, " "))
}
func ClangFilterUnknownCflags(cflags []string) []string {
diff --git a/cc/config/global.go b/cc/config/global.go
index 06f6f9a..c734c2e 100644
--- a/cc/config/global.go
+++ b/cc/config/global.go
@@ -170,6 +170,8 @@
pctx.StaticVariable("CommonClangGlobalCppflags",
strings.Join(append(ClangFilterUnknownCflags(commonGlobalCppflags), "${ClangExtraCppflags}"), " "))
+ pctx.StaticVariable("ClangExternalCflags", "${ClangExtraExternalCflags}")
+
// Everything in these lists is a crime against abstraction and dependency tracking.
// Do not add anything to this list.
pctx.PrefixedExistentPathsForSourcesVariable("CommonGlobalIncludes", "-I",
diff --git a/cc/makevars.go b/cc/makevars.go
index c95bad2..d036bb6 100644
--- a/cc/makevars.go
+++ b/cc/makevars.go
@@ -83,6 +83,7 @@
ctx.Strict("RS_LLVM_AS", "${config.RSLLVMPrebuiltsPath}/llvm-as")
ctx.Strict("RS_LLVM_LINK", "${config.RSLLVMPrebuiltsPath}/llvm-link")
+ ctx.Strict("CLANG_EXTERNAL_CFLAGS", "${config.ClangExternalCflags}")
ctx.Strict("GLOBAL_CFLAGS_NO_OVERRIDE", "${config.NoOverrideGlobalCflags}")
ctx.Strict("GLOBAL_CLANG_CFLAGS_NO_OVERRIDE", "${config.ClangExtraNoOverrideCflags}")
ctx.Strict("GLOBAL_CPPFLAGS_NO_OVERRIDE", "")
diff --git a/genrule/genrule.go b/genrule/genrule.go
index 42be88f..d03d4ee 100644
--- a/genrule/genrule.go
+++ b/genrule/genrule.go
@@ -163,8 +163,6 @@
if len(g.properties.Tools) > 0 {
ctx.VisitDirectDepsBlueprint(func(module blueprint.Module) {
switch ctx.OtherModuleDependencyTag(module) {
- case android.SourceDepTag:
- // Nothing to do
case hostToolDepTag:
tool := ctx.OtherModuleName(module)
var path android.OptionalPath
@@ -201,8 +199,6 @@
} else {
ctx.ModuleErrorf("host tool %q missing output file", tool)
}
- default:
- ctx.ModuleErrorf("unknown dependency on %q", ctx.OtherModuleName(module))
}
})
}
diff --git a/java/config/error_prone.go b/java/config/error_prone.go
index f203234..2c1c002 100644
--- a/java/config/error_prone.go
+++ b/java/config/error_prone.go
@@ -18,11 +18,13 @@
var (
// These will be filled out by external/error_prone/soong/error_prone.go if it is available
- ErrorProneJavacJar string
- ErrorProneJar string
- ErrorProneClasspath string
- ErrorProneChecksError string
- ErrorProneFlags string
+ ErrorProneJavacJar string
+ ErrorProneJar string
+ ErrorProneClasspath string
+ ErrorProneChecksError string
+ ErrorProneChecksWarning string
+ ErrorProneChecksDefaultDisabled string
+ ErrorProneFlags string
)
// Wrapper that grabs value of val late so it can be initialized by a later module's init function
@@ -37,11 +39,14 @@
errorProneVar("ErrorProneJavacJar", &ErrorProneJavacJar)
errorProneVar("ErrorProneClasspath", &ErrorProneClasspath)
errorProneVar("ErrorProneChecksError", &ErrorProneChecksError)
+ errorProneVar("ErrorProneChecksWarning", &ErrorProneChecksWarning)
+ errorProneVar("ErrorProneChecksDefaultDisabled", &ErrorProneChecksDefaultDisabled)
errorProneVar("ErrorProneFlags", &ErrorProneFlags)
pctx.StaticVariable("ErrorProneCmd",
"${JavaCmd} -Xmx${JavacHeapSize} -Xbootclasspath/p:${ErrorProneJavacJar} "+
"-cp ${ErrorProneJar}:${ErrorProneClasspath} "+
- "${ErrorProneFlags} ${CommonJdkFlags} ${ErrorProneChecksError}")
+ "${ErrorProneFlags} ${CommonJdkFlags} "+
+ "${ErrorProneChecksError} ${ErrorProneChecksWarning} ${ErrorProneChecksDefaultDisabled}")
}
diff --git a/java/droiddoc.go b/java/droiddoc.go
index beaec11..b641041 100644
--- a/java/droiddoc.go
+++ b/java/droiddoc.go
@@ -422,12 +422,16 @@
otherName := ctx.OtherModuleName(module)
tag := ctx.OtherModuleDependencyTag(module)
- switch dep := module.(type) {
- case Dependency:
- switch tag {
- case bootClasspathTag:
+ switch tag {
+ case bootClasspathTag:
+ if dep, ok := module.(Dependency); ok {
deps.bootClasspath = append(deps.bootClasspath, dep.ImplementationJars()...)
- case libTag:
+ } else {
+ panic(fmt.Errorf("unknown dependency %q for %q", otherName, ctx.ModuleName()))
+ }
+ case libTag:
+ switch dep := module.(type) {
+ case Dependency:
deps.classpath = append(deps.classpath, dep.ImplementationJars()...)
if otherName == String(j.properties.Srcs_lib) {
srcs := dep.(SrcDependency).CompiledSrcs()
@@ -447,12 +451,7 @@
}
deps.srcJars = append(deps.srcJars, dep.(SrcDependency).CompiledSrcJars()...)
}
- default:
- panic(fmt.Errorf("unknown dependency %q for %q", otherName, ctx.ModuleName()))
- }
- case SdkLibraryDependency:
- switch tag {
- case libTag:
+ case SdkLibraryDependency:
sdkVersion := String(j.properties.Sdk_version)
linkType := javaSdk
if strings.HasPrefix(sdkVersion, "system_") || strings.HasPrefix(sdkVersion, "test_") {
@@ -461,23 +460,9 @@
linkType = javaPlatform
}
deps.classpath = append(deps.classpath, dep.HeaderJars(linkType)...)
- default:
- ctx.ModuleErrorf("dependency on java_sdk_library %q can only be in libs", otherName)
- }
- case android.SourceFileProducer:
- switch tag {
- case libTag:
+ case android.SourceFileProducer:
checkProducesJars(ctx, dep)
deps.classpath = append(deps.classpath, dep.Srcs()...)
- case android.DefaultsDepTag, android.SourceDepTag:
- // Nothing to do
- default:
- ctx.ModuleErrorf("dependency on genrule %q may only be in srcs, libs", otherName)
- }
- default:
- switch tag {
- case android.DefaultsDepTag, android.SourceDepTag, droiddocTemplateTag:
- // Nothing to do
default:
ctx.ModuleErrorf("depends on non-java module %q", otherName)
}
diff --git a/java/sdk_library.go b/java/sdk_library.go
index d649d5a..abd2dc2 100644
--- a/java/sdk_library.go
+++ b/java/sdk_library.go
@@ -356,7 +356,10 @@
props.Srcs = append(props.Srcs, module.properties.Api_srcs...)
props.Custom_template = proptools.StringPtr("droiddoc-templates-sdk")
props.Installable = proptools.BoolPtr(false)
+ // A droiddoc module has only one Libs property and doesn't distinguish between
+ // shared libs and static libs. So we need to add both of these libs to Libs property.
props.Libs = module.properties.Libs
+ props.Libs = append(props.Libs, module.properties.Static_libs...)
props.Aidl.Include_dirs = module.deviceProperties.Aidl.Include_dirs
props.Aidl.Local_include_dirs = module.deviceProperties.Aidl.Local_include_dirs
diff --git a/ui/build/paths/config.go b/ui/build/paths/config.go
index f044971..4275601 100644
--- a/ui/build/paths/config.go
+++ b/ui/build/paths/config.go
@@ -59,6 +59,7 @@
"awk": Allowed,
"basename": Allowed,
"bash": Allowed,
+ "bc": Allowed,
"bzip2": Allowed,
"cat": Allowed,
"chmod": Allowed,
@@ -98,7 +99,10 @@
"openssl": Allowed,
"patch": Allowed,
"perl": Allowed,
+ "pgrep": Allowed,
+ "pkill": Allowed,
"pstree": Allowed,
+ "pwd": Allowed,
"python": Allowed,
"python2.7": Allowed,
"python3": Allowed,
@@ -114,6 +118,7 @@
"sha1sum": Allowed,
"sha256sum": Allowed,
"sha512sum": Allowed,
+ "sleep": Allowed,
"sort": Allowed,
"stat": Allowed,
"sum": Allowed,