tradefed_binary_host

tradefedBinaryFactory creates an empty module for the tradefed_binary module type, which is a java_binary with some additional processing in tradefedBinaryLoadHook.
 name string, The name of the module. Must be unique across all modules.
 srcs list of string, list of source files used to compile the Java module. May be .java, .kt, .logtags, .proto, or .aidl files.
 exclude_srcs list of string, list of source files that should not be used to build the Java module. This is most useful in the arch/multilib variants to remove non-common files
 defaults list of string
 arch interface
bazel_module bazelModuleProperties
In "Bazel mixed build" mode, this represents the Bazel target replacing this Soong module.
 label string, The label of the Bazel target replacing this Soong module. When run in conversion mode, this will import the handcrafted build target into the autogenerated file. Note: this may result in a conflict due to duplicate targets if bp2build_available is also set.
 bp2build_available bool, If true, bp2build will generate the converted Bazel target for this module. Note: this may cause a conflict due to the duplicate targets if label is also set. This is a bool pointer to support tristates: true, false, not set. To opt in a module, set bazel_module: { bp2build_available: true } To opt out a module, set bazel_module: { bp2build_available: false } To defer the default setting for the directory, do not set the value.
 common_srcs list of string, list Kotlin of source files containing Kotlin code that should be treated as common code in a codebase that supports Kotlin multiplatform. See https://kotlinlang.org/docs/reference/multiplatform.html. May be only be .kt files.
 compile_multilib string, control whether this module compiles for 32-bit, 64-bit, or both. Possible values are "32" (compile for 32-bit only), "64" (compile for 64-bit only), "both" (compile for both architectures), or "first" (compile for 64-bit on a 64-bit platform, and 32-bit on a 32-bit platform).
 debug_ramdisk bool, Whether this module is installed to debug ramdisk
 device_specific bool, whether this module is specific to a device, not only for SoC, but also for off-chip peripherals. When set to true, it is installed into /odm (or /vendor/odm if odm partition does not exist, or /system/vendor/odm if both odm and vendor partitions do not exist). This implies `soc_specific:true`.
dist Dist
configuration to distribute output files from this module to the distribution directory (default: $OUT/dist, configurable with $DIST_DIR)
 targets list of string, Copy the output of this module to the $DIST_DIR when `dist` is specified on the command line and any of these targets are also on the command line, or otherwise built
 dest string, The name of the output artifact. This defaults to the basename of the output of the module.
 dir string, The directory within the dist directory to store the artifact. Defaults to the top level directory ("").
 suffix string, A suffix to add to the artifact file name (before any extension).
 append_artifact_with_product bool, If true, then the artifact file will be appended with _<product name>. For example, if the product is coral and the module is an android_app module of name foo, then the artifact would be foo_coral.apk. If false, there is no change to the artifact file name.
 tag string, A string tag to select the OutputFiles associated with the tag. If no tag is specified then it will select the default dist paths provided by the module type. If a tag of "" is specified then it will return the default output files provided by the modules, i.e. the result of calling OutputFiles("").
 dists list of Dist, a list of configurations to distribute output files from this module to the distribution directory (default: $OUT/dist, configurable with $DIST_DIR)
 enabled bool, emit build rules for this module Disabling a module should only be done for those modules that cannot be built in the current environment. Modules that can build in the current environment but are not usually required (e.g. superceded by a prebuilt) should not be disabled as that will prevent them from being built by the checkbuild target and so prevent early detection of changes that have broken those modules.
 enforce_uses_libs bool, If true, the list of uses_libs and optional_uses_libs modules must match the AndroidManifest.xml file. Defaults to true if either uses_libs or optional_uses_libs is set. Will unconditionally default to true in the future.
