Add more androidmk translations for android libraries

Add support for translating LOCAL_MANIFEST_FILE, LOCAL_RESOURCE_DIR
LOCAL_SHARED_ANDROID_LIBRARIES, and LOCAL_STATIC_ANDROID_LIBRARIES.

Use the presence of non-empty LOCAL_RESOURCE_DIR,
LOCAL_SHARED_ANDROID_LIBRARIES or LOCAL_STATIC_ANDROID_LIBRARIES
to convert a java_library_static into an android_library module,
and then squash LOCAL_SHARED_ANDROID_LIBRARIES into
LOCAL_SHARED_LIBRARIES and LOCAL_STATIC_ANDROID_LIBRARIES into
LOCAL_STATIC_LIBRARIES.

Test: androidmk_test.go
Change-Id: I3ad2a3561f69ebd097eca97cb170754d64e06123
This commit is contained in:
Colin Cross
2018-03-21 16:25:19 -07:00
parent 9c55d237f6
commit 2dee86d69c
3 changed files with 115 additions and 3 deletions

View File

@@ -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",
})
@@ -129,6 +133,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",
@@ -143,7 +148,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

View File

@@ -496,6 +496,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: `
@@ -520,6 +521,60 @@ include $(call all-makefiles-under,$(LOCAL_PATH))
}
`,
},
{
desc: "aar",
in: `
include $(CLEAR_VARS)
LOCAL_SRC_FILES := test.java
LOCAL_RESOURCE_DIR := res
include $(BUILD_STATIC_JAVA_LIBRARY)
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)
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) {