aboutsummaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
authorAlan Viverette <alanv@google.com>2018-02-13 13:25:24 -0500
committerAlan Viverette <alanv@google.com>2018-02-13 15:21:18 -0500
commit6bd35eb6f553517c89bbb88819b7831241703c7c (patch)
tree0fd142fe8afbc54d1c9fd241c79eb4084efd0890 /cmd
parentf91a08caca76559feaa12e742abcd1e5f4284fd2 (diff)
downloadbuild_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.go34
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:")