aboutsummaryrefslogtreecommitdiffstats
path: root/androidmk
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2015-05-08 13:53:10 -0700
committerColin Cross <ccross@google.com>2015-05-12 18:17:40 +0000
commitf5f5dec66235b679a7c26dfce942d46446c4c754 (patch)
treee05301b7f3914870762efc48a610eab080577a01 /androidmk
parentd3ba039f74da29fc3d4184850e6e29acba58057c (diff)
downloadbuild_soong-f5f5dec66235b679a7c26dfce942d46446c4c754.tar.gz
build_soong-f5f5dec66235b679a7c26dfce942d46446c4c754.tar.bz2
build_soong-f5f5dec66235b679a7c26dfce942d46446c4c754.zip
androidmk: use a single map for property list
Change-Id: I08019443f5fcb012190486e9144a1bfec26761b4
Diffstat (limited to 'androidmk')
-rw-r--r--androidmk/cmd/androidmk/android.go150
-rw-r--r--androidmk/cmd/androidmk/androidmk.go8
2 files changed, 79 insertions, 79 deletions
diff --git a/androidmk/cmd/androidmk/android.go b/androidmk/cmd/androidmk/android.go
index 4d928b12..f693f5de 100644
--- a/androidmk/cmd/androidmk/android.go
+++ b/androidmk/cmd/androidmk/android.go
@@ -1,75 +1,79 @@
package main
import (
- "android/soong/androidmk/parser"
+ mkparser "android/soong/androidmk/parser"
"fmt"
"strings"
+
+ bpparser "github.com/google/blueprint/parser"
)
const (
clear_vars = "__android_mk_clear_vars"
)
-var stringProperties = map[string]string{
- "LOCAL_MODULE": "name",
- "LOCAL_MODULE_STEM": "stem",
- "LOCAL_MODULE_CLASS": "class",
- "LOCAL_CXX_STL": "stl",
- "LOCAL_STRIP_MODULE": "strip",
- "LOCAL_MULTILIB": "compile_multilib",
- "LOCAL_ARM_MODE_HACK": "instruction_set",
- "LOCAL_SDK_VERSION": "sdk_version",
- "LOCAL_NDK_STL_VARIANT": "stl",
- "LOCAL_JAR_MANIFEST": "manifest",
- "LOCAL_JARJAR_RULES": "jarjar_rules",
- "LOCAL_CERTIFICATE": "certificate",
- "LOCAL_PACKAGE_NAME": "name",
- "LOCAL_MODULE_RELATIVE_PATH": "relative_install_path",
-}
-
-var listProperties = map[string]string{
- "LOCAL_SRC_FILES": "srcs",
- "LOCAL_SHARED_LIBRARIES": "shared_libs",
- "LOCAL_STATIC_LIBRARIES": "static_libs",
- "LOCAL_WHOLE_STATIC_LIBRARIES": "whole_static_libs",
- "LOCAL_SYSTEM_SHARED_LIBRARIES": "system_shared_libs",
- "LOCAL_C_INCLUDES": "include_dirs",
- "LOCAL_EXPORT_C_INCLUDE_DIRS": "export_include_dirs",
- "LOCAL_ASFLAGS": "asflags",
- "LOCAL_CLANG_ASFLAGS": "clang_asflags",
- "LOCAL_CFLAGS": "cflags",
- "LOCAL_CONLYFLAGS": "conlyflags",
- "LOCAL_CPPFLAGS": "cppflags",
- "LOCAL_LDFLAGS": "ldflags",
- "LOCAL_REQUIRED_MODULES": "required",
- "LOCAL_MODULE_TAGS": "tags",
- "LOCAL_LDLIBS": "host_ldlibs",
- "LOCAL_CLANG_CFLAGS": "clang_cflags",
- "LOCAL_YACCFLAGS": "yaccflags",
-
- "LOCAL_JAVA_RESOURCE_DIRS": "java_resource_dirs",
- "LOCAL_JAVACFLAGS": "javacflags",
- "LOCAL_DX_FLAGS": "dxflags",
- "LOCAL_JAVA_LIBRARIES": "java_libs",
- "LOCAL_STATIC_JAVA_LIBRARIES": "java_static_libs",
- "LOCAL_AIDL_INCLUDES": "aidl_includes",
- "LOCAL_AAPT_FLAGS": "aaptflags",
- "LOCAL_PACKAGE_SPLITS": "package_splits",
-}
-
-var boolProperties = map[string]string{
- "LOCAL_IS_HOST_MODULE": "host",
- "LOCAL_CLANG": "clang",
- "LOCAL_FORCE_STATIC_EXECUTABLE": "static",
- "LOCAL_ADDRESS_SANITIZER": "asan",
- "LOCAL_NATIVE_COVERAGE": "native_coverage",
- "LOCAL_NO_CRT": "nocrt",
- "LOCAL_ALLOW_UNDEFINED_SYMBOLS": "allow_undefined_symbols",
- "LOCAL_RTTI_FLAG": "rtti",
-
- "LOCAL_NO_STANDARD_LIBRARIES": "no_standard_libraries",
-
- "LOCAL_EXPORT_PACKAGE_RESOURCES": "export_package_resources",
+var standardProperties = map[string]struct {
+ string
+ bpparser.ValueType
+}{
+ // String properties
+ "LOCAL_MODULE": {"name", bpparser.String},
+ "LOCAL_MODULE_STEM": {"stem", bpparser.String},
+ "LOCAL_MODULE_CLASS": {"class", bpparser.String},
+ "LOCAL_CXX_STL": {"stl", bpparser.String},
+ "LOCAL_STRIP_MODULE": {"strip", bpparser.String},
+ "LOCAL_MULTILIB": {"compile_multilib", bpparser.String},
+ "LOCAL_ARM_MODE_HACK": {"instruction_set", bpparser.String},
+ "LOCAL_SDK_VERSION": {"sdk_version", bpparser.String},
+ "LOCAL_NDK_STL_VARIANT": {"stl", bpparser.String},
+ "LOCAL_JAR_MANIFEST": {"manifest", bpparser.String},
+ "LOCAL_JARJAR_RULES": {"jarjar_rules", bpparser.String},
+ "LOCAL_CERTIFICATE": {"certificate", bpparser.String},
+ "LOCAL_PACKAGE_NAME": {"name", bpparser.String},
+ "LOCAL_MODULE_RELATIVE_PATH": {"relative_install_path", bpparser.String},
+
+ // List properties
+ "LOCAL_SRC_FILES": {"srcs", bpparser.List},
+ "LOCAL_SHARED_LIBRARIES": {"shared_libs", bpparser.List},
+ "LOCAL_STATIC_LIBRARIES": {"static_libs", bpparser.List},
+ "LOCAL_WHOLE_STATIC_LIBRARIES": {"whole_static_libs", bpparser.List},
+ "LOCAL_SYSTEM_SHARED_LIBRARIES": {"system_shared_libs", bpparser.List},
+ "LOCAL_C_INCLUDES": {"include_dirs", bpparser.List},
+ "LOCAL_EXPORT_C_INCLUDE_DIRS": {"export_include_dirs", bpparser.List},
+ "LOCAL_ASFLAGS": {"asflags", bpparser.List},
+ "LOCAL_CLANG_ASFLAGS": {"clang_asflags", bpparser.List},
+ "LOCAL_CFLAGS": {"cflags", bpparser.List},
+ "LOCAL_CONLYFLAGS": {"conlyflags", bpparser.List},
+ "LOCAL_CPPFLAGS": {"cppflags", bpparser.List},
+ "LOCAL_LDFLAGS": {"ldflags", bpparser.List},
+ "LOCAL_REQUIRED_MODULES": {"required", bpparser.List},
+ "LOCAL_MODULE_TAGS": {"tags", bpparser.List},
+ "LOCAL_LDLIBS": {"host_ldlibs", bpparser.List},
+ "LOCAL_CLANG_CFLAGS": {"clang_cflags", bpparser.List},
+ "LOCAL_YACCFLAGS": {"yaccflags", bpparser.List},
+
+ "LOCAL_JAVA_RESOURCE_DIRS": {"java_resource_dirs", bpparser.List},
+ "LOCAL_JAVACFLAGS": {"javacflags", bpparser.List},
+ "LOCAL_DX_FLAGS": {"dxflags", bpparser.List},
+ "LOCAL_JAVA_LIBRARIES": {"java_libs", bpparser.List},
+ "LOCAL_STATIC_JAVA_LIBRARIES": {"java_static_libs", bpparser.List},
+ "LOCAL_AIDL_INCLUDES": {"aidl_includes", bpparser.List},
+ "LOCAL_AAPT_FLAGS": {"aaptflags", bpparser.List},
+ "LOCAL_PACKAGE_SPLITS": {"package_splits", bpparser.List},
+
+ // Bool properties
+ "LOCAL_IS_HOST_MODULE": {"host", bpparser.Bool},
+ "LOCAL_CLANG": {"clang", bpparser.Bool},
+ "LOCAL_FORCE_STATIC_EXECUTABLE": {"static", bpparser.Bool},
+ "LOCAL_ADDRESS_SANITIZER": {"asan", bpparser.Bool},
+ "LOCAL_NATIVE_COVERAGE": {"native_coverage", bpparser.Bool},
+ "LOCAL_NO_CRT": {"nocrt", bpparser.Bool},
+ "LOCAL_ALLOW_UNDEFINED_SYMBOLS": {"allow_undefined_symbols", bpparser.Bool},
+ "LOCAL_RTTI_FLAG": {"rtti", bpparser.Bool},
+
+ "LOCAL_NO_STANDARD_LIBRARIES": {"no_standard_libraries", bpparser.Bool},
+
+ "LOCAL_EXPORT_PACKAGE_RESOURCES": {"export_package_resources", bpparser.Bool},
}
var deleteProperties = map[string]struct{}{
@@ -130,16 +134,16 @@ func allSubdirJavaFiles(args []string) string {
}
var moduleTypes = map[string]string{
- "BUILD_SHARED_LIBRARY": "cc_library_shared",
- "BUILD_STATIC_LIBRARY": "cc_library_static",
- "BUILD_HOST_SHARED_LIBRARY": "cc_library_host_shared",
- "BUILD_HOST_STATIC_LIBRARY": "cc_library_host_static",
- "BUILD_EXECUTABLE": "cc_binary",
- "BUILD_HOST_EXECUTABLE": "cc_binary_host",
- "BUILD_NATIVE_TEST": "cc_test",
- "BUILD_HOST_NATIVE_TEST": "cc_test_host",
- "BUILD_NATIVE_BENCHMARK": "cc_benchmark",
- "BUILD_HOST_NATIVE_BENCHMARK": "cc_benchmark_host",
+ "BUILD_SHARED_LIBRARY": "cc_library_shared",
+ "BUILD_STATIC_LIBRARY": "cc_library_static",
+ "BUILD_HOST_SHARED_LIBRARY": "cc_library_host_shared",
+ "BUILD_HOST_STATIC_LIBRARY": "cc_library_host_static",
+ "BUILD_EXECUTABLE": "cc_binary",
+ "BUILD_HOST_EXECUTABLE": "cc_binary_host",
+ "BUILD_NATIVE_TEST": "cc_test",
+ "BUILD_HOST_NATIVE_TEST": "cc_test_host",
+ "BUILD_NATIVE_BENCHMARK": "cc_benchmark",
+ "BUILD_HOST_NATIVE_BENCHMARK": "cc_benchmark_host",
"BUILD_JAVA_LIBRARY": "java_library",
"BUILD_STATIC_JAVA_LIBRARY": "java_library_static",
@@ -152,8 +156,8 @@ var moduleTypes = map[string]string{
var soongModuleTypes = map[string]bool{}
-func androidScope() parser.Scope {
- globalScope := parser.NewScope(nil)
+func androidScope() mkparser.Scope {
+ globalScope := mkparser.NewScope(nil)
globalScope.Set("CLEAR_VARS", clear_vars)
globalScope.SetFunc("my-dir", mydir)
globalScope.SetFunc("all-java-files-under", allJavaFilesUnder)
diff --git a/androidmk/cmd/androidmk/androidmk.go b/androidmk/cmd/androidmk/androidmk.go
index 555e5930..799b7586 100644
--- a/androidmk/cmd/androidmk/androidmk.go
+++ b/androidmk/cmd/androidmk/androidmk.go
@@ -231,12 +231,8 @@ func handleAssignment(file *bpFile, assignment mkparser.Assignment, c *condition
}
var err error
- if prop, ok := stringProperties[name]; ok {
- err = setVariable(file, assignment.Value, assignment.Type == "+=", prop, bpparser.String, true, class, suffix)
- } else if prop, ok := listProperties[name]; ok {
- err = setVariable(file, assignment.Value, assignment.Type == "+=", prop, bpparser.List, true, class, suffix)
- } else if prop, ok := boolProperties[name]; ok {
- err = setVariable(file, assignment.Value, assignment.Type == "+=", prop, bpparser.Bool, true, class, suffix)
+ if prop, ok := standardProperties[name]; ok {
+ err = setVariable(file, assignment.Value, assignment.Type == "+=", prop.string, prop.ValueType, true, class, suffix)
} else if _, ok := deleteProperties[name]; ok {
return
} else {