#!/usr/bin/env python3 # # Copyright 2018 - The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """The common definitions of AIDEgen""" # Env constant OUT_DIR_COMMON_BASE_ENV_VAR = 'OUT_DIR_COMMON_BASE' ANDROID_DEFAULT_OUT = 'out' AIDEGEN_ROOT_PATH = 'tools/asuite/aidegen' USER_HOME = '$USER_HOME$' TARGET_PRODUCT = 'TARGET_PRODUCT' TARGET_BUILD_VARIANT = 'TARGET_BUILD_VARIANT' GEN_JAVA_DEPS = 'SOONG_COLLECT_JAVA_DEPS' GEN_CC_DEPS = 'SOONG_COLLECT_CC_DEPS' GEN_COMPDB = 'SOONG_GEN_COMPDB' GEN_RUST = 'SOONG_GEN_RUST_PROJECT' AIDEGEN_TEST_MODE = 'AIDEGEN_TEST_MODE' # Constants for module's info. KEY_PATH = 'path' KEY_DEPENDENCIES = 'dependencies' KEY_DEPTH = 'depth' KEY_CLASS = 'class' KEY_INSTALLED = 'installed' KEY_SRCS = 'srcs' KEY_SRCJARS = 'srcjars' KEY_CLASSES_JAR = 'classes_jar' KEY_TAG = 'tags' KEY_COMPATIBILITY = 'compatibility_suites' KEY_AUTO_TEST_CONFIG = 'auto_test_config' KEY_MODULE_NAME = 'module_name' KEY_TEST_CONFIG = 'test_config' KEY_HEADER = 'header_search_path' KEY_SYSTEM = 'system_search_path' KEY_TESTS = 'tests' KEY_JARS = 'jars' KEY_DEP_SRCS = 'dep_srcs' KEY_IML_NAME = 'iml_name' KEY_EXCLUDES = 'excludes' # Java related classes. JAVA_TARGET_CLASSES = ['APPS', 'JAVA_LIBRARIES', 'ROBOLECTRIC'] # C, C++ related classes. NATIVE_TARGET_CLASSES = [ 'HEADER_LIBRARIES', 'NATIVE_TESTS', 'STATIC_LIBRARIES', 'SHARED_LIBRARIES' ] TARGET_CLASSES = JAVA_TARGET_CLASSES TARGET_CLASSES.extend(NATIVE_TARGET_CLASSES) # Constants for IDE util. IDE_ECLIPSE = 'Eclipse' IDE_INTELLIJ = 'IntelliJ' IDE_ANDROID_STUDIO = 'Android Studio' IDE_CLION = 'CLion' IDE_VSCODE = 'VS Code' IDE_UNDEFINED = 'Undefined IDE' IDE_NAME_DICT = { 'j': IDE_INTELLIJ, 's': IDE_ANDROID_STUDIO, 'e': IDE_ECLIPSE, 'c': IDE_CLION, 'v': IDE_VSCODE, 'u': IDE_UNDEFINED } IDE_DICT = { IDE_INTELLIJ: 'j', IDE_ANDROID_STUDIO: 's', IDE_ECLIPSE: 'e', IDE_CLION: 'c', IDE_VSCODE: 'v', IDE_UNDEFINED: 'u' } # Constants for asuite metrics. EXIT_CODE_EXCEPTION = -1 EXIT_CODE_NORMAL = 0 EXIT_CODE_AIDEGEN_EXCEPTION = 1 AIDEGEN_TOOL_NAME = 'aidegen' ANDROID_TREE = 'is_android_tree' TYPE_AIDEGEN_BUILD_TIME = 200 TYPE_AIDEGEN_PRE_PROCESS_TIME = 201 TYPE_AIDEGEN_POST_PROCESS_TIME = 202 # Exit code of the asuite metrics for parsing xml file failed. XML_PARSING_FAILURE = 101 # Exit code of the asuite metrics for locating Android SDK path failed. LOCATE_SDK_PATH_FAILURE = 102 # Exit code of the asuite metrics for IDE launched failed. IDE_LAUNCH_FAILURE = 103 # Constants for file names. MERGED_MODULE_INFO = 'merged_module_info.json' BLUEPRINT_JAVA_JSONFILE_NAME = 'module_bp_java_deps.json' BLUEPRINT_CC_JSONFILE_NAME = 'module_bp_cc_deps.json' COMPDB_JSONFILE_NAME = 'compile_commands.json' RUST_PROJECT_JSON = 'rust-project.json' CMAKELISTS_FILE_NAME = 'clion_project_lists.txt' CLION_PROJECT_FILE_NAME = 'CMakeLists.txt' ANDROID_BP = 'Android.bp' ANDROID_MK = 'Android.mk' JAVA_FILES = '*.java' KOTLIN_FILES = '*.kt' VSCODE_CONFIG_DIR = '.vscode' ANDROID_MANIFEST = 'AndroidManifest.xml' VERSION_FILE = 'VERSION' INTERMEDIATES = '.intermediates' TARGET_R_SRCJAR = 'R.srcjar' NAME_AAPT2 = 'aapt2' # Constants for file paths. RELATIVE_NATIVE_PATH = 'development/ide/clion' RELATIVE_COMPDB_PATH = 'development/ide/compdb' UNZIP_SRCJAR_PATH_HEAD = 'aidegen_' # Constants for whole Android tree. WHOLE_ANDROID_TREE_TARGET = '#WHOLE_ANDROID_TREE#' # Constants for ProjectInfo or ModuleData classes. SRCJAR_EXT = '.srcjar' JAR_EXT = '.jar' TARGET_LIBS = [JAR_EXT] # Constants for aidegen_functional_test. ANDROID_COMMON = 'android_common' LINUX_GLIBC_COMMON = 'linux_glibc_common' # Constants for ide_util. NOHUP = 'nohup' ECLIPSE_WS = '~/Documents/AIDEGen_Eclipse_workspace' IGNORE_STD_OUT_ERR_CMD = '2>/dev/null >&2' # Constants for environment. LUNCH_TARGET = 'lunch target' # Constants for the languages aidegen supports. JAVA = 'Java' C_CPP = 'C/C++' RUST = 'Rust' UNDEFINED = 'undefined' LANG_UNDEFINED = 'u' LANG_JAVA = 'j' LANG_CC = 'c' LANG_RUST = 'r' LANGUAGE_NAME_DICT = { LANG_UNDEFINED: UNDEFINED, LANG_JAVA: JAVA, LANG_CC: C_CPP, LANG_RUST: RUST } # Constants for error message. INVALID_XML = 'The content of {XML_FILE} is not valid.' WARN_MSG = '\n{} {}\n' # Constants for default modules. FRAMEWORK_ALL = 'framework-all' CORE_ALL = 'core-all' FRAMEWORK_SRCJARS = 'framework_srcjars' # Constants for module's path. FRAMEWORK_PATH = 'frameworks/base' LIBCORE_PATH = 'libcore' # Constants for regular expression RE_INSIDE_PATH_CHECK = r'^{}($|/.+)' # Constants for Git GIT_FOLDER_NAME = '.git' # Constants for Idea IDEA_FOLDER = '.idea'