Merge "Update soong for ShouldFollowSymlinks argument to pathtools.Glob"
diff --git a/android/arch.go b/android/arch.go
index c5f242f..57899cd 100644
--- a/android/arch.go
+++ b/android/arch.go
@@ -959,6 +959,7 @@
{"arm", "armv7-a-neon", "cortex-a15", []string{"armeabi-v7a"}},
{"arm", "armv7-a-neon", "cortex-a53", []string{"armeabi-v7a"}},
{"arm", "armv7-a-neon", "cortex-a53.a57", []string{"armeabi-v7a"}},
+ {"arm", "armv7-a-neon", "cortex-a72", []string{"armeabi-v7a"}},
{"arm", "armv7-a-neon", "cortex-a73", []string{"armeabi-v7a"}},
{"arm", "armv7-a-neon", "cortex-a75", []string{"armeabi-v7a"}},
{"arm", "armv7-a-neon", "denver", []string{"armeabi-v7a"}},
@@ -967,6 +968,7 @@
{"arm", "armv7-a-neon", "exynos-m1", []string{"armeabi-v7a"}},
{"arm", "armv7-a-neon", "exynos-m2", []string{"armeabi-v7a"}},
{"arm64", "armv8-a", "cortex-a53", []string{"arm64-v8a"}},
+ {"arm64", "armv8-a", "cortex-a72", []string{"arm64-v8a"}},
{"arm64", "armv8-a", "cortex-a73", []string{"arm64-v8a"}},
{"arm64", "armv8-a", "denver64", []string{"arm64-v8a"}},
{"arm64", "armv8-a", "kryo", []string{"arm64-v8a"}},
diff --git a/cc/config/arm64_device.go b/cc/config/arm64_device.go
index 6fdd524..12e9114 100644
--- a/cc/config/arm64_device.go
+++ b/cc/config/arm64_device.go
@@ -86,6 +86,7 @@
"armv8_2a",
"cortex-a53",
"cortex-a55",
+ "cortex-a72",
"cortex-a73",
"cortex-a75",
"kryo",
@@ -146,6 +147,7 @@
"": "",
"cortex-a53": "${config.Arm64CortexA53Cflags}",
"cortex-a55": "${config.Arm64CortexA55Cflags}",
+ "cortex-a72": "${config.Arm64CortexA53Cflags}",
"cortex-a73": "${config.Arm64CortexA53Cflags}",
"cortex-a75": "${config.Arm64CortexA55Cflags}",
"kryo": "${config.Arm64KryoCflags}",
@@ -162,6 +164,7 @@
"": "",
"cortex-a53": "${config.Arm64ClangCortexA53Cflags}",
"cortex-a55": "${config.Arm64ClangCortexA55Cflags}",
+ "cortex-a72": "${config.Arm64ClangCortexA53Cflags}",
"cortex-a73": "${config.Arm64ClangCortexA53Cflags}",
"cortex-a75": "${config.Arm64ClangCortexA55Cflags}",
"kryo": "${config.Arm64ClangKryoCflags}",
@@ -257,7 +260,7 @@
var extraLdflags string
switch arch.CpuVariant {
- case "cortex-a53", "cortex-a73", "kryo", "exynos-m1", "exynos-m2",
+ case "cortex-a53", "cortex-a72", "cortex-a73", "kryo", "exynos-m1", "exynos-m2",
// This variant might not need the workaround but leave it
// in the list since it has had the workaround on before.
"denver64":
diff --git a/cc/config/arm_device.go b/cc/config/arm_device.go
index 4135179..c1c2c7b 100644
--- a/cc/config/arm_device.go
+++ b/cc/config/arm_device.go
@@ -162,6 +162,7 @@
"cortex-a53",
"cortex-a53-a57",
"cortex-a55",
+ "cortex-a72",
"cortex-a73",
"cortex-a75",
"krait",
@@ -269,6 +270,7 @@
"cortex-a53": "${config.ArmCortexA53Cflags}",
"cortex-a53.a57": "${config.ArmCortexA53Cflags}",
"cortex-a55": "${config.ArmCortexA55Cflags}",
+ "cortex-a72": "${config.ArmCortexA53Cflags}",
"cortex-a73": "${config.ArmCortexA53Cflags}",
"cortex-a75": "${config.ArmCortexA55Cflags}",
"krait": "${config.ArmKraitCflags}",
@@ -292,6 +294,7 @@
"cortex-a53": "${config.ArmClangCortexA53Cflags}",
"cortex-a53.a57": "${config.ArmClangCortexA53Cflags}",
"cortex-a55": "${config.ArmClangCortexA55Cflags}",
+ "cortex-a72": "${config.ArmClangCortexA53Cflags}",
"cortex-a73": "${config.ArmClangCortexA53Cflags}",
"cortex-a75": "${config.ArmClangCortexA55Cflags}",
"krait": "${config.ArmClangKraitCflags}",
diff --git a/cc/config/tidy.go b/cc/config/tidy.go
index 3a858cd..2e49c16 100644
--- a/cc/config/tidy.go
+++ b/cc/config/tidy.go
@@ -36,6 +36,7 @@
"performance*",
"-google-readability*",
"-google-runtime-references",
+ "-performance-noexcept-move-constructor",
}, ",")
})
@@ -80,6 +81,11 @@
"system/",
}, "|")
})
+
+ // Use WTIH_TIDY_FLAGS to pass extra global default clang-tidy flags.
+ pctx.VariableFunc("TidyWithTidyFlags", func(ctx android.PackageVarContext) string {
+ return ctx.Config().Getenv("WITH_TIDY_FLAGS")
+ })
}
type PathBasedTidyCheck struct {
diff --git a/cc/makevars.go b/cc/makevars.go
index 17edcdf..b7fb575 100644
--- a/cc/makevars.go
+++ b/cc/makevars.go
@@ -143,6 +143,7 @@
ctx.Strict("DEFAULT_GLOBAL_TIDY_CHECKS", "${config.TidyDefaultGlobalChecks}")
ctx.Strict("DEFAULT_LOCAL_TIDY_CHECKS", joinLocalTidyChecks(config.DefaultLocalTidyChecks))
ctx.Strict("DEFAULT_TIDY_HEADER_DIRS", "${config.TidyDefaultHeaderDirs}")
+ ctx.Strict("WITH_TIDY_FLAGS", "${config.TidyWithTidyFlags}")
ctx.Strict("AIDL_CPP", "${aidlCmd}")
diff --git a/cc/tidy.go b/cc/tidy.go
index 491cc22..0a6b413 100644
--- a/cc/tidy.go
+++ b/cc/tidy.go
@@ -69,9 +69,14 @@
flags.Tidy = true
+ // Add global WITH_TIDY_FLAGS and local tidy_flags.
+ withTidyFlags := ctx.Config().Getenv("WITH_TIDY_FLAGS")
+ if len(withTidyFlags) > 0 {
+ flags.TidyFlags = append(flags.TidyFlags, withTidyFlags)
+ }
esc := proptools.NinjaAndShellEscape
-
flags.TidyFlags = append(flags.TidyFlags, esc(tidy.Properties.Tidy_flags)...)
+ // If TidyFlags is empty, add default header filter.
if len(flags.TidyFlags) == 0 {
headerFilter := "-header-filter=\"(" + ctx.ModuleDir() + "|${config.TidyDefaultHeaderDirs})\""
flags.TidyFlags = append(flags.TidyFlags, headerFilter)
diff --git a/java/droiddoc.go b/java/droiddoc.go
index a4050d5..bfe72f6 100644
--- a/java/droiddoc.go
+++ b/java/droiddoc.go
@@ -160,6 +160,10 @@
// list of java libraries that will be in the classpath.
Libs []string `android:"arch_variant"`
+ // don't build against the default libraries (bootclasspath, legacy-test, core-junit,
+ // ext, and framework for device targets)
+ No_standard_libs *bool
+
// don't build against the framework libraries (legacy-test, core-junit,
// ext, and framework for device targets)
No_framework_libs *bool
@@ -303,31 +307,34 @@
// the tag name used to distinguish if the API files belong to public/system/test.
Api_tag_name *string
- // the generated public API filename by Doclava.
+ // the generated public API filename by Metalava.
Api_filename *string
- // the generated public Dex API filename by Doclava.
+ // the generated public Dex API filename by Metalava.
Dex_api_filename *string
- // the generated private API filename by Doclava.
+ // the generated private API filename by Metalava.
Private_api_filename *string
- // the generated private Dex API filename by Doclava.
+ // the generated private Dex API filename by Metalava.
Private_dex_api_filename *string
- // the generated removed API filename by Doclava.
+ // the generated removed API filename by Metalava.
Removed_api_filename *string
- // the generated removed Dex API filename by Doclava.
+ // the generated removed Dex API filename by Metalava.
Removed_dex_api_filename *string
// mapping of dex signatures to source file and line number. This is a temporary property and
// will be deleted; you probably shouldn't be using it.
Dex_mapping_filename *string
- // the generated exact API filename by Doclava.
+ // the generated exact API filename by Metalava.
Exact_api_filename *string
+ // the generated proguard filename by Metalava.
+ Proguard_filename *string
+
Check_api struct {
Last_released ApiToCheck
@@ -340,9 +347,12 @@
// is set to true, Metalava will allow framework SDK to contain annotations.
Annotations_enabled *bool
- // a list of top-level directories containing files to merge annotations from.
+ // a list of top-level directories containing files to merge qualifier annotations (i.e. those intended to be included in the stubs written) from.
Merge_annotations_dirs []string
+ // a list of top-level directories containing Java stub files to merge show/hide annotations from.
+ Merge_inclusion_annotations_dirs []string
+
// if set to true, allow Metalava to generate doc_stubs source files. Defaults to false.
Create_doc_stubs *bool
@@ -474,20 +484,22 @@
func (j *Javadoc) addDeps(ctx android.BottomUpMutatorContext) {
if ctx.Device() {
- sdkDep := decodeSdkDep(ctx, sdkContext(j))
- if sdkDep.useDefaultLibs {
- ctx.AddVariationDependencies(nil, bootClasspathTag, config.DefaultBootclasspathLibraries...)
- if ctx.Config().TargetOpenJDK9() {
- ctx.AddVariationDependencies(nil, systemModulesTag, config.DefaultSystemModules)
+ if !Bool(j.properties.No_standard_libs) {
+ sdkDep := decodeSdkDep(ctx, sdkContext(j))
+ if sdkDep.useDefaultLibs {
+ ctx.AddVariationDependencies(nil, bootClasspathTag, config.DefaultBootclasspathLibraries...)
+ if ctx.Config().TargetOpenJDK9() {
+ ctx.AddVariationDependencies(nil, systemModulesTag, config.DefaultSystemModules)
+ }
+ if !Bool(j.properties.No_framework_libs) {
+ ctx.AddVariationDependencies(nil, libTag, config.DefaultLibraries...)
+ }
+ } else if sdkDep.useModule {
+ if ctx.Config().TargetOpenJDK9() {
+ ctx.AddVariationDependencies(nil, systemModulesTag, sdkDep.systemModules)
+ }
+ ctx.AddVariationDependencies(nil, bootClasspathTag, sdkDep.modules...)
}
- if !Bool(j.properties.No_framework_libs) {
- ctx.AddVariationDependencies(nil, libTag, config.DefaultLibraries...)
- }
- } else if sdkDep.useModule {
- if ctx.Config().TargetOpenJDK9() {
- ctx.AddVariationDependencies(nil, systemModulesTag, sdkDep.systemModules)
- }
- ctx.AddVariationDependencies(nil, bootClasspathTag, sdkDep.modules...)
}
}
@@ -1204,6 +1216,7 @@
removedDexApiFile android.WritablePath
apiMappingFile android.WritablePath
exactApiFile android.WritablePath
+ proguardFile android.WritablePath
checkCurrentApiTimestamp android.WritablePath
updateCurrentApiTimestamp android.WritablePath
@@ -1265,6 +1278,12 @@
}
}
+ if len(d.properties.Merge_inclusion_annotations_dirs) != 0 {
+ for _, mergeInclusionAnnotationsDir := range d.properties.Merge_inclusion_annotations_dirs {
+ ctx.AddDependency(ctx.Module(), metalavaMergeInclusionAnnotationsDirTag, mergeInclusionAnnotationsDir)
+ }
+ }
+
if len(d.properties.Api_levels_annotations_dirs) != 0 {
for _, apiLevelsAnnotationsDir := range d.properties.Api_levels_annotations_dirs {
ctx.AddDependency(ctx.Module(), metalavaAPILevelsAnnotationsDirTag, apiLevelsAnnotationsDir)
@@ -1348,6 +1367,12 @@
*implicitOutputs = append(*implicitOutputs, d.apiMappingFile)
}
+ if String(d.properties.Proguard_filename) != "" {
+ d.proguardFile = android.PathForModuleOut(ctx, String(d.properties.Proguard_filename))
+ metalavaFlags += " --proguard " + d.proguardFile.String()
+ *implicitOutputs = append(*implicitOutputs, d.proguardFile)
+ }
+
if Bool(d.properties.Write_sdk_values) {
metalavaFlags = metalavaFlags + " --sdk-values " + android.PathForModuleOut(ctx, "out").String()
}
@@ -1387,7 +1412,7 @@
ctx.VisitDirectDepsWithTag(metalavaMergeAnnotationsDirTag, func(m android.Module) {
if t, ok := m.(*ExportedDroiddocDir); ok {
*implicits = append(*implicits, t.deps...)
- flags += " --merge-annotations " + t.dir.String()
+ flags += " --merge-qualifier-annotations " + t.dir.String()
} else {
ctx.PropertyErrorf("merge_annotations_dirs",
"module %q is not a metalava merge-annotations dir", ctx.OtherModuleName(m))
@@ -1396,6 +1421,15 @@
// TODO(tnorbye): find owners to fix these warnings when annotation was enabled.
flags += " --hide HiddenTypedefConstant --hide SuperfluousPrefix --hide AnnotationExtraction "
}
+ ctx.VisitDirectDepsWithTag(metalavaMergeInclusionAnnotationsDirTag, func(m android.Module) {
+ if t, ok := m.(*ExportedDroiddocDir); ok {
+ *implicits = append(*implicits, t.deps...)
+ flags += " --merge-inclusion-annotations " + t.dir.String()
+ } else {
+ ctx.PropertyErrorf("merge_inclusion_annotations_dirs",
+ "module %q is not a metalava merge-annotations dir", ctx.OtherModuleName(m))
+ }
+ })
return flags
}
@@ -1631,6 +1665,9 @@
if Bool(d.properties.Jdiff_enabled) && !ctx.Config().IsPdkBuild() {
+ // Please sync with android-api-council@ before making any changes for the name of jdiffDocZip below
+ // since there's cron job downstream that fetch this .zip file periodically.
+ // See b/116221385 for reference.
d.jdiffDocZip = android.PathForModuleOut(ctx, ctx.ModuleName()+"-"+"jdiff-docs.zip")
d.jdiffStubsSrcJar = android.PathForModuleOut(ctx, ctx.ModuleName()+"-"+"jdiff-stubs.srcjar")
@@ -1657,6 +1694,7 @@
//
var droiddocTemplateTag = dependencyTag{name: "droiddoc-template"}
var metalavaMergeAnnotationsDirTag = dependencyTag{name: "metalava-merge-annotations-dir"}
+var metalavaMergeInclusionAnnotationsDirTag = dependencyTag{name: "metalava-merge-inclusion-annotations-dir"}
var metalavaAPILevelsAnnotationsDirTag = dependencyTag{name: "metalava-api-levels-annotations-dir"}
type ExportedDroiddocDirProperties struct {