blob: b8d7e0ee68e409f73b87f60c20b4d59e9101410a [file] [log] [blame]
Andres Moralesda8706f2015-04-29 12:46:49 -07001package main
2
3import bpparser "github.com/google/blueprint/parser"
4
5var standardProperties = map[string]struct {
6 string
7 bpparser.ValueType
8}{
9 // ==== STRING PROPERTIES ====
10 "name": {"LOCAL_MODULE", bpparser.String},
11 "stem": {"LOCAL_MODULE_STEM", bpparser.String},
12 "class": {"LOCAL_MODULE_CLASS", bpparser.String},
13 "stl": {"LOCAL_CXX_STL", bpparser.String},
14 "strip": {"LOCAL_STRIP_MODULE", bpparser.String},
15 "compile_multilib": {"LOCAL_MULTILIB", bpparser.String},
16 "instruction_set": {"LOCAL_ARM_MODE_HACK", bpparser.String},
17 "sdk_version": {"LOCAL_SDK_VERSION", bpparser.String},
18 //"stl": "LOCAL_NDK_STL_VARIANT", TODO
19 "manifest": {"LOCAL_JAR_MANIFEST", bpparser.String},
20 "jarjar_rules": {"LOCAL_JARJAR_RULES", bpparser.String},
21 "certificate": {"LOCAL_CERTIFICATE", bpparser.String},
Andres Moralesaf11df12015-04-30 12:14:34 -070022 "suffix": {"LOCAL_MODULE_SUFFIX", bpparser.String},
Andres Moralesda8706f2015-04-29 12:46:49 -070023 //"name": "LOCAL_PACKAGE_NAME", TODO
24
25 // ==== LIST PROPERTIES ====
26 "srcs": {"LOCAL_SRC_FILES", bpparser.List},
27 "shared_libs": {"LOCAL_SHARED_LIBRARIES", bpparser.List},
28 "static_libs": {"LOCAL_STATIC_LIBRARIES", bpparser.List},
29 "whole_static_libs": {"LOCAL_WHOLE_STATIC_LIBRARIES", bpparser.List},
30 "system_shared_libs": {"LOCAL_SYSTEM_SHARED_LIBRARIES", bpparser.List},
31 "include_dirs": {"LOCAL_C_INCLUDES", bpparser.List},
32 "export_include_dirs": {"LOCAL_EXPORT_C_INCLUDE_DIRS", bpparser.List},
33 "asflags": {"LOCAL_ASFLAGS", bpparser.List},
34 "clang_asflags": {"LOCAL_CLANG_ASFLAGS", bpparser.List},
35 "cflags": {"LOCAL_CFLAGS", bpparser.List},
36 "conlyflags": {"LOCAL_CONLYFLAGS", bpparser.List},
37 "cppflags": {"LOCAL_CPPFLAGS", bpparser.List},
38 "ldflags": {"LOCAL_LDFLAGS", bpparser.List},
39 "required": {"LOCAL_REQUIRED_MODULES", bpparser.List},
40 "tags": {"LOCAL_MODULE_TAGS", bpparser.List},
41 "host_ldlibs": {"LOCAL_LDLIBS", bpparser.List},
42 "clang_cflags": {"LOCAL_CLANG_CFLAGS", bpparser.List},
43 "yaccflags": {"LOCAL_YACCFLAGS", bpparser.List},
44 "java_resource_dirs": {"LOCAL_JAVA_RESOURCE_DIRS", bpparser.List},
45 "javacflags": {"LOCAL_JAVACFLAGS", bpparser.List},
46 "dxflags": {"LOCAL_DX_FLAGS", bpparser.List},
47 "java_libs": {"LOCAL_JAVA_LIBRARIES", bpparser.List},
48 "java_static_libs": {"LOCAL_STATIC_JAVA_LIBRARIES", bpparser.List},
49 "aidl_includes": {"LOCAL_AIDL_INCLUDES", bpparser.List},
50 "aaptflags": {"LOCAL_AAPT_FLAGS", bpparser.List},
51 "package_splits": {"LOCAL_PACKAGE_SPLITS", bpparser.List},
52
53 // ==== BOOL PROPERTIES ====
54 "host": {"LOCAL_IS_HOST_MODULE", bpparser.Bool},
55 "clang": {"LOCAL_CLANG", bpparser.Bool},
56 "static": {"LOCAL_FORCE_STATIC_EXECUTABLE", bpparser.Bool},
57 "asan": {"LOCAL_ADDRESS_SANITIZER", bpparser.Bool},
58 "native_coverage": {"LOCAL_NATIVE_COVERAGE", bpparser.Bool},
59 "nocrt": {"LOCAL_NO_CRT", bpparser.Bool},
60 "allow_undefined_symbols": {"LOCAL_ALLOW_UNDEFINED_SYMBOLS", bpparser.Bool},
61 "rtti": {"LOCAL_RTTI_FLAG", bpparser.Bool},
62 "no_standard_libraries": {"LOCAL_NO_STANDARD_LIBRARIES", bpparser.Bool},
63 "export_package_resources": {"LOCAL_EXPORT_PACKAGE_RESOURCES", bpparser.Bool},
64}
65
Andres Moralesaf11df12015-04-30 12:14:34 -070066var moduleTypeToRule = map[string]string{
Andres Moralesda8706f2015-04-29 12:46:49 -070067 "cc_library_shared": "BUILD_SHARED_LIBRARY",
68 "cc_library_static": "BUILD_STATIC_LIBRARY",
69 "cc_library_host_shared": "BUILD_HOST_SHARED_LIBRARY",
70 "cc_library_host_static": "BUILD_HOST_STATIC_LIBRARY",
71 "cc_binary": "BUILD_EXECUTABLE",
72 "cc_binary_host": "BUILD_HOST_EXECUTABLE",
73 "cc_test": "BUILD_NATIVE_TEST",
74 "cc_test_host": "BUILD_HOST_NATIVE_TEST",
Colin Cross2ba19d92015-05-07 15:44:20 -070075 "cc_benchmark": "BUILD_NATIVE_BENCHMARK",
76 "cc_benchmark_host": "BUILD_HOST_NATIVE_BENCHMARK",
Andres Moralesda8706f2015-04-29 12:46:49 -070077 "java_library": "BUILD_JAVA_LIBRARY",
78 "java_library_static": "BUILD_STATIC_JAVA_LIBRARY",
79 "java_library_host": "BUILD_HOST_JAVA_LIBRARY",
80 "java_library_host_dalvik": "BUILD_HOST_DALVIK_JAVA_LIBRARY",
81 "android_app": "BUILD_PACKAGE",
82 "prebuilt": "BUILD_PREBUILT",
83}
Andres Moralesaf11df12015-04-30 12:14:34 -070084
85var suffixProperties = map[string]map[string]string{
86 "multilib": {"lib32": "32", "lib64": "64"},
87 "arch": {"arm": "arm", "arm64": "arm64", "mips": "mips", "mips64": "mips64",
88 "x86": "x86", "x86_64": "x86_64"},
89}
90
91var hostScopedPropertyConditionals = map[string]string{
92 "darwin": "ifeq ($(HOST_OS), darwin)",
93 "not_darwin": "ifneq($(HOST_OS), darwin)",
94 "windows": "ifeq ($(HOST_OS), windows)",
95 "not_windows": "ifneq($(HOST_OS), windows)",
96 "linux": "ifeq ($(HOST_OS), linux)",
97 "not_linux": "ifneq($(HOST_OS), linux)",
98}
99
100// TODO: host target?
101var targetScopedPropertyConditionals = map[string]string{
102 "android32": "ifeq($(TARGET_IS_64_BIT), false)",
103 "not_android32": "ifeq($(TARGET_IS_64_BIT), true)",
104 "android64": "ifeq($(TARGET_IS_64_BIT), true)",
105 "not_android64": "ifeq($(TARGET_IS_64_BIT), false)",
106}
107
108var disabledHostConditionals = map[string]string{
109 "darwin": "ifneq ($(HOST_OS), darwin)",
110 "not_darwin": "ifeq($(HOST_OS), darwin)",
111 "windows": "ifneq ($(HOST_OS), windows)",
112 "not_windows": "ifeq($(HOST_OS), windows)",
113 "linux": "ifneq ($(HOST_OS), linux)",
114 "not_linux": "ifeq($(HOST_OS), linux)",
115}
116
117var disabledTargetConditionals = map[string]string{
118 "android32": "ifeq($(TARGET_IS_64_BIT), true)",
119 "not_android32": "ifeq($(TARGET_IS_64_BIT), false)",
120 "android64": "ifeq($(TARGET_IS_64_BIT), false)",
121 "not_android64": "ifeq($(TARGET_IS_64_BIT), true)",
122}
123
124var targetToHostModuleRule = map[string]string{
125 "BUILD_SHARED_LIBRARY": "BUILD_HOST_SHARED_LIBRARY",
126 "BUILD_STATIC_LIBRARY": "BUILD_HOST_STATIC_LIBRARY",
127 "BUILD_EXECUTABLE": "BUILD_HOST_EXECUTABLE",
128 "BUILD_NATIVE_TEST": "BUILD_HOST_NATIVE_TEST",
129 "BUILD_JAVA_LIBRARY": "BUILD_HOST_JAVA_LIBRARY",
130}