Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3a5b84bc authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 9470583 from b813c9c1 to tm-qpr3-release

Change-Id: I708b068bce63c3bd60353e45c27b7cd71d96aa3a
parents d31c7fd2 b813c9c1
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -153,7 +153,9 @@ func createJavaDeviceForHostRules() []Rule {
	javaDeviceForHostProjectsAllowedList := []string{
		"development/build",
		"external/guava",
		"external/kotlinx.coroutines",
		"external/robolectric-shadows",
		"external/robolectric",
		"frameworks/layoutlib",
	}

+46 −3
Original line number Diff line number Diff line
@@ -150,6 +150,7 @@ var sdkVersion string
var defaultMinSdkVersion string
var useVersion string
var staticDeps bool
var writeCmd bool
var jetifier bool

func InList(s string, list []string) bool {
@@ -206,6 +207,10 @@ func (p Pom) IsJar() bool {
	return p.Packaging == "jar"
}

func (p Pom) IsApk() bool {
	return p.Packaging == "apk"
}

func (p Pom) IsHostModule() bool {
	return hostModuleNames.IsHostModule(p.GroupId, p.ArtifactId)
}
@@ -243,6 +248,8 @@ func (p Pom) BazelTargetType() string {
func (p Pom) ImportModuleType() string {
	if p.IsAar() {
		return "android_library_import"
	} else if p.IsApk() {
		return "android_app_import"
	} else if p.IsHostOnly() {
		return "java_import_host"
	} else {
@@ -253,6 +260,8 @@ func (p Pom) ImportModuleType() string {
func (p Pom) BazelImportTargetType() string {
	if p.IsAar() {
		return "aar_import"
	} else if p.IsApk() {
		return "apk_import"
	} else {
		return "java_import"
	}
@@ -261,6 +270,8 @@ func (p Pom) BazelImportTargetType() string {
func (p Pom) ImportProperty() string {
	if p.IsAar() {
		return "aars"
	} else if p.IsApk() {
		return "apk"
	} else {
		return "jars"
	}
@@ -269,6 +280,8 @@ func (p Pom) ImportProperty() string {
func (p Pom) BazelImportProperty() string {
	if p.IsAar() {
		return "aar"
	} else if p.IsApk() {
		return "apk"
	} else {
		return "jars"
	}
@@ -492,8 +505,12 @@ func (p *Pom) ExtractMinSdkVersion() error {
var bpTemplate = template.Must(template.New("bp").Parse(`
{{.ImportModuleType}} {
    name: "{{.BpName}}",
    {{- if .IsApk}}
    {{.ImportProperty}}: "{{.ArtifactFile}}",
    {{- else}}
    {{.ImportProperty}}: ["{{.ArtifactFile}}"],
    sdk_version: "{{.SdkVersion}}",
    {{- end}}
    {{- if .Jetifier}}
    jetifier: true,
    {{- end}}
@@ -534,8 +551,14 @@ var bpTemplate = template.Must(template.New("bp").Parse(`
    ],
    {{- end}}
    {{- else if not .IsHostOnly}}
    {{- if not .IsApk}}
    min_sdk_version: "{{.DefaultMinSdkVersion}}",
    {{- end}}
    {{- end}}
    {{- if .IsApk}}
    presigned: true
    {{- end}}

}
`))

@@ -810,6 +833,9 @@ Usage: %s [--rewrite <regex>=<replace>] [--exclude <module>] [--extra-static-lib
  -use-version <version>
     If the maven directory contains multiple versions of artifacts and their pom files,
     -use-version can be used to only write Android.bp files for a specific version of those artifacts.
  -write-cmd
     Whether to write the command line arguments used to generate the build file as a comment at
     the top of the build file itself.
  -jetifier
     Sets jetifier: true for all modules.
  <dir>
@@ -824,6 +850,7 @@ Usage: %s [--rewrite <regex>=<replace>] [--exclude <module>] [--extra-static-lib

	var regen string
	var pom2build bool
	var prepend string

	flag.Var(&excludes, "exclude", "Exclude module")
	flag.Var(&extraStaticLibs, "extra-static-libs", "Extra static dependencies needed when depending on a module")
@@ -836,9 +863,11 @@ Usage: %s [--rewrite <regex>=<replace>] [--exclude <module>] [--extra-static-lib
	flag.StringVar(&defaultMinSdkVersion, "default-min-sdk-version", "24", "Default min_sdk_version to use, if one is not available from AndroidManifest.xml. Default: 24")
	flag.StringVar(&useVersion, "use-version", "", "Only read artifacts of a specific version")
	flag.BoolVar(&staticDeps, "static-deps", false, "Statically include direct dependencies")
	flag.BoolVar(&writeCmd, "write-cmd", true, "Write command line arguments as a comment")
	flag.BoolVar(&jetifier, "jetifier", false, "Sets jetifier: true on all modules")
	flag.StringVar(&regen, "regen", "", "Rewrite specified file")
	flag.BoolVar(&pom2build, "pom2build", false, "If true, will generate a Bazel BUILD file *instead* of a .bp file")
	flag.StringVar(&prepend, "prepend", "", "Path to a file containing text to insert at the beginning of the generated build file")
	flag.Parse()

	if regen != "" {
@@ -962,8 +991,22 @@ Usage: %s [--rewrite <regex>=<replace>] [--exclude <module>] [--extra-static-lib
	if pom2build {
		commentString = "#"
	}

	fmt.Fprintln(buf, commentString, "This is a generated file. Do not modify directly.")

	if writeCmd {
		fmt.Fprintln(buf, commentString, "Automatically generated with:")
		fmt.Fprintln(buf, commentString, "pom2bp", strings.Join(proptools.ShellEscapeList(os.Args[1:]), " "))
	}

	if prepend != "" {
		contents, err := ioutil.ReadFile(prepend)
		if err != nil {
			fmt.Fprintln(os.Stderr, "Error reading", prepend, err)
			os.Exit(1)
		}
		fmt.Fprintln(buf, string(contents))
	}

	depsTemplate := bpDepsTemplate
	template := bpTemplate
@@ -974,7 +1017,7 @@ Usage: %s [--rewrite <regex>=<replace>] [--exclude <module>] [--extra-static-lib

	for _, pom := range poms {
		var err error
		if staticDeps {
		if staticDeps && !pom.IsApk() {
			err = depsTemplate.Execute(buf, pom)
		} else {
			err = template.Execute(buf, pom)
+4 −5
Original line number Diff line number Diff line
@@ -749,10 +749,8 @@ func (j *Module) deps(ctx android.BottomUpMutatorContext) {
		// Kotlin files
		ctx.AddVariationDependencies(nil, kotlinStdlibTag,
			"kotlin-stdlib", "kotlin-stdlib-jdk7", "kotlin-stdlib-jdk8")
		if len(j.properties.Plugins) > 0 {
		ctx.AddVariationDependencies(nil, kotlinAnnotationsTag, "kotlin-annotations")
	}
	}

	// 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
@@ -1107,8 +1105,6 @@ func (j *Module) compile(ctx android.ModuleContext, aaptSrcJar android.Path) {
		flags.classpath = append(flags.classpath, deps.kotlinStdlib...)
		flags.classpath = append(flags.classpath, deps.kotlinAnnotations...)

		flags.dexClasspath = append(flags.dexClasspath, deps.kotlinAnnotations...)

		flags.kotlincClasspath = append(flags.kotlincClasspath, flags.bootClasspath...)
		flags.kotlincClasspath = append(flags.kotlincClasspath, flags.classpath...)

@@ -1140,9 +1136,12 @@ func (j *Module) compile(ctx android.ModuleContext, aaptSrcJar android.Path) {
		// Jar kotlin classes into the final jar after javac
		if BoolDefault(j.properties.Static_kotlin_stdlib, true) {
			kotlinJars = append(kotlinJars, deps.kotlinStdlib...)
			kotlinJars = append(kotlinJars, deps.kotlinAnnotations...)
			kotlinHeaderJars = append(kotlinHeaderJars, deps.kotlinStdlib...)
			kotlinHeaderJars = append(kotlinHeaderJars, deps.kotlinAnnotations...)
		} else {
			flags.dexClasspath = append(flags.dexClasspath, deps.kotlinStdlib...)
			flags.dexClasspath = append(flags.dexClasspath, deps.kotlinAnnotations...)
		}
	}

+14 −0
Original line number Diff line number Diff line
@@ -526,6 +526,20 @@ func (v javaVersion) String() string {
	}
}

func (v javaVersion) StringForKotlinc() string {
	// $ ./external/kotlinc/bin/kotlinc -jvm-target foo
	// error: unknown JVM target version: foo
	// Supported versions: 1.6, 1.8, 9, 10, 11, 12, 13, 14, 15, 16, 17
	switch v {
	case JAVA_VERSION_7:
		return "1.6"
	case JAVA_VERSION_9:
		return "9"
	default:
		return v.String()
	}
}

// Returns true if javac targeting this version uses system modules instead of a bootclasspath.
func (v javaVersion) usesJavaModules() bool {
	return v >= 9
+2 −3
Original line number Diff line number Diff line
@@ -119,8 +119,7 @@ func kotlinCompile(ctx android.ModuleContext, outputFile, headerOutputFile andro
			"srcJarDir":         android.PathForModuleOut(ctx, "kotlinc", "srcJars").String(),
			"kotlinBuildFile":   android.PathForModuleOut(ctx, "kotlinc-build.xml").String(),
			"emptyDir":          android.PathForModuleOut(ctx, "kotlinc", "empty").String(),
			// http://b/69160377 kotlinc only supports -jvm-target 1.6 and 1.8
			"kotlinJvmTarget": "1.8",
			"kotlinJvmTarget":   flags.javaVersion.StringForKotlinc(),
			"name":              kotlinName,
		},
	})
Loading