diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2018-05-06 07:24:19 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2018-05-06 07:24:19 +0000 |
commit | 5709ccd0251e4806cf826a1472c6292ebb3a9790 (patch) | |
tree | c1dea294b0305d7414dc5ea08f86bc34be9ac2cd /androidmk | |
parent | 8ff139ee3ad0de6f109e8ed10da84756858dae87 (diff) | |
parent | 7f9b6fbeece0867c8f027fb5cafafab25cc4f5c6 (diff) | |
download | build_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.go | 15 | ||||
-rw-r--r-- | androidmk/cmd/androidmk/androidmk.go | 3 | ||||
-rw-r--r-- | androidmk/cmd/androidmk/androidmk_test.go | 74 |
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 { |