Add -jetifier to pom2mk and pom2bp

Test: use pom2mk -jetifier to replace some hand-modified makefiles
Change-Id: I2a1988d0120fee1edf2d85c8b3294041840efe7c
This commit is contained in:
Dan Willemsen
2019-04-20 21:47:14 -07:00
parent 7f276c6b77
commit 7fdab6eeec
2 changed files with 22 additions and 2 deletions

View File

@@ -126,6 +126,7 @@ var hostModuleNames = HostModuleNames{}
var sdkVersion string var sdkVersion string
var useVersion string var useVersion string
var jetifier bool
func InList(s string, list []string) bool { func InList(s string, list []string) bool {
for _, l := range list { for _, l := range list {
@@ -257,6 +258,10 @@ func (p Pom) SdkVersion() string {
return sdkVersion return sdkVersion
} }
func (p Pom) Jetifier() bool {
return jetifier
}
func (p *Pom) FixDeps(modules map[string]*Pom) { func (p *Pom) FixDeps(modules map[string]*Pom) {
for _, d := range p.Dependencies { for _, d := range p.Dependencies {
if d.Type == "" { if d.Type == "" {
@@ -331,6 +336,9 @@ var bpTemplate = template.Must(template.New("bp").Parse(`
name: "{{.BpName}}-nodeps", name: "{{.BpName}}-nodeps",
{{.ImportProperty}}: ["{{.ArtifactFile}}"], {{.ImportProperty}}: ["{{.ArtifactFile}}"],
sdk_version: "{{.SdkVersion}}", sdk_version: "{{.SdkVersion}}",
{{- if .Jetifier}}
jetifier: true,
{{- end}}
{{- if .IsAar}} {{- if .IsAar}}
min_sdk_version: "{{.MinSdkVersion}}", min_sdk_version: "{{.MinSdkVersion}}",
static_libs: [ static_libs: [
@@ -500,10 +508,12 @@ Usage: %s [--rewrite <regex>=<replace>] [-exclude <module>] [--extra-static-libs
are depended upon (like androidx.test.rules requires android.test.base). are depended upon (like androidx.test.rules requires android.test.base).
This may be specified multiple times to declare these dependencies. This may be specified multiple times to declare these dependencies.
-sdk-version <version> -sdk-version <version>
Sets LOCAL_SDK_VERSION := <version> for all modules. Sets sdk_version: "<version>" for all modules.
-use-version <version> -use-version <version>
If the maven directory contains multiple versions of artifacts and their pom files, 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. -use-version can be used to only write Android.bp files for a specific version of those artifacts.
-jetifier
Sets jetifier: true for all modules.
<dir> <dir>
The directory to search for *.pom files under. The directory to search for *.pom files under.
The contents are written to stdout, to be put in the current directory (often as Android.bp) The contents are written to stdout, to be put in the current directory (often as Android.bp)
@@ -521,8 +531,9 @@ Usage: %s [--rewrite <regex>=<replace>] [-exclude <module>] [--extra-static-libs
flag.Var(&extraLibs, "extra-libs", "Extra runtime dependencies needed when depending on a module") flag.Var(&extraLibs, "extra-libs", "Extra runtime dependencies needed when depending on a module")
flag.Var(&rewriteNames, "rewrite", "Regex(es) to rewrite artifact names") flag.Var(&rewriteNames, "rewrite", "Regex(es) to rewrite artifact names")
flag.Var(&hostModuleNames, "host", "Specifies that the corresponding module (specified in the form 'module.group:module.artifact') is a host module") flag.Var(&hostModuleNames, "host", "Specifies that the corresponding module (specified in the form 'module.group:module.artifact') is a host module")
flag.StringVar(&sdkVersion, "sdk-version", "", "What to write to LOCAL_SDK_VERSION") flag.StringVar(&sdkVersion, "sdk-version", "", "What to write to sdk_version")
flag.StringVar(&useVersion, "use-version", "", "Only read artifacts of a specific version") flag.StringVar(&useVersion, "use-version", "", "Only read artifacts of a specific version")
flag.BoolVar(&jetifier, "jetifier", false, "Sets jetifier: true on all modules")
flag.Bool("static-deps", false, "Ignored") flag.Bool("static-deps", false, "Ignored")
flag.StringVar(&regen, "regen", "", "Rewrite specified file") flag.StringVar(&regen, "regen", "", "Rewrite specified file")
flag.Parse() flag.Parse()

View File

@@ -104,6 +104,7 @@ var excludes = make(Exclude)
var sdkVersion string var sdkVersion string
var useVersion string var useVersion string
var staticDeps bool var staticDeps bool
var jetifier bool
func InList(s string, list []string) bool { func InList(s string, list []string) bool {
for _, l := range list { for _, l := range list {
@@ -195,6 +196,10 @@ func (p Pom) SdkVersion() string {
return sdkVersion return sdkVersion
} }
func (p Pom) Jetifier() bool {
return jetifier
}
func (p *Pom) FixDeps(modules map[string]*Pom) { func (p *Pom) FixDeps(modules map[string]*Pom) {
for _, d := range p.Dependencies { for _, d := range p.Dependencies {
if d.Type == "" { if d.Type == "" {
@@ -229,6 +234,7 @@ LOCAL_STATIC_JAVA_LIBRARIES :={{range .MkJarDeps}} \
{{.}}{{end}} {{.}}{{end}}
LOCAL_STATIC_ANDROID_LIBRARIES :={{range .MkAarDeps}} \ LOCAL_STATIC_ANDROID_LIBRARIES :={{range .MkAarDeps}} \
{{.}}{{end}} {{.}}{{end}}
LOCAL_JETIFIER_ENABLED := {{if .Jetifier}}true{{end}}
include $(BUILD_PREBUILT) include $(BUILD_PREBUILT)
`)) `))
@@ -367,6 +373,8 @@ Usage: %s [--rewrite <regex>=<replace>] [-exclude <module>] [--extra-deps <modul
-use-version can be used to only write makefiles for a specific version of those artifacts. -use-version can be used to only write makefiles for a specific version of those artifacts.
-static-deps -static-deps
Whether to statically include direct dependencies. Whether to statically include direct dependencies.
-jetifier
Enable jetifier in order to use androidx
<dir> <dir>
The directory to search for *.pom files under. The directory to search for *.pom files under.
The makefile is written to stdout, to be put in the current directory (often as Android.mk) The makefile is written to stdout, to be put in the current directory (often as Android.mk)
@@ -383,6 +391,7 @@ Usage: %s [--rewrite <regex>=<replace>] [-exclude <module>] [--extra-deps <modul
flag.StringVar(&sdkVersion, "sdk-version", "", "What to write to LOCAL_SDK_VERSION") flag.StringVar(&sdkVersion, "sdk-version", "", "What to write to LOCAL_SDK_VERSION")
flag.StringVar(&useVersion, "use-version", "", "Only read artifacts of a specific version") flag.StringVar(&useVersion, "use-version", "", "Only read artifacts of a specific version")
flag.BoolVar(&staticDeps, "static-deps", false, "Statically include direct dependencies") flag.BoolVar(&staticDeps, "static-deps", false, "Statically include direct dependencies")
flag.BoolVar(&jetifier, "jetifier", false, "Enable jetifier in order to use androidx")
flag.StringVar(&regen, "regen", "", "Rewrite specified file") flag.StringVar(&regen, "regen", "", "Rewrite specified file")
flag.Parse() flag.Parse()