aboutsummaryrefslogtreecommitdiffstats
path: root/androidmk
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2018-05-06 07:24:19 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2018-05-06 07:24:19 +0000
commit5709ccd0251e4806cf826a1472c6292ebb3a9790 (patch)
treec1dea294b0305d7414dc5ea08f86bc34be9ac2cd /androidmk
parent8ff139ee3ad0de6f109e8ed10da84756858dae87 (diff)
parent7f9b6fbeece0867c8f027fb5cafafab25cc4f5c6 (diff)
downloadbuild_soong-5709ccd0251e4806cf826a1472c6292ebb3a9790.tar.gz
build_soong-5709ccd0251e4806cf826a1472c6292ebb3a9790.tar.bz2
build_soong-5709ccd0251e4806cf826a1472c6292ebb3a9790.zip
Snap for 4765094 from 7f9b6fbeece0867c8f027fb5cafafab25cc4f5c6 to pi-release
Change-Id: I309dd62ddbb35e39810f36e4545a7eee6d384daa
Diffstat (limited to 'androidmk')
-rw-r--r--androidmk/cmd/androidmk/android.go15
-rw-r--r--androidmk/cmd/androidmk/androidmk.go3
-rw-r--r--androidmk/cmd/androidmk/androidmk_test.go74
3 files changed, 72 insertions, 20 deletions
diff --git a/androidmk/cmd/androidmk/android.go b/androidmk/cmd/androidmk/android.go
index 5196754e..5cb4869c 100644
--- a/androidmk/cmd/androidmk/android.go
+++ b/androidmk/cmd/androidmk/android.go
@@ -64,6 +64,9 @@ var rewriteProperties = map[string](func(variableAssignmentContext) error){
"LOCAL_MODULE_SUFFIX": skip, // TODO
"LOCAL_PATH": skip, // Nothing to do, except maybe avoid the "./" in paths?
"LOCAL_PRELINK_MODULE": skip, // Already phased out
+ "LOCAL_BUILT_MODULE_STEM": skip,
+ "LOCAL_USE_AAPT2": skip, // Always enabled in Soong
+ "LOCAL_JAR_EXCLUDE_FILES": skip, // Soong never excludes files from jars
}
// adds a group of properties all having the same type
@@ -94,6 +97,7 @@ func init() {
"LOCAL_NOTICE_FILE": "notice",
"LOCAL_JAVA_LANGUAGE_VERSION": "java_version",
"LOCAL_INSTRUMENTATION_FOR": "instrumentation_for",
+ "LOCAL_MANIFEST_FILE": "manifest",
"LOCAL_DEX_PREOPT_PROFILE_CLASS_LISTING": "dex_preopt.profile",
})
@@ -128,6 +132,7 @@ func init() {
"LOCAL_RENDERSCRIPT_FLAGS": "renderscript.flags",
"LOCAL_JAVA_RESOURCE_DIRS": "java_resource_dirs",
+ "LOCAL_RESOURCE_DIR": "resource_dirs",
"LOCAL_JAVACFLAGS": "javacflags",
"LOCAL_ERROR_PRONE_FLAGS": "errorprone.javacflags",
"LOCAL_DX_FLAGS": "dxflags",
@@ -142,7 +147,13 @@ func init() {
"LOCAL_PROGUARD_FLAGS": "optimize.proguard_flags",
"LOCAL_PROGUARD_FLAG_FILES": "optimize.proguard_flag_files",
+
+ // These will be rewritten to libs/static_libs by bpfix, after their presence is used to convert
+ // java_library_static to android_library.
+ "LOCAL_SHARED_ANDROID_LIBRARIES": "android_libs",
+ "LOCAL_STATIC_ANDROID_LIBRARIES": "android_static_libs",
})
+
addStandardProperties(bpparser.BoolType,
map[string]string{
// Bool properties
@@ -259,7 +270,7 @@ func classifyLocalOrGlobalPath(value bpparser.Expression) (string, bpparser.Expr
}
case *bpparser.Operator:
if v.Type() != bpparser.StringType {
- return "", nil, fmt.Errorf("classifyLocalOrGlobalPath expected a string, got %s", value.Type)
+ return "", nil, fmt.Errorf("classifyLocalOrGlobalPath expected a string, got %s", v.Type())
}
if v.Operator != '+' {
@@ -290,7 +301,7 @@ func classifyLocalOrGlobalPath(value bpparser.Expression) (string, bpparser.Expr
case *bpparser.String:
return "global", value, nil
default:
- return "", nil, fmt.Errorf("classifyLocalOrGlobalPath expected a string, got %s", value.Type)
+ return "", nil, fmt.Errorf("classifyLocalOrGlobalPath expected a string, got %s", v.Type())
}
}
diff --git a/androidmk/cmd/androidmk/androidmk.go b/androidmk/cmd/androidmk/androidmk.go
index 6e0b474b..b6a973c0 100644
--- a/androidmk/cmd/androidmk/androidmk.go
+++ b/androidmk/cmd/androidmk/androidmk.go
@@ -239,7 +239,8 @@ func convertFile(filename string, buffer *bytes.Buffer) (string, []error) {
}
// check for common supported but undesirable structures and clean them up
- err := bpfix.FixTree(tree, bpfix.NewFixRequest().AddAll())
+ fixer := bpfix.NewFixer(tree)
+ tree, err := fixer.Fix(bpfix.NewFixRequest().AddAll())
if err != nil {
return "", []error{err}
}
diff --git a/androidmk/cmd/androidmk/androidmk_test.go b/androidmk/cmd/androidmk/androidmk_test.go
index 45df1a57..edf3d42f 100644
--- a/androidmk/cmd/androidmk/androidmk_test.go
+++ b/androidmk/cmd/androidmk/androidmk_test.go
@@ -17,11 +17,10 @@ package main
import (
"bytes"
"fmt"
- "os"
"strings"
"testing"
- bpparser "github.com/google/blueprint/parser"
+ "android/soong/bpfix/bpfix"
)
var testCases = []struct {
@@ -498,6 +497,7 @@ include $(call all-makefiles-under,$(LOCAL_PATH))
include $(CLEAR_VARS)
LOCAL_SRC_FILES := test.jar
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+ LOCAL_STATIC_ANDROID_LIBRARIES :=
include $(BUILD_PREBUILT)
`,
expected: `
@@ -522,28 +522,68 @@ include $(call all-makefiles-under,$(LOCAL_PATH))
}
`,
},
-}
-func reformatBlueprint(input string) string {
- file, errs := bpparser.Parse("<testcase>", bytes.NewBufferString(input), bpparser.NewScope(nil))
- if len(errs) > 0 {
- for _, err := range errs {
- fmt.Fprintln(os.Stderr, err)
- }
- panic(fmt.Sprintf("%d parsing errors in testcase:\n%s", len(errs), input))
- }
+ {
+ desc: "aar",
+ in: `
+ include $(CLEAR_VARS)
+ LOCAL_SRC_FILES := test.java
+ LOCAL_RESOURCE_DIR := res
+ include $(BUILD_STATIC_JAVA_LIBRARY)
- res, err := bpparser.Print(file)
- if err != nil {
- panic(fmt.Sprintf("Error printing testcase: %q", err))
- }
+ include $(CLEAR_VARS)
+ LOCAL_SRC_FILES := test.java
+ LOCAL_STATIC_LIBRARIES := foo
+ LOCAL_STATIC_ANDROID_LIBRARIES := bar
+ include $(BUILD_STATIC_JAVA_LIBRARY)
+
+ include $(CLEAR_VARS)
+ LOCAL_SRC_FILES := test.java
+ LOCAL_SHARED_LIBRARIES := foo
+ LOCAL_SHARED_ANDROID_LIBRARIES := bar
+ include $(BUILD_STATIC_JAVA_LIBRARY)
- return string(res)
+ include $(CLEAR_VARS)
+ LOCAL_SRC_FILES := test.java
+ LOCAL_STATIC_ANDROID_LIBRARIES :=
+ include $(BUILD_STATIC_JAVA_LIBRARY)
+ `,
+ expected: `
+ android_library {
+ srcs: ["test.java"],
+ resource_dirs: ["res"],
+ }
+
+ android_library {
+ srcs: ["test.java"],
+ static_libs: [
+ "foo",
+ "bar",
+ ],
+ }
+
+ android_library {
+ srcs: ["test.java"],
+ libs: [
+ "foo",
+ "bar",
+ ],
+ }
+
+ java_library_static {
+ srcs: ["test.java"],
+ static_libs: [],
+ }
+ `,
+ },
}
func TestEndToEnd(t *testing.T) {
for i, test := range testCases {
- expected := reformatBlueprint(test.expected)
+ expected, err := bpfix.Reformat(test.expected)
+ if err != nil {
+ t.Error(err)
+ }
got, errs := convertFile(fmt.Sprintf("<testcase %d>", i), bytes.NewBufferString(test.in))
if len(errs) > 0 {