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}, "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_executable": {"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}, "no_default_compiler_flags": {"LOCAL_NO_DEFAULT_COMPILER_FLAGS", bpparser.Bool}, } var rewriteProperties = map[string]struct { string f func(name string, prop *bpparser.Property, suffix *string) ([]string, error) }{ "include_dirs": {"LOCAL_C_INCLUDES", appendAssign}, "local_include_dirs": {"LOCAL_C_INCLUDES", prependLocalPath}, "export_include_dirs": {"LOCAL_EXPORT_C_INCLUDE_DIRS", prependLocalPath}, "suffix": {"LOCAL_MODULE_STEM", prependLocalModule}, } var ignoredProperties = map[string]bool{ "host_supported": true, } var moduleTypeToRule = 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", "cc_benchmark": "BUILD_NATIVE_BENCHMARK", "cc_benchmark_host": "BUILD_HOST_NATIVE_BENCHMARK", "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", } var ignoredModuleType = map[string]bool{ "bootstrap_go_binary": true, "bootstrap_go_package": true, "toolchain_library": true, } var suffixProperties = map[string]map[string]string{ "multilib": {"lib32": "32", "lib64": "64"}, "arch": {"arm": "arm", "arm64": "arm64", "mips": "mips", "mips64": "mips64", "x86": "x86", "x86_64": "x86_64"}, } var hostScopedPropertyConditionals = map[string]string{ "host": "", "darwin": "ifeq ($(HOST_OS), darwin)", "not_darwin": "ifneq ($(HOST_OS), darwin)", "windows": "ifeq ($(HOST_OS), windows)", "not_windows": "ifneq ($(HOST_OS), windows)", "linux": "ifeq ($(HOST_OS), linux)", "not_linux": "ifneq ($(HOST_OS), linux)", } // TODO: host target? var targetScopedPropertyConditionals = map[string]string{ "android": "", "android32": "ifneq ($(TARGET_IS_64_BIT), true)", "not_android32": "ifeq ($(TARGET_IS_64_BIT), true)", "android64": "ifeq ($(TARGET_IS_64_BIT), true)", "not_android64": "ifneq ($(TARGET_IS_64_BIT), true)", } var disabledHostConditionals = map[string]string{ "darwin": "ifneq ($(HOST_OS), darwin)", "not_darwin": "ifeq ($(HOST_OS), darwin)", "windows": "ifneq ($(HOST_OS), windows)", "not_windows": "ifeq ($(HOST_OS), windows)", "linux": "ifneq ($(HOST_OS), linux)", "not_linux": "ifeq ($(HOST_OS), linux)", } var disabledTargetConditionals = map[string]string{ "android32": "ifeq ($(TARGET_IS_64_BIT), true)", "not_android32": "ifeq ($(TARGET_IS_64_BIT), false)", "android64": "ifeq ($(TARGET_IS_64_BIT), false)", "not_android64": "ifeq ($(TARGET_IS_64_BIT), true)", } var targetToHostModuleRule = map[string]string{ "BUILD_SHARED_LIBRARY": "BUILD_HOST_SHARED_LIBRARY", "BUILD_STATIC_LIBRARY": "BUILD_HOST_STATIC_LIBRARY", "BUILD_EXECUTABLE": "BUILD_HOST_EXECUTABLE", "BUILD_NATIVE_TEST": "BUILD_HOST_NATIVE_TEST", "BUILD_JAVA_LIBRARY": "BUILD_HOST_JAVA_LIBRARY", }