diff --git a/Android.bp b/Android.bp index c571e744c..1eac394a4 100644 --- a/Android.bp +++ b/Android.bp @@ -188,6 +188,7 @@ bootstrap_go_package { "soong", "soong-android", "soong-genrule", + "soong-java-config", ], srcs: [ "java/androidmk.go", @@ -201,6 +202,19 @@ bootstrap_go_package { pluginFor: ["soong_build"], } +bootstrap_go_package { + name: "soong-java-config", + pkgPath: "android/soong/java/config", + deps: [ + "blueprint-proptools", + "soong-android", + ], + srcs: [ + "java/config/config.go", + "java/config/makevars.go", + ], +} + bootstrap_go_package { name: "soong-python", pkgPath: "android/soong/python", diff --git a/java/config/config.go b/java/config/config.go new file mode 100644 index 000000000..848d09d12 --- /dev/null +++ b/java/config/config.go @@ -0,0 +1,23 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package config + +import "android/soong/android" + +var ( + DefaultLibraries = []string{"core-oj", "core-libart", "ext", "framework", "okhttp"} +) + +var pctx = android.NewPackageContext("android/soong/java/config") diff --git a/java/config/makevars.go b/java/config/makevars.go new file mode 100644 index 000000000..670245432 --- /dev/null +++ b/java/config/makevars.go @@ -0,0 +1,29 @@ +// Copyright 2017 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package config + +import ( + "strings" + + "android/soong/android" +) + +func init() { + android.RegisterMakeVarsProvider(pctx, makeVarsProvider) +} + +func makeVarsProvider(ctx android.MakeVarsContext) { + ctx.Strict("TARGET_DEFAULT_JAVA_LIBRARIES", strings.Join(DefaultLibraries, " ")) +} diff --git a/java/java.go b/java/java.go index 01a05f077..20661c479 100644 --- a/java/java.go +++ b/java/java.go @@ -26,6 +26,7 @@ import ( "android/soong/android" "android/soong/genrule" + "android/soong/java/config" ) func init() { @@ -169,8 +170,6 @@ func (j *Module) BootClasspath(ctx android.BaseContext) string { } } -var defaultJavaLibraries = []string{"core-libart", "legacy-test", "ext", "framework"} - func (j *Module) deps(ctx android.BottomUpMutatorContext) { var deps []string @@ -180,7 +179,7 @@ func (j *Module) deps(ctx android.BottomUpMutatorContext) { deps = append(deps, bootClasspath) } if ctx.Device() && j.deviceProperties.Sdk_version == "" { - deps = append(deps, defaultJavaLibraries...) + deps = append(deps, config.DefaultLibraries...) } } deps = append(deps, j.properties.Java_libs...) @@ -218,7 +217,7 @@ func (j *Module) collectDeps(ctx android.ModuleContext) (classpath android.Paths if javaDep, ok := module.(JavaDependency); ok { if otherName == j.BootClasspath(ctx) { bootClasspath = android.OptionalPathForPath(javaDep.ClasspathFile()) - } else if inList(otherName, defaultJavaLibraries) { + } else if inList(otherName, config.DefaultLibraries) { classpath = append(classpath, javaDep.ClasspathFile()) } else if inList(otherName, j.properties.Java_libs) { classpath = append(classpath, javaDep.ClasspathFile())