diff options
author | Alan Viverette <alanv@google.com> | 2018-02-13 13:25:24 -0500 |
---|---|---|
committer | Alan Viverette <alanv@google.com> | 2018-02-13 15:21:18 -0500 |
commit | 6bd35eb6f553517c89bbb88819b7831241703c7c (patch) | |
tree | 0fd142fe8afbc54d1c9fd241c79eb4084efd0890 /cmd | |
parent | f91a08caca76559feaa12e742abcd1e5f4284fd2 (diff) | |
download | build_soong-6bd35eb6f553517c89bbb88819b7831241703c7c.tar.gz build_soong-6bd35eb6f553517c89bbb88819b7831241703c7c.tar.bz2 build_soong-6bd35eb6f553517c89bbb88819b7831241703c7c.zip |
Use "jar" as default type, "compile" as default scope
Only include dependencies for scope "compile."
Bug: 73263586
Test: ./update_current.py -s -t <build-id>
Change-Id: I2ac6055cb4c1ad1f8d7924869f54f50e5e662742
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/pom2mk/pom2mk.go | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/cmd/pom2mk/pom2mk.go b/cmd/pom2mk/pom2mk.go index 721e250e..63bcbb65 100644 --- a/cmd/pom2mk/pom2mk.go +++ b/cmd/pom2mk/pom2mk.go @@ -98,8 +98,7 @@ type Dependency struct { ArtifactId string `xml:"artifactId"` Version string `xml:"version"` Type string `xml:"type"` - - Scope string `xml:"scope"` + Scope string `xml:"scope"` } func (d Dependency) MkName() string { @@ -140,17 +139,19 @@ func (p Pom) MkName() string { } func (p Pom) MkJarDeps() []string { - return p.MkDeps("jar") + return p.MkDeps("jar", "compile") } func (p Pom) MkAarDeps() []string { - return p.MkDeps("aar") + return p.MkDeps("aar", "compile") } -func (p Pom) MkDeps(typeExt string) []string { +// MkDeps obtains dependencies filtered by type and scope. The results of this +// method are formatted as Make targets, e.g. run through MavenToMk rules. +func (p Pom) MkDeps(typeExt string, scope string) []string { var ret []string for _, d := range p.Dependencies { - if d.Type != typeExt { + if d.Type != typeExt || d.Scope != scope { continue } name := rewriteNames.MavenToMk(d.GroupId, d.ArtifactId) @@ -164,13 +165,22 @@ func (p Pom) SdkVersion() string { return sdkVersion } -func (p *Pom) FixDepTypes(modules map[string]*Pom) { +func (p *Pom) FixDeps(modules map[string]*Pom) { for _, d := range p.Dependencies { - if d.Type != "" { - continue + if d.Type == "" { + if depPom, ok := modules[d.MkName()]; ok { + // We've seen the POM for this dependency, use its packaging + // as the dependency type rather than Maven spec default. + d.Type = depPom.Packaging + } else { + // Dependency type was not specified and we don't have the POM + // for this artifact, use the default from Maven spec. + d.Type = "jar" + } } - if depPom, ok := modules[d.MkName()]; ok { - d.Type = depPom.Packaging + if d.Scope == "" { + // Scope was not specified, use the default from Maven spec. + d.Scope = "compile" } } } @@ -360,7 +370,7 @@ The makefile is written to stdout, to be put in the current directory (often as } for _, pom := range poms { - pom.FixDepTypes(modules) + pom.FixDeps(modules) } fmt.Println("# Automatically generated with:") |