Initial androidbp translator.
Translates Android.bp files back to Android.mk
Change-Id: Ib4bd1e0abc58ab514a7dd4a01008af645d6a3d13
diff --git a/androidbp/cmd/soong.go b/androidbp/cmd/soong.go
new file mode 100644
index 0000000..488390f
--- /dev/null
+++ b/androidbp/cmd/soong.go
@@ -0,0 +1,80 @@
+package main
+
+import bpparser "github.com/google/blueprint/parser"
+
+var standardProperties = map[string]struct {
+ string
+ bpparser.ValueType
+}{
+ // ==== STRING PROPERTIES ====
+ "name": {"LOCAL_MODULE", bpparser.String},
+ "stem": {"LOCAL_MODULE_STEM", bpparser.String},
+ "class": {"LOCAL_MODULE_CLASS", bpparser.String},
+ "stl": {"LOCAL_CXX_STL", bpparser.String},
+ "strip": {"LOCAL_STRIP_MODULE", bpparser.String},
+ "compile_multilib": {"LOCAL_MULTILIB", bpparser.String},
+ "instruction_set": {"LOCAL_ARM_MODE_HACK", bpparser.String},
+ "sdk_version": {"LOCAL_SDK_VERSION", bpparser.String},
+ //"stl": "LOCAL_NDK_STL_VARIANT", TODO
+ "manifest": {"LOCAL_JAR_MANIFEST", bpparser.String},
+ "jarjar_rules": {"LOCAL_JARJAR_RULES", bpparser.String},
+ "certificate": {"LOCAL_CERTIFICATE", bpparser.String},
+ //"name": "LOCAL_PACKAGE_NAME", TODO
+
+ // ==== LIST PROPERTIES ====
+ "srcs": {"LOCAL_SRC_FILES", bpparser.List},
+ "shared_libs": {"LOCAL_SHARED_LIBRARIES", bpparser.List},
+ "static_libs": {"LOCAL_STATIC_LIBRARIES", bpparser.List},
+ "whole_static_libs": {"LOCAL_WHOLE_STATIC_LIBRARIES", bpparser.List},
+ "system_shared_libs": {"LOCAL_SYSTEM_SHARED_LIBRARIES", bpparser.List},
+ "include_dirs": {"LOCAL_C_INCLUDES", bpparser.List},
+ "export_include_dirs": {"LOCAL_EXPORT_C_INCLUDE_DIRS", bpparser.List},
+ "asflags": {"LOCAL_ASFLAGS", bpparser.List},
+ "clang_asflags": {"LOCAL_CLANG_ASFLAGS", bpparser.List},
+ "cflags": {"LOCAL_CFLAGS", bpparser.List},
+ "conlyflags": {"LOCAL_CONLYFLAGS", bpparser.List},
+ "cppflags": {"LOCAL_CPPFLAGS", bpparser.List},
+ "ldflags": {"LOCAL_LDFLAGS", bpparser.List},
+ "required": {"LOCAL_REQUIRED_MODULES", bpparser.List},
+ "tags": {"LOCAL_MODULE_TAGS", bpparser.List},
+ "host_ldlibs": {"LOCAL_LDLIBS", bpparser.List},
+ "clang_cflags": {"LOCAL_CLANG_CFLAGS", bpparser.List},
+ "yaccflags": {"LOCAL_YACCFLAGS", bpparser.List},
+ "java_resource_dirs": {"LOCAL_JAVA_RESOURCE_DIRS", bpparser.List},
+ "javacflags": {"LOCAL_JAVACFLAGS", bpparser.List},
+ "dxflags": {"LOCAL_DX_FLAGS", bpparser.List},
+ "java_libs": {"LOCAL_JAVA_LIBRARIES", bpparser.List},
+ "java_static_libs": {"LOCAL_STATIC_JAVA_LIBRARIES", bpparser.List},
+ "aidl_includes": {"LOCAL_AIDL_INCLUDES", bpparser.List},
+ "aaptflags": {"LOCAL_AAPT_FLAGS", bpparser.List},
+ "package_splits": {"LOCAL_PACKAGE_SPLITS", bpparser.List},
+
+ // ==== BOOL PROPERTIES ====
+ "host": {"LOCAL_IS_HOST_MODULE", bpparser.Bool},
+ "clang": {"LOCAL_CLANG", bpparser.Bool},
+ "static": {"LOCAL_FORCE_STATIC_EXECUTABLE", bpparser.Bool},
+ "asan": {"LOCAL_ADDRESS_SANITIZER", bpparser.Bool},
+ "native_coverage": {"LOCAL_NATIVE_COVERAGE", bpparser.Bool},
+ "nocrt": {"LOCAL_NO_CRT", bpparser.Bool},
+ "allow_undefined_symbols": {"LOCAL_ALLOW_UNDEFINED_SYMBOLS", bpparser.Bool},
+ "rtti": {"LOCAL_RTTI_FLAG", bpparser.Bool},
+ "no_standard_libraries": {"LOCAL_NO_STANDARD_LIBRARIES", bpparser.Bool},
+ "export_package_resources": {"LOCAL_EXPORT_PACKAGE_RESOURCES", bpparser.Bool},
+}
+
+var moduleTypes = map[string]string{
+ "cc_library_shared": "BUILD_SHARED_LIBRARY",
+ "cc_library_static": "BUILD_STATIC_LIBRARY",
+ "cc_library_host_shared": "BUILD_HOST_SHARED_LIBRARY",
+ "cc_library_host_static": "BUILD_HOST_STATIC_LIBRARY",
+ "cc_binary": "BUILD_EXECUTABLE",
+ "cc_binary_host": "BUILD_HOST_EXECUTABLE",
+ "cc_test": "BUILD_NATIVE_TEST",
+ "cc_test_host": "BUILD_HOST_NATIVE_TEST",
+ "java_library": "BUILD_JAVA_LIBRARY",
+ "java_library_static": "BUILD_STATIC_JAVA_LIBRARY",
+ "java_library_host": "BUILD_HOST_JAVA_LIBRARY",
+ "java_library_host_dalvik": "BUILD_HOST_DALVIK_JAVA_LIBRARY",
+ "android_app": "BUILD_PACKAGE",
+ "prebuilt": "BUILD_PREBUILT",
+}