errorprone
 javacflags list of string, List of javac flags that should only be used when running errorprone.
 extra_check_modules list of string, List of java_plugin modules that provide extra errorprone checks.
 enabled bool, This property can be in 3 states. When set to true, errorprone will be run during the regular build. When set to false, errorprone will never be run. When unset, errorprone will be run when the RUN_ERROR_PRONE environment variable is true. Setting this to false will improve build performance more than adding -XepDisableAllChecks in javacflags.
 exclude_java_resource_dirs list of string, list of directories that should be excluded from java_resource_dirs
 exclude_java_resources list of string, list of files that should be excluded from java_resources and java_resource_dirs
 exclude_uses_libs list of string, A list of shared library names to exclude from the classpath of the APK. Adding a library here will prevent it from being used when precompiling the APK and prevent it from being implicitly added to the APK's manifest's <uses-library> elements. Care must be taken when using this as it could result in runtime errors if the APK actually uses classes provided by the library and which are not provided in any other way. This is primarily intended for use by various CTS tests that check the runtime handling of the android.test.base shared library (and related libraries) but which depend on some common libraries that depend on the android.test.base library. Without this those tests will end up with a <uses-library android:name="android.test.base"/> in their manifest which would either render the tests worthless (as they would be testing the wrong behavior), or would break the test altogether by providing access to classes that the tests were not expecting. Those tests provide the android.test.base statically and use jarjar to rename them so they do not collide with the classes provided by the android.test.base library.
 exported_plugins list of string, List of modules to export to libraries that directly depend on this library as annotation processors. Note that if the plugins set generates_api: true this will disable the turbine optimization on modules that depend on this module, which will reduce parallelism and cause more recompilation.
 full_name string
 hiddenapi_additional_annotations list of string, A list of java_library instances that provide additional hiddenapi annotations for the library.
 host_required list of string, names of other modules to install on host if this module is installed
 include_srcs bool, If set to true, include sources used to compile the module in to the final jar
 init_rc list of string, init.rc files to be installed if this module is installed
 installable bool, If set to true, allow this module to be dexed and installed on devices. Has no effect on host modules, which are always considered installable. Default: true
jacoco
 include_filter list of string, List of classes to include for instrumentation with jacoco to collect coverage information at runtime when building with coverage enabled. If unset defaults to all classes. Supports '*' as the last character of an entry in the list as a wildcard match. If preceded by '.' it matches all classes in the package and subpackages, otherwise it matches classes in the package that have the class name as a prefix.
 exclude_filter list of string, List of classes to exclude from instrumentation with jacoco to collect coverage information at runtime when building with coverage enabled. Overrides classes selected by the include_filter property. Supports '*' as the last character of an entry in the list as a wildcard match. If preceded by '.' it matches all classes in the package and subpackages, otherwise it matches classes in the package that have the class name as a prefix.
 jarjar_rules string, if not blank, run jarjar using the specified rules file
 java_resource_dirs list of string, list of directories containing Java resources
 java_resources list of string, list of files to use as Java resources
 java_version string, If not blank, set the java version passed to javac as -source and -target
 javac_shard_size int64, The number of Java source entries each Javac instance can process
 javacflags list of string, list of module-specific flags that will be used for javac compiles
 jni_libs list of string, Names of modules containing JNI libraries that should be installed alongside the host variant of the binary.
 kotlincflags list of string, list of module-specific flags that will be used for kotlinc compiles
 libs list of string, list of java libraries that will be in the classpath
 licenses list of string, Describes the licenses applicable to this module. Must reference license modules.
 main_class string, Name of the class containing main to be inserted into the manifest as Main-Class.
 manifest string, manifest file to be included in resulting jar
 multilib interface
 native_bridge_supported bool, Whether this module is built for non-native architectures (also known as native bridge binary)
openjdk9
 srcs list of string, List of source files that should only be used when passing -source 1.9 or higher
 javacflags list of string, List of javac flags that should only be used when passing -source 1.9 or higher
 optional_uses_libs list of string, A list of shared library modules that will be listed in uses-library tags in the AndroidManifest.xml file with required=false.
 owner string, vendor who owns this module
 patch_module string, When compiling language level 9+ .java code in packages that are part of a system module, patch_module names the module that your sources and dependencies should be patched into. The Android runtime currently doesn't implement the JEP 261 module system so this option is only supported at compile time. It should only be needed to compile tests in packages that exist in libcore and which are inconvenient to move elsewhere.
 permitted_packages list of string, If not empty, classes are restricted to the specified packages and their sub-packages. This restriction is checked after applying jarjar rules and including static libs.
 plugins list of string, List of modules to use as annotation processors
 prepend_platform_version_name bool
 product_specific bool, whether this module is specific to a software configuration of a product (e.g. country, network operator, etc). When set to true, it is installed into /product (or /system/product if product partition does not exist).
product_variables.always_use_prebuilt_sdks
enabled
  *bool
product_variables.arc
exclude_srcs
  []string
static_libs
  []string
srcs
  []string
product_variables.debuggable
init_rc
  []string
required
  []string
host_required
  []string
target_required
  []string
static_libs
  []string
srcs
  []string
exclude_srcs
  []string
product_variables.flatten_apex
enabled
  *bool
product_variables.malloc_not_svelte
srcs
  []string
product_variables.native_coverage
srcs
  []string
exclude_srcs
  []string
product_variables.pdk
enabled
  *bool
