diff options
-rw-r--r-- | cmd/pom2bp/pom2bp.go | 4 | ||||
-rw-r--r-- | genrule/genrule.go | 27 | ||||
-rw-r--r-- | java/aar.go | 7 | ||||
-rw-r--r-- | java/droiddoc.go | 12 | ||||
-rw-r--r-- | java/system_modules.go | 24 |
5 files changed, 46 insertions, 28 deletions
diff --git a/cmd/pom2bp/pom2bp.go b/cmd/pom2bp/pom2bp.go index 7b06035d..9aa25f07 100644 --- a/cmd/pom2bp/pom2bp.go +++ b/cmd/pom2bp/pom2bp.go @@ -281,8 +281,8 @@ var bpTemplate = template.Must(template.New("bp").Parse(` {{if .IsAar}}android_library{{else}}java_library_static{{end}} { name: "{{.BpName}}", sdk_version: "{{.SdkVersion}}",{{if .IsAar}} - min_sdk_version: "{{.MinSdkVersion}}",{{end}} - manifest: "manifests/{{.BpName}}/AndroidManifest.xml", + min_sdk_version: "{{.MinSdkVersion}}", + manifest: "manifests/{{.BpName}}/AndroidManifest.xml",{{end}} static_libs: [ "{{.BpName}}-nodeps",{{range .BpJarDeps}} "{{.}}",{{end}}{{range .BpAarDeps}} diff --git a/genrule/genrule.go b/genrule/genrule.go index d03d4ee2..03d4ea6f 100644 --- a/genrule/genrule.go +++ b/genrule/genrule.go @@ -223,13 +223,18 @@ func (g *Module) GenerateAndroidBuildActions(ctx android.ModuleContext) { task := g.taskGenerator(ctx, String(g.properties.Cmd), srcFiles) rawCommand, err := android.Expand(task.cmd, func(name string) (string, error) { + // report the error directly without returning an error to android.Expand to catch multiple errors in a + // single run + reportError := func(fmt string, args ...interface{}) (string, error) { + ctx.PropertyErrorf("cmd", fmt, args...) + return "SOONG_ERROR", nil + } + switch name { case "location": if len(g.properties.Tools) == 0 && len(toolFiles) == 0 { - return "", fmt.Errorf("at least one `tools` or `tool_files` is required if $(location) is used") - } - - if len(g.properties.Tools) > 0 { + return reportError("at least one `tools` or `tool_files` is required if $(location) is used") + } else if len(g.properties.Tools) > 0 { return tools[g.properties.Tools[0]].String(), nil } else { return tools[toolFiles[0].Rel()].String(), nil @@ -241,7 +246,7 @@ func (g *Module) GenerateAndroidBuildActions(ctx android.ModuleContext) { case "depfile": referencedDepfile = true if !Bool(g.properties.Depfile) { - return "", fmt.Errorf("$(depfile) used without depfile property") + return reportError("$(depfile) used without depfile property") } return "__SBOX_DEPFILE__", nil case "genDir": @@ -252,22 +257,22 @@ func (g *Module) GenerateAndroidBuildActions(ctx android.ModuleContext) { if tool, ok := tools[label]; ok { return tool.String(), nil } else { - return "", fmt.Errorf("unknown location label %q", label) + return reportError("unknown location label %q", label) } } - return "", fmt.Errorf("unknown variable '$(%s)'", name) + return reportError("unknown variable '$(%s)'", name) } }) - if Bool(g.properties.Depfile) && !referencedDepfile { - ctx.PropertyErrorf("cmd", "specified depfile=true but did not include a reference to '${depfile}' in cmd") - } - if err != nil { ctx.PropertyErrorf("cmd", "%s", err.Error()) return } + if Bool(g.properties.Depfile) && !referencedDepfile { + ctx.PropertyErrorf("cmd", "specified depfile=true but did not include a reference to '${depfile}' in cmd") + } + // tell the sbox command which directory to use as its sandbox root buildDir := android.PathForOutput(ctx).String() sandboxPath := shared.TempDirForOutDir(buildDir) diff --git a/java/aar.go b/java/aar.go index 506f39f8..a4069bb8 100644 --- a/java/aar.go +++ b/java/aar.go @@ -323,6 +323,7 @@ func AndroidLibraryFactory() android.Module { &module.androidLibraryProperties) module.androidLibraryProperties.BuildAAR = true + module.properties.Installable = proptools.BoolPtr(false) android.InitAndroidArchModule(module, android.DeviceSupported, android.MultilibCommon) return module @@ -335,7 +336,8 @@ func AndroidLibraryFactory() android.Module { type AARImportProperties struct { Aars []string - Sdk_version *string + Sdk_version *string + Min_sdk_version *string Static_libs []string Libs []string @@ -361,6 +363,9 @@ func (a *AARImport) sdkVersion() string { } func (a *AARImport) minSdkVersion() string { + if a.properties.Min_sdk_version != nil { + return *a.properties.Min_sdk_version + } return a.sdkVersion() } diff --git a/java/droiddoc.go b/java/droiddoc.go index dbceed86..6cb8d3c1 100644 --- a/java/droiddoc.go +++ b/java/droiddoc.go @@ -226,6 +226,10 @@ type DroiddocProperties struct { // the generated removed Dex API filename by Doclava. 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. Exact_api_filename *string @@ -283,6 +287,7 @@ type Droiddoc struct { removedApiFile android.WritablePath removedDexApiFile android.WritablePath exactApiFile android.WritablePath + apiMappingFile android.WritablePath checkCurrentApiTimestamp android.WritablePath updateCurrentApiTimestamp android.WritablePath @@ -831,6 +836,13 @@ func (d *Droiddoc) GenerateAndroidBuildActions(ctx android.ModuleContext) { implicitOutputs = append(implicitOutputs, d.exactApiFile) } + if String(d.properties.Dex_mapping_filename) != "" { + d.apiMappingFile = android.PathForModuleOut(ctx, String(d.properties.Dex_mapping_filename)) + args = args + " -apiMapping " + d.apiMappingFile.String() + // Omitted: metalava support + implicitOutputs = append(implicitOutputs, d.apiMappingFile) + } + implicits = append(implicits, d.Javadoc.srcJars...) implicitOutputs = append(implicitOutputs, d.Javadoc.docZip) diff --git a/java/system_modules.go b/java/system_modules.go index 943eaeb8..73a51312 100644 --- a/java/system_modules.go +++ b/java/system_modules.go @@ -119,9 +119,7 @@ func (system *SystemModules) GenerateAndroidBuildActions(ctx android.ModuleConte jars = append(jars, android.PathsForModuleSrc(ctx, system.properties.Jars)...) - if ctx.Config().TargetOpenJDK9() { - system.outputFile = TransformJarsToSystemModules(ctx, "java.base", jars) - } + system.outputFile = TransformJarsToSystemModules(ctx, "java.base", jars) } func (system *SystemModules) DepsMutator(ctx android.BottomUpMutatorContext) { @@ -131,17 +129,15 @@ func (system *SystemModules) DepsMutator(ctx android.BottomUpMutatorContext) { func (system *SystemModules) AndroidMk() android.AndroidMkData { return android.AndroidMkData{ Custom: func(w io.Writer, name, prefix, moduleDir string, data android.AndroidMkData) { - if system.outputFile != nil { - makevar := "SOONG_SYSTEM_MODULES_" + name - fmt.Fprintln(w) - fmt.Fprintln(w, makevar, ":=", system.outputFile.String()) - fmt.Fprintln(w, ".KATI_READONLY", ":=", makevar) - fmt.Fprintln(w, name+":", "$("+makevar+")") - fmt.Fprintln(w) - makevar = "SOONG_SYSTEM_MODULES_LIBS_" + name - fmt.Fprintln(w, makevar, ":=", strings.Join(system.properties.Libs, " ")) - fmt.Fprintln(w, ".KATI_READONLY :=", makevar) - } + makevar := "SOONG_SYSTEM_MODULES_" + name + fmt.Fprintln(w) + fmt.Fprintln(w, makevar, ":=", system.outputFile.String()) + fmt.Fprintln(w, ".KATI_READONLY", ":=", makevar) + fmt.Fprintln(w, name+":", "$("+makevar+")") + fmt.Fprintln(w) + makevar = "SOONG_SYSTEM_MODULES_LIBS_" + name + fmt.Fprintln(w, makevar, ":=", strings.Join(system.properties.Libs, " ")) + fmt.Fprintln(w, ".KATI_READONLY :=", makevar) }, } } |