product_variables.platform_sdk_version_or_codename
java_resource_dirs
  []string
product_variables.unbundled_build
enabled
  *bool
 proprietary bool, whether this is a proprietary vendor module, and should be installed into /vendor
proto
 type string, Proto generator type. C++: full or lite. Java: micro, nano, stream, or lite.
 plugin string, Proto plugin to use as the generator. Must be a cc_binary_host module.
 include_dirs list of string, list of directories that will be added to the protoc include paths.
 local_include_dirs list of string, list of directories relative to the bp file that will be added to the protoc include paths.
 canonical_path_from_root bool, whether to identify the proto files from the root of the source tree (the original method in Android, useful for android-specific protos), or relative from where they were specified (useful for external/third party protos). This defaults to true today, but is expected to default to false in the future.
 output_params list of string, List of extra options that will be passed to the proto generator.
 provides_uses_lib string, Optional name of the <uses-library> provided by this module. This is needed for non-SDK libraries, because SDK ones are automatically picked up by Soong. The <uses-library> name normally is the same as the module name, but there are exceptions.
 ramdisk bool, Whether this module is installed to ramdisk
 recovery bool, Whether this module is installed to recovery partition
 required list of string, names of other modules to install if this module is installed
 services list of string, List of files to include in the META-INF/services folder of the resulting jar.
 short_name string
 soc_specific bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true, it is installed into /vendor (or /system/vendor if vendor partition does not exist).
 static_kotlin_stdlib bool, If true, package the kotlin stdlib into the jar. Defaults to true.
 static_libs list of string, list of java libraries that will be compiled into the resulting jar
 system_ext_specific bool, whether this module extends system. When set to true, it is installed into /system_ext (or /system/system_ext if system_ext partition does not exist).
 target interface
target.android
 compile_multilib string
target.host
 compile_multilib string
 target_required list of string, names of other modules to install on target if this module is installed
 use_tools_jar bool, Add host jdk tools.jar to bootclasspath
 uses_libs list of string, A list of shared library modules that will be listed in uses-library tags in the AndroidManifest.xml file.
 vendor bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true, it is installed into /vendor (or /system/vendor if vendor partition does not exist). Use `soc_specific` instead for better meaning.
 vendor_ramdisk bool, Whether this module is installed to vendor ramdisk
 version string
 vintf_fragments list of string, VINTF manifest fragments to be installed if this module is installed
 visibility list of string, Controls the visibility of this module to other modules. Allowable values are one or more of these formats:

 ["//visibility:public"]: Anyone can use this module.
 ["//visibility:private"]: Only rules in the module's package (not its subpackages) can use
     this module.
 ["//visibility:override"]: Discards any rules inherited from defaults or a creating module.
     Can only be used at the beginning of a list of visibility rules.
 ["//some/package:__pkg__", "//other/package:__pkg__"]: Only modules in some/package and
     other/package (defined in some/package/*.bp and other/package/*.bp) have access to
     this module. Note that sub-packages do not have access to the rule; for example,
     //some/package/foo:bar or //other/package/testing:bla wouldn't have access. __pkg__
     is a special module and must be used verbatim. It represents all of the modules in the
     package.
 ["//project:__subpackages__", "//other:__subpackages__"]: Only modules in packages project
     or other or in one of their sub-packages have access to this module. For example,
     //project:rule, //project/library:lib or //other/testing/internal:munge are allowed
     to depend on this rule (but not //independent:evil)
 ["//project"]: This is shorthand for ["//project:__pkg__"]
 [":__subpackages__"]: This is shorthand for ["//project:__subpackages__"] where
     //project is the module's package. e.g. using [":__subpackages__"] in
     packages/apps/Settings/Android.bp is equivalent to
     //packages/apps/Settings:__subpackages__.
 ["//visibility:legacy_public"]: The default visibility, behaves as //visibility:public
     for now. It is an error if it is used in a module.

If a module does not specify the `visibility` property then it uses the `default_visibility` property of the `package` module in the module's package. If the `default_visibility` property is not set for the module's package then it will use the `default_visibility` of its closest ancestor package for which a `default_visibility` property is specified. If no `default_visibility` property can be found then the module uses the global default of `//visibility:legacy_public`. The `visibility` property has no effect on a defaults module although it does apply to any non-defaults module that uses it. To set the visibility of a defaults module, use the `defaults_visibility` property on the defaults module; not to be confused with the `default_visibility` property on the package module. See https://android.googlesource.com/platform/build/soong/+/master/README.md#visibility for more details.
 wrapper string, installable script to execute the resulting jar