bazel [<startup options>] <command> [<args>]
bazel [<startup options>] <command> [<args>] -- [<target patterns>]
选项语法
您可以通过不同的方式将选项传递给 Bazel。需要指定值的选项 可以用等号或空格进行传递:
--<option>=<value> --<option> <value>
-<short_form> <value>
布尔值选项可按如下方式启用:
--<option> --<option>=[true|yes|1]
--no<option> --<option>=[false|no|0]
三态选项通常默认设置为自动, 按如下方式强制启用:
--<option>=[true|yes|1]
--no<option> --<option>=[false|no|0]
命令
analyze-profile |
分析 build 配置文件数据。 |
aquery |
分析给定目标并查询操作图。 |
build |
构建指定的目标。 |
canonicalize-flags |
对 bazel 选项列表进行规范化。 |
clean |
移除输出文件并选择停止服务器。 |
coverage |
为指定的测试目标生成代码覆盖率报告。 |
cquery |
加载、分析和查询具有配置的指定目标。 |
dump |
转储 Bazel 服务器进程的内部状态。 |
fetch |
提取目标前提条件的外部代码库。 |
help |
输出命令或索引的帮助信息。 |
info |
显示有关 bazel 服务器的运行时信息。 |
license |
打印此软件的许可。 |
mobile-install |
定位到移动设备的安装目标。 |
mod |
查询 Bzlmod 外部依赖关系图 |
print_action |
输出用于编译文件的命令行参数。 |
query |
执行依赖关系图查询。 |
run |
运行指定的目标。 |
shutdown |
停止 bazel 服务器。 |
sync |
同步工作区文件中指定的所有代码库 |
test |
构建并运行指定的测试目标。 |
vendor |
将外部代码库提取到标志 --vendor_dir 指定的文件夹中。 |
version |
输出 bazel 的版本信息。 |
启动选项
- 在命令之前显示并由客户端解析的选项:
--[no]autodetect_server_javabase
默认值:“true”-
传递 --noautodetect_server_javabase 时,Bazel 不会回退到本地 JDK 运行 bazel 服务器,而是退出。
标签:affects_outputs
、loses_incremental_state
--[no]batch
默认值:“false”-
如果设置,Bazel 将作为没有服务器的客户端进程运行,而不是在标准客户端/服务器模式下运行。此 API 已弃用,并将被移除。如果您希望避免延迟服务器,请明确关闭服务器。
标签:loses_incremental_state
、bazel_internal_configuration
、deprecated
--[no]batch_cpu_scheduling
默认值:“false”-
仅适用于 Linux;使用“batch”Blaze 的 CPU 调度。此政策适用于非交互式工作负载,但也不希望降低其有用值。请参阅“man 2 sched_setscheduler”。如果为 false,则 Bazel 不会执行系统调用。
标签:host_machine_resource_optimizations
--bazelrc=<path>
默认值:请参阅说明-
包含 Bazel 选项默认值的用户 .bazelrc 文件的位置。/dev/null 表示所有后续 `--bazelrc`均会被忽略,这对于停用用户 rc 文件的搜索非常有用,例如:。
您也可以多次指定此选项。
例如:以及 `--bazelrc=x.rc --bazelrc=y.rc --bazelrc=/dev/null --bazelrc=z.rc`;
1) 读取 x.rc 和 y.rc。
2) z.rc 因之前的 /dev/null 而被忽略。
如果未指定,则 Bazel 会使用在以下两个位置找到的第一个 .bazelrc 文件:工作区目录,以及用户的主目录。
注意:命令行选项将始终取代 bazelrc 中的任何选项。
标签:changes_inputs
--[no]block_for_lock
默认值:“true”-
传递 --noblock_for_lock 时,Bazel 不会等待正在运行的命令完成,而是立即退出。
标签:eagerness_to_exit
--[no]client_debug
默认值:“false”-
如果为 true,则将调试信息从客户端记录到 stderr。更改此选项不会导致服务器重启。
标签:affects_outputs
、bazel_monitoring
--connect_timeout_secs=<an integer>
默认值:“30”-
客户端每次尝试连接到服务器时等待的时间
标签:bazel_internal_configuration
--digest_function=<hash function>
默认值:请参阅说明-
计算文件摘要时使用的哈希函数。
标签:loses_incremental_state
、bazel_internal_configuration
--experimental_cgroup_parent=<path>
默认值:请参阅说明-
作为绝对路径启动 bazel 服务器的 cgroup。服务器进程将在各受支持的控制器的指定 cgroup 中启动。例如,如果此标志的值为 /build/bazel,并且 cpu 和内存控制器分别装载在 /sys/fs/cgroup/cpu 和 /sys/fs/cgroup/memory 上,服务器将在 cgroups /sys/fs/cgroup/cpu/build/bazel 中启动,而 /sys/fs/cgroup error/memory/build/bazel 中则不为 wcontrollers 指定的 one 或 more。此选项对不支持 cgroup 的平台没有任何影响。
标签:bazel_monitoring
、execution
--failure_detail_out=<path>
默认值:请参阅说明-
如果设置了此字段,则在服务器遇到故障并且无法照常通过 gRPC 报告时,指定写入 fail_detail protobuf 消息的位置。否则,位置将为 ${OUTPUT_BASE}/failure_detail.rawproto。
标签:affects_outputs
、loses_incremental_state
--[no]home_rc
默认值:“true”-
是否在 $HOME/.bazelrc 中查找主 bazelrc 文件
标签:changes_inputs
--[no]idle_server_tasks
默认值:“true”-
在服务器空闲时运行 System.gc()
标签:loses_incremental_state
、host_machine_resource_optimizations
--[no]ignore_all_rc_files
默认值:“false”-
停用所有 rc 文件,而不考虑其他 rc 修改标志的值,即使这些标志出现在启动选项列表中的后面。
标签:changes_inputs
--io_nice_level={-1,0,1,2,3,4,5,6,7}
默认值:“-1”-
仅适用于 Linux;设置一个 0-7 的级别,以便使用 sys_ioprio_set 系统调用尽力 IO 调度。0 表示最高优先级,7 表示最低优先级。预期调度程序最多只能遵循优先级 4。如果设置为负值,则 Bazel 不会执行系统调用。
标签:host_machine_resource_optimizations
--local_startup_timeout_secs=<an integer>
默认值:“120”-
客户端等待连接到服务器的最长时间
标签:bazel_internal_configuration
--macos_qos_class=<a string>
默认值:“默认”-
设置在 macOS 上运行时 Bazel 服务器的 QoS 服务类。此标志对所有其他平台没有影响,但受支持,可确保在这些平台之间无需更改即可共享 rc 文件。可能的值包括:user-interactive、user-Initiated、default、utils 和 background。
标签:host_machine_resource_optimizations
--max_idle_secs=<integer>
默认值:“10800”-
构建服务器在关闭前等待的空闲秒数。零表示服务器永远不会关闭。此字段仅在服务器启动时读取,更改此选项不会导致服务器重启。
标签:eagerness_to_exit
、loses_incremental_state
--output_base=<path>
默认值:请参阅说明-
如果设置了此字段,则会指定所有构建输出都将写入到的输出位置。否则,位置将为 ${OUTPUT_ROOT}/_blaze_${USER}/${MD5_OF_WORKSPACE_ROOT}。注意:如果您为此值的下一个 Bazel 调用指定了不同的选项,那么您可能需要额外启动一个新的 Bazel 服务器。对于每个指定的输出库,Bazel 仅启动一个服务器。通常,每个工作区都有一个输出基准;但使用此选项时,每个工作区可能有多个输出基准,这样一来,同一台机器上的同一客户端可以同时运行多个构建。请参阅“bazel 帮助关闭”了解如何关停 Bazel 服务器
标签:affects_outputs
、loses_incremental_state
--output_user_root=<path>
默认值:请参阅说明-
写入所有构建输出的用户专属目录;默认情况下,这是 $USER 的函数,但是通过指定常量,可以在协作用户之间共享构建输出。
标签:affects_outputs
、loses_incremental_state
--[no]preemptible
默认值:“false”-
如果为 true,则在启动另一个命令时该命令可以被抢占。
标签:eagerness_to_exit
--server_jvm_out=<path>
默认值:请参阅说明-
写入服务器 JVM 输出的位置。如果未设置,则默认为 output_base 中的一个位置。
标签:affects_outputs
、loses_incremental_state
--[no]shutdown_on_low_sys_mem
默认值:“false”-
如果设置了 max_idle_secs 且构建服务器已空闲了一段时间,请在系统的可用 RAM 不足时关闭服务器。仅限 Linux。
标签:eagerness_to_exit
、loses_incremental_state
--[no]system_rc
默认值:“true”-
是否查找系统级 bazelrc。
标签:changes_inputs
--[no]unlimit_coredumps
默认值:“false”-
将软核心转储限制提高至硬限制,以使服务器(包括 JVM)和客户端的核心转储可在常见条件下正常完成。在 bazelrc 中保留一次此标志,然后忽略它,以便在实际遇到触发 Coredump 的条件时获得 coredump。
标签:bazel_internal_configuration
--[no]watchfs
默认值:“false”-
如果为 true,bazel 会尝试使用操作系统的文件监控服务进行本地更改,而不是扫描每个文件以查看是否有更改。
标签:deprecated
--[no]windows_enable_symlinks
默认值:“false”-
如果为 true,则系统会在 Windows 上创建真实符号链接,而不是复制文件。需要启用 Windows 开发者模式并安装 Windows 10 1703 版或更高版本。
标签:bazel_internal_configuration
--[no]workspace_rc
默认值:“true”-
是否在 $workspace/.bazelrc 中查找 workspace bazelrc 文件
标签:changes_inputs
- 未以其他方式分类的其他选项:
- 累计使用了
--host_jvm_args=<jvm_arg>
次 - 要传递给执行 Blaze 的 JVM 的标记。
--host_jvm_debug
-
添加一些额外的 JVM 启动标记的便捷选项,这些标记会导致 JVM 在启动期间等待,直到您从兼容 JDWP 的调试程序(如 Eclipse)连接到端口 5005。
扩展为:
--host_jvm_args=-Xdebug
--host_jvm_args=-Xrunjdwp:transport=dt_socket,server=y,address=5005
--server_javabase=<jvm path>
默认值:“”- 用于执行 Bazel 本身的 JVM 的路径。
所有命令通用的选项
- 在命令之前显示并由客户端解析的选项:
- 累计使用了
--distdir=<a path>
次 -
在访问网络以下载归档文件之前可搜索的其他位置。
标签:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
默认值:“false”-
如果已设置,在缓存命中时,存储区缓存将硬链接文件,而不是复制。这是为了节省磁盘空间。
标签:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer>
默认值:“5”-
重试下载错误的最大尝试次数。如果设置为 0,系统会停用重试。
标签:experimental
--experimental_scale_timeouts=<a double>
默认值:“1.0”-
按此系数扩缩 Starlark 代码库规则中的所有超时。这样,外部代码库可以在运行速度低于规则作者所预期的机器上运行,而无需更改源代码
标签:bazel_internal_configuration
、experimental
--http_connector_attempts=<an integer>
默认值:“8”-
http 下载的尝试次数上限。
标签:bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.>
默认值:“0s”-
http 下载重试的最大超时时间。值为 0 时,未定义超时上限。
标签:bazel_internal_configuration
--http_max_parallel_downloads=<an integer>
默认值:“8”-
并行 http 下载数量上限。
标签:bazel_internal_configuration
--http_timeout_scaling=<a double>
默认值:“1.0”-
按指定系数调整与 HTTP 下载相关的所有超时
标签:bazel_internal_configuration
--[no]incompatible_disable_native_repo_rules
默认值:“false”-
如果为 false,可以在 WORKSPACE 中使用原生代码库规则;否则,必须改用 Starlark 代码库规则。原生代码库规则包括 local_repository、new_local_repository、local_config_platform 和 android_sdk_repository。
标签:bazel_internal_configuration
--repository_cache=<a path>
默认值:请参阅说明-
指定在提取外部代码库期间获得的所下载值的缓存位置。如果参数为空字符串,则会请求停用缓存,否则将使用默认值“<output_user_root>/cache/repos/v1”使用
标签:bazel_internal_configuration
--[no]repository_disable_download
默认值:“false”-
如果已设置,那么在代码库提取期间,系统将不允许使用 ctx.download{,_and_Extract} 进行下载。请注意,网络访问权限并未完全停用;ctx.execute 仍然可以运行访问互联网的任意可执行文件。
标签:bazel_internal_configuration
- 用于控制构建执行的选项:
--experimental_ui_max_stdouterr_bytes=<an integer in (-1)-1073741819 range>
默认值:“1048576”-
将输出到控制台的 stdout / stderr 文件的大小上限。-1 表示无限制。
标签:execution
--gc_thrashing_threshold=<an integer in 0-100 range>
默认值:“100”-
占用的资历百分比 (0-100),如果 GcThrashingDetector 将内存压力事件视为其极限 (--gc_thrashing_limits),如果设为 100,GcThrashingDetector 将停用。
标签:host_machine_resource_optimizations
--[no]incompatible_remote_dangling_symlinks
默认值:“true”-
如果设为 true,上传到远程缓存或磁盘缓存的符号链接可以挂起。
标签:execution
、incompatible_change
--[no]incompatible_remote_symlinks
默认值:“true”-
如果设置为 true,Bazel 将始终将此类符号链接上传到远程或磁盘缓存。否则,非悬空的相对符号链接(且只有这些符号链接)会作为它们所指向的文件或目录进行上传。
标签:execution
、incompatible_change
- 用于配置用于执行操作执行的工具链的选项:
--[no]incompatible_enable_proto_toolchain_resolution
默认值:“false”-
如果为 true,proto lang 规则定义来自 rules_proto、rules_java 和 rules_cc 代码库的工具链。
标签:loading_and_analysis
、incompatible_change
- 可让用户配置预期输出并影响输出值(而不是其存在性)的选项:
--bep_maximum_open_remote_upload_files=<an integer>
默认值:“-1”-
BEP 工件上传期间允许打开的文件数量上限。
标签:affects_outputs
--remote_download_all
-
将所有远程输出下载到本地计算机。此标志是 --remote_download_outputs=all 的别名。
扩展为:
--remote_download_outputs=all
标签:affects_outputs
--remote_download_minimal
-
不将任何远程构建输出下载到本地机器。此标志是 --remote_download_outputs=minimal 的别名。
扩展为:
--remote_download_outputs=minimal
标签:affects_outputs
--remote_download_outputs=<all, minimal or toplevel>
默认值:“toplevel”-
如果设置为“minimal”不会将任何远程构建输出下载到本地机器(本地操作所需的输出除外)。如果设置为“toplevel”行为类似于“minimal”只不过它也会将顶级目标的输出内容下载到本地计算机。如果网络带宽成为瓶颈,这两种方式都可以显著缩短构建时间。
标签:affects_outputs
--remote_download_symlink_template=<a string>
默认值:“”-
创建符号链接,而不是将远程构建输出下载到本地机器。符号链接的目标可以模板字符串的形式指定。此模板字符串可能包含 {hash} 和 {size_bytes},分别扩展到对象的哈希值和字节大小。例如,这些符号链接可以指向按需从 CAS 加载对象的 FUSE 文件系统。
标签:affects_outputs
--remote_download_toplevel
-
仅将顶级目标的远程输出下载到本地计算机。此标志是 --remote_download_outputs=toplevel 的别名。
扩展为:
--remote_download_outputs=toplevel
标签:affects_outputs
- 累计使用了
--repo_env=<a 'name=value' assignment with an optional value part>
次 -
指定仅供代码库规则使用的其他环境变量。请注意,仓库规则仍会看到完整环境,但通过这种方式,配置信息可以通过选项传递到仓库,而不会使操作图失效。
标签:action_command_lines
- 影响 Bazel 强制执行有效构建输入的严格程度的选项(规则定义、标志组合等):
--[no]check_bzl_visibility
默认值:“true”-
如果停用,.bzl 加载可见性错误会降级为警告。
标签:build_file_semantics
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]enable_bzlmod
默认值:“true”-
如果为 true,则启用 Bzlmod 依赖项管理系统,优先级高于 WORKSPACE。如需了解详情,请参阅 https://bazel.build/docs/bzlmod。
标签:loading_and_analysis
--[no]enable_workspace
默认值:“true”-
如果为 true,则为外部依赖项启用旧版 WORKSPACE 系统。如需了解详情,请参阅 https://bazel.build/external/overview。
标签:loading_and_analysis
--[no]experimental_action_resource_set
默认值:“true”-
如果设置为 true, ctx.actions.run() 和 ctx.actions.run_shell() 将接受 resource_set 参数以进行本地执行。否则,内存和 CPU 将默认为 250 MB。
标签:execution
、build_file_semantics
、experimental
--[no]experimental_bzl_visibility
默认值:“true”-
启用后,将添加 .bzl 文件可能会在顶级评估期间调用的“visibility()”函数,以便设置其可见性,从而实现 load() 语句。
标签:loading_and_analysis
、experimental
-
如果设置为 true,将可使用规则 cc_shared_library 所需的规则属性和 Starlark API 方法
标签:build_file_semantics
、loading_and_analysis
、experimental
--[no]experimental_cc_static_library
默认值:“false”-
如果设置为 true,将可使用规则 cc_static_library 所需的规则属性和 Starlark API 方法
标签:build_file_semantics
、loading_and_analysis
、experimental
--[no]experimental_disable_external_package
默认值:“false”-
如果设为 true,自动生成的 //external package 将不再可用。Bazel 仍然无法解析文件“external/BUILD”,但从未命名的软件包连接到 external/ 的 glob 是正常的。
标签:loading_and_analysis
、loses_incremental_state
、experimental
--[no]experimental_enable_android_migration_apis
默认值:“false”-
如果此政策设为 true,系统会启用支持 Android Starlark 迁移所需的 API。
标签:build_file_semantics
--[no]experimental_enable_first_class_macros
默认值:“false”-
如果设为 true,则会启用“macro()”结构来定义一类宏。
标签:build_file_semantics
--[no]experimental_enable_scl_dialect
默认值:“false”-
如果设置为 true,则可以在 load() 语句中使用 .scl 文件。
标签:build_file_semantics
--[no]experimental_google_legacy_api
默认值:“false”-
如果设置为 true,系统会显示一些与 Google 旧版代码相关的 Starlark build API 实验性代码段。
标签:loading_and_analysis
、experimental
--[no]experimental_isolated_extension_usages
默认值:“false”-
如果为 true,则启用 <code>isolate</code>参数(位于 <a href="https://bazel.build/rules/lib/globals/module#use_extension"><code>use_extension</code></a> 中)函数。
标签:loading_and_analysis
--[no]experimental_java_library_export
默认值:“false”-
如果启用,则 Experimental_java_library_export_do_not_use 模块可用。
标签:loading_and_analysis
、incompatible_change
--[no]experimental_platforms_api
默认值:“false”-
如果此政策设为 true,系统会启用多个与平台相关的 Starlark API,以用于调试。
标签:loading_and_analysis
、experimental
--[no]experimental_repo_remote_exec
默认值:“false”-
如果设置为 true,仓库_rule 将获得一些远程执行能力。
标签:build_file_semantics
、loading_and_analysis
、experimental
--[no]experimental_sibling_repository_layout
默认值:“false”-
如果设置为 true,非主代码库将作为指向主代码库的符号链接植入执行根目录中。也就是说,所有代码库都是 $output_base/execution_root 目录的直接子目录。这样做的副作用是为真正的顶级“external”释放 $output_base/execution_root/__main__/external目录。
标签:action_command_lines
、bazel_internal_configuration
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]experimental_single_package_toolchain_binding
默认值:“false”-
如果启用,register_toolchain 函数可能不包含可能引用多个软件包的目标模式。
标签:loading_and_analysis
、incompatible_change
-
如果设为 true,标记将从目标传播到操作的执行要求;否则代码将不会传播。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/8830。
标签:build_file_semantics
、experimental
--[no]incompatible_always_check_depset_elements
默认值:“true”-
检查所有构造函数中添加到 depset 的元素是否有效。元素必须不可变,但之前 depset(direct=...) 构造函数忘记检查。在 depset 元素中使用元组而非列表。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/10313。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_depset_for_libraries_to_link_getter
默认值:“true”-
如果为 true,Bazel 不再返回 linked_context.发布商_to_link 提供的列表,而是返回 depset。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_disable_objc_library_transition
默认值:“true”-
停用 objc_library 的自定义转换,并改为从顶级目标继承(Bazel 中的空操作)
标签:build_file_semantics
、incompatible_change
--[no]incompatible_disable_starlark_host_transitions
默认值:“false”-
如果设置为 true,则规则属性无法设置“cfg = "host"”。规则应设置 'cfg = "exec"'。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_disable_target_default_provider_fields
默认值:“false”-
如果此政策设为 true,系统将禁止访问“target”上的提供商对象。请改用提供程序键语法。例如,在规则实现函数内访问 `my_info` 时,不应使用 `ctx.attr.dep.my_info`,而应使用 `ctx.attr.dep[MyInfo]`。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/9014。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_disable_target_provider_fields
默认值:“false”-
如果此政策设为 true,系统会禁止通过字段语法使用默认提供程序。请改用提供程序键语法。例如,要访问“files”,请使用“ctx.attr.dep[DefaultInfo].files”。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/9014。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_disallow_ctx_resolve_tools
默认值:“false”-
如果设置为 true,调用已废弃的 ctx.resolve_tools API 始终会失败。使用此 API 应替换为 ctx.actions.run 或 ctx.actions.run_shell 的可执行文件参数或 tools 参数。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_disallow_empty_glob
默认值:“false”-
如果设置为 true,则 glob() 的“allow_empty”参数的默认值为 False。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_disallow_struct_provider_syntax
默认值:“false”-
如果设置为 true,规则实施函数可能不会返回结构体。它们必须改为返回提供程序实例的列表。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_enable_deprecated_label_apis
默认值:“true”-
启用后,即可使用某些已废弃的 API(native.repository_name、Label.workspace_name、Label.relative)。
标签:loading_and_analysis
--[no]incompatible_fail_on_unknown_attributes
默认值:“true”-
如果启用,将未知属性设为“无”的目标将会失败。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_fix_package_group_reporoot_syntax
默认值:“true”-
在 package_group 的 `packages` 属性中,更改值“//...”的含义来引用当前代码库中的所有软件包,而不是任何代码库中的所有软件包。您可以使用特殊值“public”来代替“//...”来获取旧行为。此标志要求同时启用 --incompatible_package_group_has_public_syntax。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_java_common_parameters
默认值:“true”-
如果设为 true,系统会移除编译中的 pack_sources 和 host_javabase 中的 output_jar 和 host_javabase 参数。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_merge_fixed_and_default_shell_env
默认值:“true”-
启用后,通过 ctx.actions.run 和 ctx.actions.run_shell 同时以“env”和条件注册的操作和“use_default_shell_env = True”将使用从默认 shell 环境获取的环境,方法是用传入“env”的值进行替换。如果停用,“env”的值则会被完全忽略。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_no_attr_license
默认值:“true”-
如果设置为 true,则会停用函数“attr.license”。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_no_implicit_file_export
默认值:“false”-
如果设置,(已使用的)源文件将是软件包专用文件(除非明确导出)。请参阅 https://github.com/bazelbuild/suggests/blob/master/designs/2019-10-24-file-visibility.md
标签:build_file_semantics
、incompatible_change
--[no]incompatible_no_rule_outputs_param
默认值:“false”-
如果设为 true,则会停用 `rule()` Starlark 函数的 `outputs` 参数。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_package_group_has_public_syntax
默认值:“true”-
在 package_group 的 `packages` 属性中,允许写入“public”或“私享”分别表示所有软件包或无软件包。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_require_linker_input_cc_api
默认值:“true”-
如果设为 true,则规则 create_linking_context 将需要 linker_inputs 而不是 libraries_to_link。links_context 的旧 getter 也将停用,而仅 linker_inputs 可用。
标签:build_file_semantics
、loading_and_analysis
、incompatible_change
--[no]incompatible_run_shell_command_string
默认值:“true”-
如果设置为 true,则 actions.run_shell 的命令参数将仅接受字符串
标签:build_file_semantics
、incompatible_change
--[no]incompatible_stop_exporting_build_file_path
默认值:“false”-
如果设置为 true,则已弃用的 ctx.build_file_path 将不可用。ctx.label.package +“/BUILD”。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_stop_exporting_language_modules
默认值:“false”-
启用后,某些特定语言的模块(例如 `cc_common`)在用户 .bzl 文件中不可用,只能从其各自的规则仓库进行调用。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_top_level_aspects_require_providers
默认值:“false”-
如果设置为 true,顶级切面将遵循其必需的提供程序,并且仅在其规则所在的顶级目标上运行所宣传的提供商满足相关方面的要求提供商。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_unambiguous_label_stringification
默认值:“true”-
如果为 true,Bazel 会将标签 @//foo:bar 的字符串化为 @//foo:bar,而不是 //foo:bar。这只会影响 str()、% 运算符等的行为;repr() 的行为保持不变。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/15916。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_use_cc_configure_from_rules_cc
默认值:“false”-
如果为 true,Bazel 将不再允许使用 @bazel_tools 中的 cc_configure。如需了解详情和迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/10134。
标签:loading_and_analysis
、incompatible_change
--max_computation_steps=<a long integer>
默认值:“0”-
BUILD 文件可能执行的 Starlark 计算步骤数上限(零表示无限制)。
标签:build_file_semantics
--nested_set_depth_limit=<an integer>
默认值:“3500”-
depset 内部的图的最大深度(也称为 NestedSet),超出此深度后 depset() 构造函数将失败。
标签:loading_and_analysis
- 与 Bzlmod 输出和语义相关的选项:
- 累计使用了
--allow_yanked_versions=<a string>
次 -
以 `<module1>@<version1>,<module2>@<version2>` 的形式指定模块版本,即使在已解析的依赖关系图中声明这些模块版本在它们来源的注册表中被声明为拉动(如果它们并非来自 NonRegistryOverride)。否则,提取的版本会导致解析失败。您还可以使用 `BZLMOD_ALLOW_YANKED_VERSIONS` 环境变量定义允许的拉取版本。您可以使用关键字“all”停用此项检查(不推荐)。
标签:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
默认值:“error”-
检查 Bazel 模块的 Bazel 版本兼容性。有效值为 `error`(表示要上报为解决失败问题)、`off`(表示停用检查)或 `warning`(表示检测到不匹配时输出警告)。
标签:loading_and_analysis
--check_direct_dependencies=<off, warning or error>
默认值:“警告”-
检查根模块中声明的直接 `bazel_dep` 依赖项是否与已解析的依赖关系图中的版本相同。有效值为 `off` 表示停用该检查,`warning` 表示在检测到不匹配时输出警告,值为 `error`(表示内容为解决失败问题)。
标签:loading_and_analysis
--[no]ignore_dev_dependency
默认值:“false”-
如果为 true,Bazel 会忽略根模块的 MODULE.bazel 中声明为“dev_dependency”的“bazel_dep”和“use_extension”。请注意,如果 MODULE.bazel 不是根模块,那么无论此标志的值如何,这些开发依赖项在 MODULE.bazel 中始终会被忽略。
标签:loading_and_analysis
--lockfile_mode=<off, update, refresh or error>
默认值:“update”-
指定如何以及是否使用锁定文件。有效值为 `update` 表示使用 Lockfile 并在发生更改时进行更新;使用 `refresh` 会不时地从远程注册表刷新可变信息(被拉取的版本和之前缺失的模块),使用 `error` 可使用 Lockfile(如果不是最新版本,则抛出错误)或 `off` 以既不对锁定文件执行读写操作。
标签:loading_and_analysis
- 累计使用了
--override_module=<an equals-separated mapping of module name to path>
次 - 使用 <module name>=<path> 形式的本地路径替换模块。如果指定的路径是绝对路径,则按原样使用它。如果给定路径是相对路径,则该路径相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录(“bazel info workspace”的输出)。如果给定路径为空,则移除之前的所有替换项。
- 累计使用了
--registry=<a string>
次 -
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:首先在较早的注册表中查询模块,仅当之前的注册表中缺少模块时才回退到后期注册表中。
标签:changes_inputs
--vendor_dir=<a path>
默认值:请参阅说明-
指定在供应商模式下保存外部代码库的目录(无论是出于提取这些代码库的目的还是在构建时使用它们)。该路径可以指定为绝对路径,也可以指定为相对于工作区目录的路径。
标签:loading_and_analysis
- 触发构建时间优化的选项:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>>
默认值:“1s:2,20s:3,1m:5”-
限制,如果达到这些限制,则会导致 GcThrashingDetector 因 OOM 导致 Bazel 崩溃。每个限额都指定为 <period>:<count>其中,period 表示时长,count 为正整数。如果 <count> 后占用的资历空间(旧代堆)超过 --gc_thrashing_threshold%%在 <period> 内连续完全垃圾回收时,就会触发 OOM。可以指定多个限制条件,并用英文逗号分隔。
标签:host_machine_resource_optimizations
--[no]heuristically_drop_nodes
默认值:“false”-
如果为 true,Blaze 将在相关的 FileState 和 DirectoryListing 节点完成后移除 FileState 和 DirectoryListingState 节点以节省内存。我们预计再次需要这些节点的可能性会降低。如果是这样,程序将重新评估它们。
标签:loses_incremental_state
--[no]incompatible_do_not_split_linking_cmdline
默认值:“true”-
如果为 true,Bazel 将不再修改用于链接的命令行标志,也不会选择性地决定哪些标志会用于参数文件,哪些不会。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7670。
标签:loading_and_analysis
、incompatible_change
--[no]keep_state_after_build
默认值:“true”-
如果为 false,Blaze 将在构建完成时舍弃此构建的内存状态。后续 build 不会有任何增量。
标签:loses_incremental_state
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0>
默认值:“10”-
用于 Bazel 内部 Skyframe 引擎高级配置的标志。如果 Bazel 检测到其保留的堆百分比使用量超过 --skyframe_high_water_mark_threshold 设置的阈值,那么当发生完全 GC 事件时,Bazel 会丢弃不必要的临时 Skyframe 状态,每次调用最多会丢弃此数次。默认值为 10。零表示完全 GC 事件永远不会触发丢弃。如果达到该限制,当发生完整的 GC 事件并且超过保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标签:host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0>
默认值:“10”-
用于 Bazel 内部 Skyframe 引擎高级配置的标志。如果 Bazel 检测到其保留的堆百分比使用量超过 --skyframe_high_water_mark_threshold 设置的阈值,那么当发生次要 GC 事件时,Bazel 会丢弃不必要的临时 Skyframe 状态,每次调用最多会达到此数值的次数。默认值为 10。零表示次要 GC 事件永远不会触发丢弃。如果达到该限制,则当发生次要 GC 事件且超过保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标签:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer>
默认值:“85”-
用于 Bazel 内部 Skyframe 引擎高级配置的标志。如果 Bazel 检测到其保留的堆百分比使用量不低于此阈值,则 Bazel 会丢弃不必要的临时 Skyframe 状态。当 GC 抖动是 (i) 此临时状态的内存使用导致的,并且 (ii) 在需要时重构状态的成本更高时,通过调整此选项,您可以减轻 GC 抖动在实际用时的影响。
标签:host_machine_resource_optimizations
--[no]track_incremental_state
默认值:“true”-
如果为 false,Blaze 不会保留允许对增量 build 进行失效和重新评估的数据,以节省此 build 的内存。后续 build 不会有任何增量。通常,在将此参数设置为 false 时,您需要指定 --batch。
标签:loses_incremental_state
- 影响日志记录的详细程度、格式或位置的选项:
--[no]announce_rc
默认值:“false”-
是否公布 RC 选项。
标签:affects_outputs
--[no]attempt_to_print_relative_paths
默认值:“false”-
输出消息的位置部分时,请尝试使用相对于工作区目录或 --package_path 指定的某个目录的路径。
标签:terminal_output
--bes_backend=<a string>
默认值:“”-
以 [SCHEME://]HOST[:PORT] 格式指定构建事件服务 (BES) 后端端点。默认情况下,系统会停用 BES 上传。支持的架构包括 grpc 和 grpcs(启用了 TLS 的 grpc)。如果未提供架构,Bazel 将假定使用 grpc。
标签:affects_outputs
--[no]bes_check_preceding_lifecycle_events
默认值:“false”-
在 PublishBuildToolEventStreamRequest 上设置字段 check_preceding_lifecycle_events_present,指示 BES 检查其之前是否收到过与当前工具事件匹配的 InvocationAttemptStarted 和 BuildEnqueued 事件。
标签:affects_outputs
- 累计使用了
--bes_header=<a 'name=value' assignment>
次 -
指定 NAME=VALUE 表单中将包括在 BES 请求中的标头。通过多次指定标志可以传递多个标头。如果同一个名称有多个值,系统会将这些值转换为逗号分隔列表。
标签:affects_outputs
--bes_instance_name=<a string>
默认值:请参阅说明-
指定实例名称,BES 将使用该名称保存上传的 BEP。默认为 null。
标签:affects_outputs
- 累计使用了
--bes_keywords=<comma-separated list of options>
次 -
指定要添加到 BES 的默认关键字组的通知关键字列表(“command_name=<command_name> ", "protocol_name=BEP”)。默认值为“none”。
标签:affects_outputs
--[no]bes_lifecycle_events
默认值:“true”-
指定是否发布 BES 生命周期事件。(默认为“true”)。
标签:affects_outputs
--bes_oom_finish_upload_timeout=<An immutable length of time.>
默认值:“10m”-
指定 OOM 时 bazel 需要等待 BES/BEP 上传完成的时间。此标志可确保在 JVM 严重垃圾回收并且无法在任何用户线程上进展时终止。
标签:bazel_monitoring
--bes_outerr_buffer_size=<an integer>
默认值:“10240”-
指定在报告为进度事件之前,要在 BEP 中缓冲的 stdout 或 stderr 的最大大小。即使比指定的值最大为 --bes_outerr_chunk_size,系统仍会在单个事件中报告各项写入。
标签:affects_outputs
--bes_outerr_chunk_size=<an integer>
默认值:“1048576”-
指定要在单封邮件中发送到 BEP 的 stdout 或 stderr 的最大大小。
标签:affects_outputs
--bes_proxy=<a string>
默认值:请参阅说明- 通过代理连接到 Build Event Service。目前,此标志只能用于配置 Unix 网域套接字 (unix:/path/to/socket)。
--bes_results_url=<a string>
默认值:“”-
指定基本网址,用户可以在该网址中查看流式传输到 BES 后端的信息。Bazel 会将调用 ID 附加的网址输出到终端。
标签:terminal_output
- 累计使用了
--bes_system_keywords=<comma-separated list of options>
次 -
指定要直接包含的通知关键字列表,而不使用“user_keyword=”为通过 --bes_keywords 提供的关键字添加前缀。适用于在调用 PublishLifecycleEvent 时设置 --bes_lifecycle_events=false 并包含关键字的 Build 服务运算符。使用此标志的 build 服务运算符应阻止用户替换标志值。
标签:affects_outputs
--bes_timeout=<An immutable length of time.>
默认值:“0s”-
指定构建和测试完成后,bazel 应等待 BES/BEP 上传完成的时间。有效的超时是一个自然数,后跟一个单位:天 (d)、小时 (h)、分钟 (m)、秒 (s) 和毫秒 (ms)。默认值为“0”也就是说没有超时。
标签:affects_outputs
--bes_upload_mode=<wait_for_upload_complete, nowait_for_upload_complete or fully_async>
默认值:“wait_for_upload_complete”-
指定构建事件服务上传应该阻止构建完成,还是应该立即结束调用并在后台完成上传。“wait_for_upload_complete”(默认)、“nowait_for_upload_complete”或“fully_async”。
标签:eagerness_to_exit
--build_event_binary_file=<a string>
默认值:“”-
如果非空,请将 build 事件协议的表示形式以 varint 分隔的二进制表示法写入该文件。此选项暗示了 --bes_upload_mode=wait_for_upload_complete。
标签:affects_outputs
--[no]build_event_binary_file_path_conversion
默认值:“true”-
尽可能将 build 事件协议的二进制文件表示形式中的路径转换为更全局有效的 URI;如果停用此政策,系统将始终使用 file:// URI scheme
标签:affects_outputs
--build_event_binary_file_upload_mode=<wait_for_upload_complete, nowait_for_upload_complete or fully_async>
默认值:“wait_for_upload_complete”-
指定 --build_event_binary_file 的构建事件服务上传应该阻止构建完成,还是应该立即结束调用并在后台完成上传。“wait_for_upload_complete”(默认)、“nowait_for_upload_complete”或“fully_async”。
标签:eagerness_to_exit
--build_event_json_file=<a string>
默认值:“”-
如果非空,则将构建事件协议的 JSON 序列化写入该文件。此选项暗示了 --bes_upload_mode=wait_for_upload_complete。
标签:affects_outputs
--[no]build_event_json_file_path_conversion
默认值:“true”-
尽可能将 build 事件协议的 json 文件中表示形式中的路径转换为更全局有效的 URI;如果停用此政策,系统将始终使用 file:// URI scheme
标签:affects_outputs
--build_event_json_file_upload_mode=<wait_for_upload_complete, nowait_for_upload_complete or fully_async>
默认值:“wait_for_upload_complete”-
指定 --build_event_json_file 的构建事件服务上传是应该阻止构建完成,还是应该立即结束调用并在后台完成上传。“wait_for_upload_complete”(默认)、“nowait_for_upload_complete”或“fully_async”。
标签:eagerness_to_exit
--build_event_max_named_set_of_file_entries=<an integer>
默认值:“5000”-
单个 names_set_of_files 事件的最大条目数;小于 2 的值将被忽略,并且不会执行事件拆分。这是为了限制构建事件协议中的最大事件大小,尽管它不直接控制事件大小。事件总大小受集合的结构以及文件和 URI 长度的影响,而后者可能又取决于哈希函数。
标签:affects_outputs
--[no]build_event_publish_all_actions
默认值:“false”-
是否应发布所有操作。
标签:affects_outputs
--build_event_text_file=<a string>
默认值:“”-
如果非空,则将构建事件协议的文本表示形式写入该文件
标签:affects_outputs
--[no]build_event_text_file_path_conversion
默认值:“true”-
尽可能将 build 事件协议的文本文件表示形式中的路径转换为更全局有效的 URI;如果停用此政策,系统将始终使用 file:// URI scheme
标签:affects_outputs
--build_event_text_file_upload_mode=<wait_for_upload_complete, nowait_for_upload_complete or fully_async>
默认值:“wait_for_upload_complete”-
指定 --build_event_text_file 的构建事件服务上传应该阻止构建完成,还是应该立即结束调用并在后台完成上传。“wait_for_upload_complete”(默认)、“nowait_for_upload_complete”或“fully_async”。
标签:eagerness_to_exit
--build_event_upload_max_retries=<an integer>
默认值:“4”-
Bazel 应重新尝试上传构建事件的最大次数。
标签:bazel_internal_configuration
--[no]experimental_bep_target_summary
默认值:“false”- 是否发布 TargetSummary 事件。
--[no]experimental_build_event_expand_filesets
默认值:“false”-
如果为 true,则在呈现输出文件时以 BEP 展开文件集。
标签:affects_outputs
--[no]experimental_build_event_fully_resolve_fileset_symlinks
默认值:“false”-
如果为 true,则在显示输出文件时完全解析 BEP 中的相对文件集符号链接。需要 --experimental_build_event_expand_filesets。
标签:affects_outputs
--experimental_build_event_upload_retry_minimum_delay=<An immutable length of time.>
默认值:“1s”-
BEP 上传失败时,指数退避算法重试的初始最小延迟时间。(指数:1.6)
标签:bazel_internal_configuration
--experimental_build_event_upload_strategy=<a string>
默认值:请参阅说明-
选择如何上传 build 事件协议中引用的制品。
标签:affects_outputs
--[no]experimental_collect_load_average_in_profiler
默认值:“true”-
启用后,性能分析器将收集系统的总体平均负载。
标签:bazel_monitoring
--[no]experimental_collect_pressure_stall_indicators
默认值:“false”-
启用后,性能分析器会收集 Linux PSI 数据。
标签:bazel_monitoring
--[no]experimental_collect_resource_estimation
默认值:“false”-
启用后,性能分析器将收集本地操作的 CPU 和内存用量估算值。
标签:bazel_monitoring
--[no]experimental_collect_skyframe_counts_in_profiler
默认值:“false”-
启用后,性能分析器会在 Skyframe 图中收集关键函数类型(例如配置的目标和操作执行)的 SkyFunction 计数。这可能会降低性能,因为这会在每个分析时间单位访问整个 Skyframe 图。请勿将此标志与性能关键型测量一起使用。
标签:bazel_monitoring
--[no]experimental_collect_system_network_usage
默认值:“true”-
启用后,性能分析器会收集系统的网络使用情况。
标签:bazel_monitoring
--[no]experimental_collect_worker_data_in_profiler
默认值:“false”-
启用后,性能分析器会收集工作器的汇总资源数据。
标签:bazel_monitoring
--experimental_command_profile=<cpu, wall, alloc or lock>
默认值:请参阅说明- 在命令期间记录 Java 飞行记录器配置文件。必须将某个受支持的分析事件类型(CPU、wall、分配或锁定)指定为参数。配置文件将写入以输出基目录下的事件类型命名的文件中。此标记的语法和语义将来可能会发生变化,以支持其他配置文件类型或输出格式;使用风险由您自行承担。
- 累计使用了
--experimental_profile_additional_tasks=<phase, action, discover_inputs, action_check, action_lock, action_update, action_complete, action_rewinding, bzlmod, info, create_package, remote_execution, local_execution, scanner, local_parse, upload_time, remote_process_time, remote_queue, remote_setup, fetch, local_process_time, vfs_stat, vfs_dir, vfs_readlink, vfs_md5, vfs_xattr, vfs_delete, vfs_open, vfs_read, vfs_write, vfs_glob, vfs_vmfs_stat, vfs_vmfs_dir, vfs_vmfs_read, wait, thread_name, thread_sort_index, skyframe_eval, skyfunction, critical_path, critical_path_component, handle_gc_notification, action_counts, action_cache_counts, local_action_counts, local_cpu_usage, system_cpu_usage, cpu_usage_estimation, local_memory_usage, system_memory_usage, memory_usage_estimation, system_network_up_usage, system_network_down_usage, workers_memory_usage, system_load_average, starlark_parser, starlark_user_fn, starlark_builtin_fn, starlark_user_compiled_fn, starlark_repository_fn, action_fs_staging, remote_cache_check, remote_download, remote_network, filesystem_traversal, worker_execution, worker_setup, worker_borrow, worker_working, worker_copying_outputs, credential_helper, pressure_stall_full_io, pressure_stall_full_memory, pressure_stall_some_io, pressure_stall_some_memory, pressure_stall_some_cpu, conflict_check, dynamic_lock, repository_fetch, repository_vendor, glob_skyfunction, glob_skyfunction_done, globs_skyfunction, globs_skyfunction_done, bzl_load_skyfunction, bzl_load_skyfunction_done, package_skyfunction, package_skyfunction_done, action_execution_skyfunction, action_execution_skyfunction_done, configured_target_skyfunction, configured_target_skyfunction_done, aspect_skyfunction, aspect_skyfunction_done or unknown>
次 -
指定要包含在配置文件中的其他配置文件任务。
标签:bazel_monitoring
--[no]experimental_profile_include_primary_output
默认值:“false”-
包含额外的“out”属性。
标签:bazel_monitoring
--[no]experimental_profile_include_target_label
默认值:“false”-
在操作事件中包含目标标签JSON 个人资料数据。
标签:bazel_monitoring
--[no]experimental_record_metrics_for_all_mnemonics
默认值:“false”- 控制 BEP ActionSummary 和 BuildGraphMetrics 的输出,从而限制 ActionData 中的助记符数量和 BuildGraphMetrics.AspectCount/RuleClassCount 中报告的条目数。默认情况下,类型的数量限制为前 20 位(按 ActionData 的已执行操作数量以及 RuleClass 和 Asepcts 的实例数)。设置此选项会写入所有助记符、规则类和切面的统计信息。
--[no]experimental_record_skyframe_metrics
默认值:“false”- 控制 BEP BuildGraphMetrics 的输出,包括计算开销非常高的有关 Skykey、RuleClasses 和 Aspects 的 SkyFrame 指标。将此标志设置为 false BuildGraphMetrics.rule_count 时,系统不会在 BEP 中填充宽高比字段。
--[no]experimental_run_bep_event_include_residue
默认值:“false”-
是否在运行 build 事件中包含命令行残留(可能包含该残留)。默认情况下,可能包含残留的运行命令构建事件中不包含残留。
标签:affects_outputs
--[no]experimental_stream_log_file_uploads
默认值:“false”-
将流式日志文件直接上传到远程存储空间,而不是将其写入磁盘。
标签:affects_outputs
--experimental_workspace_rules_log_file=<a path>
默认值:请参阅说明- 将某些 Workspace 规则事件作为分隔的 WorkspaceEvent proto 记录到此文件中。
--[no]generate_json_trace_profile
默认值:“auto”-
启用后,Bazel 会对 build 进行分析,并将 JSON 格式的配置文件写入输出库中的文件中。加载到 chrome://tracing 以查看个人资料。默认情况下,Bazel 会为所有类似构建的命令和查询写入配置文件。
标签:bazel_monitoring
--[no]heap_dump_on_oom
默认值:“false”-
是否在抛出 OOM 时手动输出堆转储(包括因达到 --gc_thrashing_limits 而手动输出 OOM)。转储将写入 <output_base>/<invocation_id>.heapdump.hprof。此选项可有效取代 -XX:+HeapDumpOnOutOfMemoryError,后者对手动 OOM 没有影响。
标签:bazel_monitoring
--jvm_heap_histogram_internal_object_pattern=<a valid Java regular expression>
默认值:“jdk\.internal\.vm\.Filler.+”- 用于替换 JDK21+ JVM 堆内存收集的匹配逻辑的正则表达式。我们依靠易失性内部 G1 GC 实现细节来获取干净的内存指标,此选项使我们能够适应该内部实现中的更改,而无需等待二进制文件版本。传递给 JDK Matcher.find() 。
--[no]legacy_important_outputs
默认值:“true”-
使用此方法可在 TargetComplete 事件中禁止生成旧版 important_outputs 字段。Bazel 到 ResultStore 的集成需要 important_outputs。
标签:affects_outputs
--logging=<0 <= an integer <= 6>
默认值:“3”-
日志记录级别。
标签:affects_outputs
--memory_profile=<a path>
默认值:请参阅说明-
如果设置了此字段,则在阶段结束时将内存使用情况数据写入指定的文件,并在构建结束时将稳定堆写入主日志。
标签:bazel_monitoring
--memory_profile_stable_heap_parameters=<integers, separated by a comma expected in pairs>
默认值:“1,0”-
调整构建结束时的内存配置文件对稳定堆的计算。应为偶数个整数(以英文逗号分隔)。在每个键值对中,第一个整数是要执行的 GC 数。每一对中的第二个整数是 GC 之间等待的秒数。例如:2、4、4,0 将执行 2 次暂停 4 秒的垃圾回收,然后是暂停 0 秒的 4 次垃圾回收
标签:bazel_monitoring
--profile=<a path>
默认值:请参阅说明-
如果设置,则对 Bazel 进行性能分析并将数据写入指定文件。使用 bazel analyze-profile 来分析该配置文件。
标签:bazel_monitoring
--[no]record_full_profiler_data
默认值:“false”-
默认情况下,Bazel 性能分析器只会记录大量快速事件(例如声明文件)的汇总数据。如果启用此选项,性能分析器将记录每个事件,从而获得更精确的分析数据,但性能损失却很大。选项仅在同时使用 --profile 时才有效。
标签:bazel_monitoring
--remote_print_execution_messages=<failure, success or all>
默认值:“失败”-
选择何时输出远程执行消息。有效值为 `failure`,表示仅在失败时输出, `success` 仅在成功时输出,`all` 表示始终输出。
标签:terminal_output
--[no]slim_profile
默认值:“true”-
如果 JSON 配置文件过大,则可以通过合并事件来缩减 JSON 配置文件的大小。
标签:bazel_monitoring
--starlark_cpu_profile=<a string>
默认值:“”-
将所有 Starlark 线程的 CPU 使用率的 pprof 配置文件写入指定文件。
标签:bazel_monitoring
--tool_tag=<a string>
默认值:“”-
此 Bazel 调用所属的工具名称。
标签:affects_outputs
、bazel_monitoring
- 累计使用了
--ui_event_filters=<Convert list of comma separated event kind to list of filters>
次 -
指定要在界面中显示的事件。您可以使用前导 +/- 在默认事件中添加或移除事件,也可以使用直接分配方式完全覆盖默认设置。支持的事件类型集包括 INFO、DEBUG、ERROR 等。
标签:terminal_output
- 用于为 Bazel 命令指定或更改常规输入(不属于其他类别)的选项:
--experimental_resolved_file_instead_of_workspace=<a string>
默认值:“”-
如果为非空文件,则读取指定的已解析文件,而非 WORKSPACE 文件
标签:changes_inputs
- 远程缓存和执行选项:
--experimental_circuit_breaker_strategy=<failure>
默认值:请参阅说明-
指定断路器要使用的策略。可用的策略为“失败”。如果选项的值无效,则不会设置此选项的行为。
标签:execution
--experimental_downloader_config=<a string>
默认值:请参阅说明- 指定用于配置远程下载程序的文件。此文件由行组成,每行都以指令(“allow”“block”或“rewrite”)开头,后跟主机名(适用于 `allow` 和 `block`)或两种模式(一个用于匹配,另一个用于用作替代网址),反向引用从 `$1` 开始。您可以为同一网址指定多个 `rewrite` 指令,在这种情况下,系统会返回多个网址。
--[no]experimental_guard_against_concurrent_changes
默认值:“false”- 如果关闭此设置,则在将操作上传到远程缓存之前,系统会禁止检查该操作的输入文件的时间。在某些情况下,Linux 内核可能会延迟写入文件,这可能会导致误报。
--[no]experimental_remote_cache_async
默认值:“false”- 如果为 true,远程缓存 I/O 将在后台进行,而不是作为生成过程的一部分进行。
--experimental_remote_cache_compression_threshold=<an integer>
默认值:“0”- 使用 zstd 压缩/解压缩所需的最小 blob 大小。此属性无效,除非设置了 --remote_cache_compression。
--[no]experimental_remote_cache_lease_extension
默认值:“false”- 如果设为 true,Bazel 将定期向远程缓存发送“FindMissingBlobs”调用,从而延长构建期间远程操作输出的租期。该频率取决于 `--experimental_remote_cache_ttl` 的值。 。
--experimental_remote_cache_ttl=<An immutable length of time.>
默认值:“3h”-
最近被引用后,远程缓存中 blob 中的保证最小 TTL,例如返回错误状态。Bazel 会根据 blob 的TTL(例如不会在增量构建中重复调用 GetActionResult。设置的值应略小于实际 TTL,因为服务器返回摘要与 Bazel 接收摘要之间存在时间差。
标签:execution
--experimental_remote_capture_corrupted_outputs=<a path>
默认值:请参阅说明- 用于捕获损坏输出的目录的路径。
--[no]experimental_remote_discard_merkle_trees
默认值:“true”- 如果此政策设为 true,在调用 GetActionResult() 和 Execute() 期间,系统会舍弃输入根 Merkle 树和关联输入映射的内存中副本。这样可以显著减少内存用量,但需要 Bazel 在远程缓存未命中并重试时重新计算内存用量。
--experimental_remote_downloader=<a string>
默认值:请参阅说明- 用作远程下载代理的 Remote Asset API 端点 URI。支持的架构包括 grpc、grpcs(启用了 TLS 的 grpc)和 unix(本地 UNIX 套接字)。如果未提供架构,则 Bazel 将默认为 grpc。请参阅:https://github.com/bazelbuild/remote-apis/blob/master/build/bazel/remote/asset/v1/remote_asset.proto 。
--[no]experimental_remote_downloader_local_fallback
默认值:“false”- 如果远程下载程序失败,是否回退到本地下载程序。
--[no]experimental_remote_execution_keepalive
默认值:“false”- 是否对远程执行调用使用 keepalive。
--experimental_remote_failure_rate_threshold=<an integer in 0-100 range>
默认值:“10”-
设置在特定时间窗口内允许的失败率数(以百分比表示),在此时间窗口之后,它将停止调用远程缓存/执行器。默认值为 10。将此值设为 0 意味着没有限制。
标签:execution
--experimental_remote_failure_window_interval=<An immutable length of time.>
默认值:“60 秒”-
计算远程请求的失败率的时间间隔。如果值为 0 或负数,则计算执行的完整时长。可以使用以下单位:天 (d)、小时 (h)、分钟 (m)、秒 (s) 和毫秒 (ms)。如果省略单位,系统会将该值解读为秒。
标签:execution
--[no]experimental_remote_mark_tool_inputs
默认值:“false”- 如果设置为 true,Bazel 会将输入标记为远程执行器的工具输入。这可用于实现远程永久性工作器。
--[no]experimental_remote_merkle_tree_cache
默认值:“false”- 如果设为 true,系统会记住 Merkle 树计算,以提高远程缓存命中检查速度。缓存的内存占用量由 --experimental_remote_merkle_tree_cache_size 控制。
--experimental_remote_merkle_tree_cache_size=<a long integer>
默认值:“1000”- 为了提高远程缓存命中检查速度而要记住的 Merkle 树的数量。尽管缓存会根据 Java 对软引用的处理自动进行删除,但如果设置得过高,仍然可能发生内存不足错误。如果设置为 0,则缓存大小不受限制。最佳值因项目规模而异。默认值为 1,000。
--experimental_remote_output_service=<a string>
默认值:请参阅说明- 远程输出服务端点的 HOST 或 HOST:PORT。支持的架构包括 grpc、grpcs(启用了 TLS 的 grpc)和 unix(本地 UNIX 套接字)。如果未提供架构,则 Bazel 将默认为 grpc。指定 grpc:// 或 unix: 架构以停用 TLS。
--experimental_remote_output_service_output_path_prefix=<a string>
默认值:“”- 存放由 --experimental_remote_output_service 管理的输出目录内容的路径。build 使用的实际输出目录将是此路径的后代,并由输出服务确定。
--[no]experimental_remote_require_cached
默认值:“false”- 如果此政策设为 true,系统会强制缓存所有可远程运行的操作,否则构建会失败。这对于排查非确定性问题非常有用,因为它可以检查应缓存的操作是否确实已缓存,而不会虚假地将新结果注入缓存。
--experimental_remote_scrubbing_config=<Converts to a Scrubber>
默认值:请参阅说明- 使用提供的配置文件启用远程缓存键擦除,该文件必须是文本格式的协议缓冲区(请参阅 src/main/protobuf/remote_scrubbing.proto)。 此功能旨在方便在不同平台上执行但针对同一平台的操作之间共享远程/磁盘缓存。使用它时应格外小心,因为不正确的设置可能会导致意外共享缓存条目,并导致构建错误。 擦除不会影响操作的执行方式,只会影响为检索或存储操作结果而计算其远程/磁盘缓存键的方式。已擦除的操作与远程执行不兼容,而是始终在本地执行。 修改清理配置不会使本地文件系统或内部缓存中的输出失效;需要干净 build 才能重新执行受影响的操作。 为了成功使用此功能,您可能需要设置自定义 --host_platform 以及 --experimental_platform_in_output_dir(将输出前缀标准化)和 --incompatible_strict_action_env(将环境变量标准化)。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto>
默认值:“auto”- 用于提取代码库的线程模式。如果设置为“off”,则不会使用任何工作器线程,并且 Repo 提取操作会重启。否则,使用虚拟工作器线程。
--[no]incompatible_remote_downloader_send_all_headers
默认值:“true”-
是否将一个多值标头的所有值(而不仅仅是第一个值)发送给远程下载程序。
标签:incompatible_change
--[no]incompatible_remote_output_paths_relative_to_input_root
默认值:“false”-
如果设置为 true,输出路径将相对于输入根目录(而非工作目录)。
标签:incompatible_change
--[no]remote_accept_cached
默认值:“true”- 是否接受远程缓存的操作结果。
--remote_build_event_upload=<all or minimal>
默认值:“minimal”- 如果设置为“all”,则 BEP 引用的所有本地输出都将上传到远程缓存。 如果设置为“minimal”,则 BEP 引用的本地输出不会上传到远程缓存,但对 BEP 使用者而言非常重要的文件(例如测试日志和时间配置文件)除外。bytestream:// 架构始终用于文件的 uri,即使它们在远程缓存中缺失。 默认为“minimal”。
--remote_bytestream_uri_prefix=<a string>
默认值:请参阅说明- 要在写入构建事件流的 bytestream:// URI 中使用的主机名和实例名称。使用代理执行构建时可以设置此选项,这会导致 --remote_executor 和 --remote_instance_name 的值不再与远程执行服务的规范名称对应。如果未设置,则默认为“${hostname}/${instance_name}”。
--remote_cache=<a string>
默认值:请参阅说明- 缓存端点的 URI。支持的架构包括 http、https、grpc、grpcs(启用了 TLS 的 grpc)和 unix(本地 UNIX 套接字)。如果未提供架构,则 Bazel 将默认为 grpc。指定 grpc://、http:// 或 unix: 架构以停用 TLS。请参阅 https://bazel.build/remote/caching 。
--[no]remote_cache_compression
默认值:“false”- 如果启用,则使用 zstd 压缩/解压缩 blob 的大小至少为 --experimental_remote_cache_compression_threshold 时。
- 累计使用了
--remote_cache_header=<a 'name=value' assignment>
次 - 指定将包含在缓存请求的标头:--remote_cache_header=Name=Value。通过多次指定标志可以传递多个标头。如果同一个名称有多个值,系统会将这些值转换为逗号分隔列表。
- 累计使用了
--remote_default_exec_properties=<a 'name=value' assignment>
次 -
如果执行平台尚未设置 exec_properties,请设置要用作远程执行平台的默认 exec 属性。
标签:affects_outputs
--remote_default_platform_properties=<a string>
默认值:“”- 如果执行平台尚未设置 remote_execution_properties,请设置要为远程执行 API 设置的默认平台属性。如果选择主机平台作为远程执行的执行平台,则也使用此值。
- 累计使用了
--remote_download_regex=<a valid Java regular expression>
次 -
强制下载路径与此模式匹配的远程构建输出,与 --remote_download_outputs 无关。您可以通过重复使用此标志来指定多种格式。
标签:affects_outputs
- 累计使用了
--remote_downloader_header=<a 'name=value' assignment>
次 - 指定将包含在远程下载程序请求的标头:--remote_downloader_header=Name=Value。通过多次指定标志可以传递多个标头。如果同一个名称有多个值,系统会将这些值转换为逗号分隔列表。
- 累计使用了
--remote_exec_header=<a 'name=value' assignment>
次 - 指定将包含在执行请求的标头:--remote_exec_header=Name=Value。通过多次指定标志可以传递多个标头。如果同一个名称有多个值,系统会将这些值转换为逗号分隔列表。
--remote_execution_priority=<an integer>
默认值:“0”- 要远程执行的操作的相对优先级。特定优先级值的语义取决于服务器。
--remote_executor=<a string>
默认值:请参阅说明- 远程执行端点的 HOST 或 HOST:PORT。支持的架构包括 grpc、grpcs(启用了 TLS 的 grpc)和 unix(本地 UNIX 套接字)。如果未提供架构,则 Bazel 将默认为 grpc。指定 grpc:// 或 unix: 架构以停用 TLS。
--remote_grpc_log=<a path>
默认值:请参阅说明- 如果已指定,则为记录 gRPC 调用相关详细信息的文件的路径。此日志由一系列序列化的 com.google.devtools.build.lib.remote.logging.RemoteExecutionLog.LogEntry protobuf 组成,其中每条消息都以一个 varint 为前缀,表示以下序列化 protobuf 消息的大小,由 LogEntry.writeDelimitedTo(OutputStream) 方法执行。
- 累计使用了
--remote_header=<a 'name=value' assignment>
次 - 指定将包含在请求的标头:--remote_header=Name=Value。通过多次指定标志可以传递多个标头。如果同一个名称有多个值,系统会将这些值转换为逗号分隔列表。
--remote_instance_name=<a string>
默认值:“”- 要在远程执行 API 中作为 instance_name 传递的值。
--[no]remote_local_fallback
默认值:“false”- 在远程执行失败时是否回退到独立的本地执行策略。
--remote_local_fallback_strategy=<a string>
默认值:“local”- 已弃用。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7480。
--remote_max_connections=<an integer>
默认值:“100”-
限制与远程缓存/执行器的并发连接数上限。默认值为 100。将此值设为 0 意味着没有限制。
对于 HTTP 远程缓存,一个 TCP 连接可以一次处理一个请求,因此 Bazel 最多可以发出 --remote_max_connections 个并发请求。
对于 gRPC 远程缓存/执行器,一个 gRPC 通道通常可以处理 100 多个并发请求,因此 Bazel 可以围绕 `--remote_max_connections * 100` 进行并发请求。
标签:host_machine_resource_optimizations
--remote_proxy=<a string>
默认值:请参阅说明- 通过代理连接到远程缓存。目前,此标志只能用于配置 Unix 网域套接字 (unix:/path/to/socket)。
--remote_result_cache_priority=<an integer>
默认值:“0”- 要存储在远程缓存中的远程操作的相对优先级。特定优先级值的语义取决于服务器。
--remote_retries=<an integer>
默认值:“5”- 尝试重试暂时性错误的次数上限。如果设置为 0,系统会停用重试。
--remote_retry_max_delay=<An immutable length of time.>
默认值:“5s”- 远程重试尝试之间的最长退避延迟时间。可以使用以下单位:天 (d)、小时 (h)、分钟 (m)、秒 (s) 和毫秒 (ms)。如果省略单位,系统会将该值解读为秒。
--remote_timeout=<An immutable length of time.>
默认值:“60 秒”- 等待远程执行和缓存调用的最长时间。对于 REST 缓存,这是指连接和读取超时。可以使用以下单位:天 (d)、小时 (h)、分钟 (m)、秒 (s) 和毫秒 (ms)。如果省略单位,系统会将该值解读为秒。
--[no]remote_upload_local_results
默认值:“true”- 是否将本地执行的操作结果上传到远程缓存(如果远程缓存支持该功能且用户有权这样做)。
--[no]remote_verify_downloads
默认值:“true”- 如果设置为 true,Bazel 将计算所有远程下载的哈希值,如果远程缓存的值与预期值不匹配,则舍弃这些值。 。
- 未以其他方式分类的其他选项:
- 累计使用了
--build_metadata=<a 'name=value' assignment>
次 -
要在构建事件中提供的自定义键值对。
标签:terminal_output
--color=<yes, no or auto>
默认值:“auto”- 使用终端控件为输出着色。
- 累计使用了
--config=<a string>
次 - 从 rc 文件中选择其他配置部分;对于每个 <command>,它还会从 <command>:<config> 中提取选项如果存在此类条款;如果任何 .rc 文件中都不存在此部分,Blaze 将失败并报错。它们等效的 config 部分和标志组合位于 tools/*.blazerc 配置文件中。
- 累计使用了
--credential_helper=<Path to a credential helper. It may be absolute, relative to the PATH environment variable, or %workspace%-relative. The path be optionally prefixed by a scope followed by an '='. The scope is a domain name, optionally with a single leading '*' wildcard component. A helper applies to URIs matching its scope, with more specific scopes preferred. If a helper has no scope, it applies to every URI.>
次 - 配置符合<a href="https://github.com/EngFlow/credential-helper-spec">凭据帮助程序规范</a>的凭据帮助程序用于检索授权凭据,以进行代码库提取、远程缓存和执行以及构建事件服务。 帮助程序提供的凭据优先于“--google_default_credentials”“--google_credentials”、“.netrc”文件或“repository_ctx.download()”和“repository_ctx.download_and_ extract()”的 auth 参数提供的凭据。 可以多次指定,以设置多个帮助程序。 有关说明,请参阅 https://blog.engflow.com/2023/10/09/configurations-bazels-credential-helper/。
--credential_helper_cache_duration=<An immutable length of time.>
默认值:“30m”- 如果凭据帮助程序在凭据过期时未提供凭据,则缓存该凭据帮助程序提供的凭据的默认时长。
--credential_helper_timeout=<An immutable length of time.>
默认值:“10s”- 配置凭据帮助程序的超时。 凭据帮助程序未能在此超时时间内做出响应,会导致调用失败。
--curses=<yes, no or auto>
默认值:“auto”- 使用终端光标控件将滚动输出最小化。
--disk_cache=<a path>
默认值:请参阅说明- 指向 Bazel 可在其中读取和写入操作及操作输出的目录的路径。如果该目录不存在,系统将会创建该目录。
--[no]enable_platform_specific_config
默认值:“false”- 如果为 true,Bazel 会从 bazelrc 文件中提取主机操作系统专用配置行。例如,如果主机操作系统是 Linux,并且您运行了 bazel build,则 Bazel 会选择以 build:linux 开头的行。支持的操作系统标识符包括 linux、macos、windows、freebsd 和 openbsd。启用此标志相当于在 Linux 上使用 --config=linux,在 Windows 上使用 --config=windows,等等。 。
--experimental_disk_cache_max_size=<a size in bytes, optionally followed by a K, M, G or T multiplier>
默认值:“0”- 尚不能使用。
--[no]experimental_rule_extension_api
默认值:“false”-
启用实验性规则扩展 API 和子规则 API
标签:loading_and_analysis
、experimental
--[no]experimental_windows_watchfs
默认值:“false”- 如果为 true,则会启用对 --watchfs 的实验性 Windows 支持。否则,--watchfsis 在 Windows 上是非操作。请务必同时启用 --watchfs。
--google_auth_scopes=<comma-separated list of options>
默认值:“https://www.googleapis.com/auth/cloud-platform”- 以英文逗号分隔的 Google Cloud 身份验证范围列表。
--google_credentials=<a string>
默认值:请参阅说明- 指定要从中获取身份验证凭据的文件。如需了解详情,请参阅 https://cloud.google.com/docs/authentication。
--[no]google_default_credentials
默认值:“false”- 是否使用“Google 应用默认凭据”进行身份验证。如需了解详情,请参阅 https://cloud.google.com/docs/authentication。默认处于停用状态。
--grpc_keepalive_time=<An immutable length of time.>
默认值:请参阅说明- 为传出 gRPC 连接配置 keep-alive ping。如果设置了此值,则当对连接执行读取操作这么长时间后,但仅当至少有一个待处理的 gRPC 调用时,Bazel 才会发送 ping。时间被视为秒;将值设置在一秒以内是错误的。持久连接 ping 默认情况下处于停用状态。在启用此设置前,您应与服务所有者进行协调。例如,要将此标志的值设置为 30 秒,应该按如下格式完成:--grpc_keepalive_time=30s 。
--grpc_keepalive_timeout=<An immutable length of time.>
默认值:“20 秒”- 为传出 gRPC 连接配置 keep-alive 超时。如果使用 --grpc_keepalive_time 启用 keep-alive ping,那么如果 Bazel 在这段时间后未收到 ping 回复,则连接会超时。时间被视为秒;将值设置在一秒以内是错误的。如果持久连接 ping 处于停用状态,系统会忽略此设置。
--[no]incompatible_disable_non_executable_java_binary
默认值:“false”-
如果为 true,则 java_binary 始终可执行。移除了 create_executable 属性。
标签:loading_and_analysis
、incompatible_change
--invocation_id=<a UUID>
默认值:“”-
所运行命令的唯一标识符(采用 UUID 格式)。如果明确指定的唯一性,必须由调用方确保。UUID 将输出到 stderr、BEP 和远程执行协议。
标签:bazel_monitoring
、bazel_internal_configuration
- 累计使用了
--override_repository=<an equals-separated mapping of repository name to path>
次 - 使用 <repository name>=<path> 形式的本地路径替换仓库。如果指定的路径是绝对路径,则按原样使用它。如果给定路径是相对路径,则该路径相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录(“bazel info workspace”的输出)。如果给定路径为空,则移除之前的所有替换项。
--[no]progress_in_terminal_title
默认值:“false”- 在终端标题中显示命令进度。这对于了解有多个终端标签页时 bazel 执行的操作非常有用。
--[no]show_progress
默认值:“true”- 在构建期间显示进度消息。
--show_progress_rate_limit=<a double>
默认值:“0.2”- 输出中进度消息之间的最短时间(以秒为单位)。
--[no]show_timestamps
默认值:“false”- 在消息中包含时间戳
--tls_certificate=<a string>
默认值:请参阅说明- 指定受信任可以对服务器证书签名的 TLS 证书的路径。
--tls_client_certificate=<a string>
默认值:请参阅说明- 指定要使用的 TLS 客户端证书;您还需要提供客户端密钥才能启用客户端身份验证。
--tls_client_key=<a string>
默认值:请参阅说明- 指定要使用的 TLS 客户端密钥;您还需要提供客户端证书才能启用客户端身份验证。
--ui_actions_shown=<an integer>
默认值:“8”-
详细进度条中显示的并发操作数;每项操作都单独成行进度条始终显示至少一个 1,所有小于 1 的数字都会映射到 1。
标签:terminal_output
--[no]watchfs
默认值:“false”- 在 Linux/macOS 上:如果为 true,bazel 会尝试使用操作系统的文件监控服务进行本地更改,而不是扫描每个文件以查看是否有更改。在 Windows 上:此标志当前是一个非操作,但可与 --experimental_windows_watchfs 结合使用启用。在任何操作系统上:如果您的工作区位于网络文件系统中,而文件是在远程计算机上编辑的,则行为是未定义的。
Analyze-profile 选项
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names
默认值:“true”-
无运维。
标签:loading_and_analysis
- 影响日志记录的详细程度、格式或位置的选项:
--dump=<text or raw>
[-d
] 默认值:参见说明-
以直观易懂的“文本”格式输出完整的配置文件数据转储或便于脚本处理的“原始”格式。
标签:bazel_monitoring
Aquery 选项
从 build 继承所有选项。
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names
默认值:“true”-
无运维。
标签:loading_and_analysis
- 与查询输出和语义相关的选项:
--aspect_deps=<off, conservative or precise>
默认值:“保守”-
当输出格式为 {xml,proto,record} 之一时,如何解析切面依赖项。“关闭”表示没有解析切面依赖项,“保守型”(默认值)表示添加所有声明的切面依赖项,无论是否为它们提供直接依赖项规则类“确切”表示在给定直接依赖项的规则类的情况下,仅添加可能处于活动状态的切面。请注意,精确模式需要加载其他软件包才能评估单个目标,因此其速度比其他模式慢。另请注意,即使是精确模式,也不是完全精确:是否计算切面的决定是在分析阶段确定的,分析阶段不会在“bazel 查询”期间运行。
标签:build_file_semantics
--[no]consistent_labels
默认值:“false”-
启用后,每个查询命令都会发出标签,就像 Starlark <code>str</code> 发出的标签一样。函数应用于某个<code>标签</code>实例。这对于需要匹配不同查询命令的输出和/或规则发出的标签匹配的工具非常有用。如果未启用,输出格式化程序可以自由发出明显的代码库名称(相对于主代码库),使输出更易于阅读。
标签:terminal_output
--[no]experimental_explicit_aspects
默认值:“false”-
aquery、cquery:是否在输出中包含切面生成的操作。query: no-op(始终遵循各方面)。
标签:terminal_output
--[no]graph:factored
默认值:“true”-
如果为 true,则图表将发出“因式分解”,即拓扑等价节点将合并在一起,其标签将串联。此选项仅适用于 --output=graph。
标签:terminal_output
--graph:node_limit=<an integer>
默认值:“512”-
输出中图表节点的标签字符串的最大长度。较长的标签将被截断;-1 表示不截断。此选项仅适用于 --output=graph。
标签:terminal_output
--[no]implicit_deps
默认值:“true”-
启用后,隐式依赖项将包含在执行查询的依赖关系图中。隐式依赖项是指未在 BUILD 文件中明确指定但通过 bazel 添加的依赖项。对于 cquery,此选项控制对已解析的工具链的过滤。
标签:build_file_semantics
--[no]include_artifacts
默认值:“true”-
包括输出中操作输入和输出的名称(可能较大)。
标签:terminal_output
--[no]include_aspects
默认值:“true”-
aquery、cquery:是否在输出中包含切面生成的操作。query: no-op(始终遵循各方面)。
标签:terminal_output
--[no]include_commandline
默认值:“true”-
在输出(可能较大)中包含操作命令行的内容。
标签:terminal_output
--[no]include_file_write_contents
默认值:“false”-
包含 FileWrite、SourceSymlinkManifest 和 RepoMappingManifest 操作的文件内容(可能较大)。
标签:terminal_output
--[no]include_param_files
默认值:“false”-
添加命令中使用的参数文件(可能较大)的内容。注意:启用此标志会自动启用 --include_commandline 标志。
标签:terminal_output
--[no]include_scheduling_dependencies
默认值:“false”-
包括操作的调度依赖项(可能较大)的名称。只有在同时设置了 --include_artifacts 时才会生效。
标签:terminal_output
--[no]incompatible_package_group_includes_double_slash
默认值:“true”-
启用后,在输出 package_group 的 `packages` 属性时,前导 `//` 将不会省略。
标签:terminal_output
、incompatible_change
--[no]infer_universe_scope
默认值:“false”-
如果设置了“--universe_scope”,则系统会将“--universe_scope”的值推断为查询表达式中的唯一目标模式列表。请注意,为使用 universe 作用域函数(例如“allrdeps”)的查询表达式推断出的 --universe_scope 值可能不是您想要的,因此仅当您知道自己在做什么时,才应该使用此选项。如需了解详情和示例,请参阅 https://bazel.build/reference/query#sky-query。如果设置了 --universe_scope,则系统会忽略此选项的值。注意:此选项仅适用于 `query`(即 `cquery`)。
标签:loading_and_analysis
--[no]line_terminator_null
默认值:“false”-
每种格式是否以 \0 而非换行符结尾。
标签:terminal_output
--[no]nodep_deps
默认值:“true”-
如果启用,则依赖于“nodep”属性将包含到运行查询的依赖关系图中。“nodep”的一个常见示例属性为“visibility”。运行并解析“info build-language”的输出,以了解所有“nodep”所有属性
标签:build_file_semantics
--output=<a string>
默认值:“text”-
输出 aquery 结果的格式。允许使用的 aquery 值为:text、textproto、proto、streamed_proto 和 jsonproto。
标签:terminal_output
--[no]proto:default_values
默认值:“true”-
如果为 true,则会包含 BUILD 文件中未明确指定值的属性;否则会被省略。此选项适用于 --output=proto
标签:terminal_output
--[no]proto:definition_stack
默认值:“false”-
填充 definition_stack proto 字段,该字段会在定义规则类时为每个规则实例记录 Starlark 调用堆栈。
标签:terminal_output
--[no]proto:flatten_selects
默认值:“true”-
启用后,select() 创建的可配置属性会扁平化。对于列表类型,展平表示是一个正好包含选择映射的每个值一次的列表。标量类型会扁平化为 null。
标签:build_file_semantics
--[no]proto:include_attribute_source_aspects
默认值:“false”-
使用属性的来源方面填充每个属性的 source_aspect_name proto 字段(如果不是,则为空字符串)。
标签:terminal_output
--[no]proto:include_synthetic_attribute_hash
默认值:“false”-
是否计算和填充 $internal_attr_hash 属性。
标签:terminal_output
--[no]proto:instantiation_stack
默认值:“false”-
填充每条规则的实例化调用堆栈。请注意,这需要堆栈存在
标签:terminal_output
--[no]proto:locations
默认值:“true”-
是否在 proto 输出中输出位置信息。
标签:terminal_output
--proto:output_rule_attrs=<comma-separated list of options>
默认值:“全部”-
要包含在输出中的属性的列表(以英文逗号分隔)。默认值为所有属性。设置为空字符串即可不输出任何属性。此选项适用于 --output=proto。
标签:terminal_output
--[no]proto:rule_inputs_and_outputs
默认值:“true”-
是否填充 rule_input 和 rule_output 字段。
标签:terminal_output
--query_file=<a string>
默认值:“”-
如果已设置,查询将从此处命名的文件(而不是命令行)中读取查询。在此处指定文件和命令行查询都是错误的。
标签:changes_inputs
--[no]relative_locations
默认值:“false”-
如果为 true,BUILD 文件在 xml 和 proto 输出中的位置是相对的。默认情况下,位置输出为绝对路径,并且不同机器之间不会保持一致。您可以将此选项设置为 true,以便在不同机器上获得一致的结果。
标签:terminal_output
--[no]skyframe_state
默认值:“false”-
在不执行额外分析的情况下,从 Skyframe 转储当前操作图。注意:目前不支持使用 --skyframe_state 指定目标。此标志仅适用于 --output=proto 或 --output=textproto。
标签:terminal_output
--[no]tool_deps
默认值:“true”-
查询:如果停用,则依赖于“exec configuration”不会包含在运行查询的依赖关系图中。“exec configuration”依赖项边缘,例如来自任何“proto_library”的依赖项将规则应用于 Protocol Compiler,通常指向构建期间执行的工具,而不是同一“目标”的一部分计划。
Cquery:如果停用,则会从发现此已配置目标的顶级目标中过滤出跨执行转换的所有已配置目标。这意味着,如果顶级目标包含在目标配置中,则系统将仅返回同时在目标配置中已配置的目标。如果顶级目标采用 exec 配置,则只会返回 exec 配置的目标。此选项不会排除已解析的工具链。
标签:build_file_semantics
--universe_scope=<comma-separated list of options>
默认值:“”-
一组以英文逗号分隔的目标格式(加法和减法)。该查询可以在由指定目标的传递闭包定义的范围内执行。此选项用于 query 和 cquery 命令。
对于 cquery,此选项的输入是构建所有答案的目标,因此此选项可能会影响配置和转换。如果未指定此选项,则假定顶级目标是从查询表达式中解析的目标。注意:对于 cquery,如果无法使用顶级选项构建从查询表达式中解析的目标,则不指定此选项可能会导致构建中断。
标签:loading_and_analysis
- 用于控制构建执行的选项:
--[no]experimental_inprocess_symlink_creation
默认值:“false”-
是否发起直接文件系统调用以创建符号链接树
标签:loading_and_analysis
、execution
、experimental
--[no]experimental_persistent_aar_extractor
默认值:“false”-
使用工作器启用永久性 aar 提取器。
标签:execution
--[no]experimental_remotable_source_manifests
默认值:“false”-
是否将源清单操作设为远程
标签:loading_and_analysis
、execution
、experimental
--[no]experimental_split_coverage_postprocessing
默认值:“false”-
如果为 true,则 Bazel 将在新的生成对象中运行覆盖率后处理以进行测试。
标签:execution
--[no]experimental_strict_fileset_output
默认值:“false”-
如果启用此选项,文件集会将所有输出制品视为常规文件。它们不会遍历目录,也不会对符号链接敏感。
标签:execution
--[no]incompatible_modify_execution_info_additive
默认值:“false”-
启用后,传递多个 --modify_execution_info 标志是累加的。停用后,系统只会考虑最后一个标志。
标签:execution
、affects_outputs
、loading_and_analysis
、incompatible_change
- 累计使用了
--modify_execution_info=<regex=[+-]key,regex=[+-]key,...>
次 -
根据操作助记符在操作的执行信息中添加或移除键。仅适用于支持执行信息的操作。许多常见操作都支持执行信息,例如Genrule、CppCompile、Javac、StarlarkAction、TestRunner。指定多个值时,顺序很重要,因为许多正则表达式可能适用于同一个助记符。
语法:“regex=[+-]key,regex=[+-]key,...”。
示例:
'.*=+x,.*=-y,.*=+z'添加“x”和“z”并移除“y”from - 所有操作的执行信息。
“Genrule=+requires-x”添加“requires-x”所有 Genrule 操作的执行信息。
'(?!Genrule).*=-requires-x'移除了“requires-x”。
标签:execution
、affects_outputs
、loading_and_analysis
--persistent_android_dex_desugar
-
使用 worker 启用持久性 Android dex 和脱糖操作。
扩展为:
--internal_persistent_android_dex_desugar
--strategy=Desugar=worker
--strategy=DexBuilder=worker
标签:host_machine_resource_optimizations
、execution
--persistent_android_resource_processor
-
使用工作器启用永久性 Android 资源处理器。
扩展为:
--internal_persistent_busybox_tools
--strategy=AaptPackage=worker
--strategy=AndroidResourceParser=worker
--strategy=AndroidResourceValidator=worker
--strategy=AndroidResourceCompiler=worker
--strategy=RClassGenerator=worker
--strategy=AndroidResourceLink=worker
--strategy=AndroidAapt2=worker
--strategy=AndroidAssetMerger=worker
--strategy=AndroidResourceMerger=worker
--strategy=AndroidCompiledResourceMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker
--strategy=Aapt2Optimize=worker
--strategy=AARGenerator=worker
--strategy=ProcessDatabinding=worker
--strategy=GenerateDataBindingBaseClasses=worker
{17/
标签:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_dex_desugar
-
使用 worker 启用持久性多路复用 Android dex 和脱糖操作。
扩展为:
--persistent_android_dex_desugar
--internal_persistent_multiplex_android_dex_desugar
标签:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_resource_processor
-
使用工作器启用永久性多路复用 Android 资源处理器。
扩展为:
--persistent_android_resource_processor
--modify_execution_info=AaptPackage=+supports-multiplex-workers
--modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
--modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceCompiler=+supports-multiplex-workers
--modify_execution_info=RClassGenerator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceLink=+supports-multiplex-workers
--modify_execution_info=AndroidAapt2=+supports-multiplex-workers
--modify_execution_info=AndroidAssetMerger=+supports-multiplex-workers
--modify_execution_info=AndroidResourceMerger=+supports-multiplex-workers
--modify_execution_info=AndroidCompiledResourceMerger=+supports-multiplex-workers
--modify_execution_info=ManifestMerger=+supports-multiplex-workers
--modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=AARGenerator=+supports-multiplex-workers
标签:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_tools
-
启用持久性和多路复用 Android 工具(dex 处理、脱糖、资源处理)。
扩展为:
--internal_persistent_multiplex_busybox_tools
--persistent_multiplex_android_resource_processor
--persistent_multiplex_android_dex_desugar
标签:host_machine_resource_optimizations
、execution
--[no]use_target_platform_for_tests
默认值:“false”-
如果为 true,则 Bazel 将使用目标平台(而不是测试执行组)来运行测试。
标签:execution
- 用于配置用于执行操作执行的工具链的选项:
--android_compiler=<a string>
默认值:请参阅说明-
Android 目标编译器。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
--android_manifest_merger=<legacy, android or force_android>
默认值:“android”-
选择要用于 android_binary 规则的清单合并程序。用于帮助从旧版合并转换为 Android 清单合并的标志。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
--android_platforms=<a build target label>
默认值:“”-
设置 android_binary 目标使用的平台。如果指定了多个平台,则二进制文件为胖 APK,其中包含每个指定目标平台的原生二进制文件。
标签:changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_sdk=<a build target label>
默认值:“@bazel_tools//tools/android:sdk”-
指定用于构建 Android 应用的 Android SDK/平台。
标签:changes_inputs
、loading_and_analysis
、loses_incremental_state
--apple_crosstool_top=<a build target label>
默认值:“@bazel_tools//tools/cpp:toolchain"-
要在 Apple 和 Objc 规则及其依赖项中使用的 crosstool 软件包标签。
标签:loses_incremental_state
、changes_inputs
--cc_output_directory_tag=<a string>
默认值:“”-
指定要添加到配置目录的后缀。
标签:affects_outputs
--compiler=<a string>
默认值:请参阅说明-
用于编译目标的 C++ 编译器。
标签:loading_and_analysis
、execution
--coverage_output_generator=<a build target label>
默认值:“@bazel_tools//tools/test:lcov_merger”-
用于对原始覆盖率报表进行后处理的二进制文件的位置。目前,它必须是包含一个文件(即二进制文件)的文件组。默认值为“//tools/test:lcov_merger”。
标签:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_report_generator=<a build target label>
默认值:“@bazel_tools//tools/test:coverage_report_generator”-
用于生成覆盖率报告的二进制文件的位置。目前,它必须是包含一个文件(即二进制文件)的文件组。默认值为“//tools/test:coverage_report_generator”。
标签:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_support=<a build target label>
默认值:“@bazel_tools//tools/test:coverage_support”-
收集代码覆盖率的每个测试操作的输入中所需的支持文件的位置。默认值为“//tools/test:coverage_support”。
标签:changes_inputs
、affects_outputs
、loading_and_analysis
--custom_malloc=<a build target label>
默认值:请参阅说明-
指定自定义 malloc 实现。此设置会覆盖构建规则中的 malloc 属性。
标签:changes_inputs
、affects_outputs
- 累计使用了
--experimental_add_exec_constraints_to_targets=<a '<RegexFilter>=<label1>[,<label2>,...]' assignment>
次 -
以英文逗号分隔的正则表达式列表,每个可选表达式前缀为 -(负表达式),为以英文逗号分隔的限制条件值目标列表分配 (=)。如果某个目标与任何负表达式或至少一个正表达式匹配,系统将执行其工具链解析,就像它将约束值声明为执行约束一样。示例://demo,-test=@platforms//cpus:x86_64 will add 'x86_64'//demo 下除名称中包含“test”的目标之外的任何目标。
标签:loading_and_analysis
--[no]experimental_include_xcode_execution_requirements
默认值:“false”-
如果设置了“requires-xcode:{version}”,则添加一个执行要求如果 Xcode 版本有带连字符的标签,请同时添加“requires-xcode-label:{version_label}”执行要求。
标签:loses_incremental_state
、loading_and_analysis
、execution
--[no]experimental_prefer_mutual_xcode
默认值:“true”-
如果为 true,请使用本地和远程均可使用的最新 Xcode。如果为 false,或者没有相互可用的版本,则使用通过 xcode-select 选择的本地 Xcode 版本。
标签:loses_incremental_state
--extra_execution_platforms=<comma-separated list of options>
默认值:“”-
可作为执行平台来执行操作的平台。平台可以按确切目标指定,也可以指定为目标模式。这些平台将优先于 register_execution_platforms() 在 WORKSPACE 文件中声明的平台得到考虑。此选项只能设置一次;较晚的实例将覆盖较早的标志设置。
标签:execution
- 累计使用了
--extra_toolchains=<comma-separated list of options>
次 -
工具链解析期间要考虑的工具链规则。工具链可以按确切目标指定,也可以指定为目标模式。系统将优先考虑这些工具链,然后再考虑 register_toolchains() 在 WORKSPACE 文件中声明的工具链。
标签:affects_outputs
、changes_inputs
、loading_and_analysis
--grte_top=<a label>
默认值:请参阅说明-
指向已检入的 libc 库的标签。默认值由 Crosstool 工具链选择,您几乎永远不需要替换它。
标签:action_command_lines
、affects_outputs
--host_compiler=<a string>
默认值:请参阅说明-
空操作标志。将在未来的版本中移除。
标签:loading_and_analysis
、execution
--host_grte_top=<a label>
默认值:请参阅说明-
如果指定,此设置将覆盖 exec 配置的 libc 顶级目录 (--grte_top)。
标签:action_command_lines
、affects_outputs
--host_platform=<a build target label>
默认值:“@bazel_tools//tools:host_platform”-
描述主机系统的平台规则的标签。
标签:affects_outputs
、changes_inputs
、loading_and_analysis
--[no]incompatible_bazel_test_exec_run_under
默认值:“false”-
启用后,系统会显示“bazel test --run_under=//:runner”构建 "//:runner"在 exec 配置中指定。如果停用,它将构建“//:runner”。Bazel 在执行机器上执行测试,因此前者更加正确。这不会影响“bazel run”,后者始终会构建“`--run_under=//foo”。
标签:affects_outputs
、incompatible_change
--[no]incompatible_dont_enable_host_nonhost_crosstool_features
默认值:“true”-
如果为 true,Bazel 将不会启用“主机”和“非主机”功能(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7407)。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_enable_apple_toolchain_resolution
默认值:“false”-
使用工具链解析为 Apple 规则选择 Apple SDK(Starlark 和原生)
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_remove_legacy_whole_archive
默认值:“true”-
如果为 true,默认情况下,Bazel 不会将库依赖项关联为整个归档(有关迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/7362)。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_strip_executable_safely
默认值:“false”-
如果为 true,针对可执行文件的剥离操作将使用标志 -x,这不会破坏动态符号解析。
标签:action_command_lines
、incompatible_change
-
使用接口共享对象(如果工具链支持)。目前,所有 ELF 工具链都支持此设置。
标签:loading_and_analysis
、affects_outputs
、affects_outputs
--ios_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
指定用于构建 iOS 应用的 iOS SDK 版本。如果未指定,系统会使用“xcode_version”的默认 iOS SDK 版本。
标签:loses_incremental_state
--macos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
指定用于构建 macOS 应用的 macOS SDK 版本。如果未指定,系统会使用“xcode_version”中的默认 macOS SDK 版本。
标签:loses_incremental_state
--minimum_os_version=<a string>
默认值:请参阅说明-
编译针对的最低操作系统版本。
标签:loading_and_analysis
、affects_outputs
--platform_mappings=<a relative path>
默认值:“”-
映射文件的位置,用于描述未设置任何平台时要使用的平台,或在平台已存在时设置哪些标志。必须相对于主工作区根目录。默认值为“platform_mappings”(工作区根目录下的文件)。
标签:affects_outputs
、changes_inputs
、loading_and_analysis
、immutable
--platforms=<a build target label>
默认值:“”-
描述当前命令目标平台的平台规则的标签。
标签:affects_outputs
、changes_inputs
、loading_and_analysis
--python_path=<a string>
默认值:请参阅说明-
为了在目标平台上运行 Python 目标而调用的 Python 解释器的绝对路径。已弃用;已被 --incompatible_use_python_toolchains 停用。
标签:loading_and_analysis
、affects_outputs
--python_top=<a build target label>
默认值:请参阅说明-
py_runtime 的标签,表示为在目标平台上运行 Python 目标而调用的 Python 解释器。已弃用;已被 --incompatible_use_python_toolchains 停用。
标签:loading_and_analysis
、affects_outputs
--tvos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
指定用于构建 tvOS 应用的 tvOS SDK 版本。如果未指定,系统会使用“xcode_version”中的默认 tvOS SDK 版本。
标签:loses_incremental_state
--watchos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
指定用于构建 watchOS 应用的 watchOS SDK 版本。如果未指定,将使用“xcode_version”中的默认 watchOS SDK 版本。
标签:loses_incremental_state
--xcode_version=<a string>
默认值:请参阅说明-
如果指定,则使用指定版本的 Xcode 执行相关构建操作。如果未指定,则使用默认执行器版本的 Xcode。
标签:loses_incremental_state
--xcode_version_config=<a build target label>
默认值:“@bazel_tools//tools/cpp:host_xcodes”-
xcode_config 规则的标签,用于在 build 配置中选择 Xcode 版本。
标签:loses_incremental_state
、loading_and_analysis
- 用于控制命令输出的选项:
--[no]apple_generate_dsym
默认值:“false”-
是否生成调试符号 (.dSYM) 文件。
标签:affects_outputs
、action_command_lines
--[no]build_runfile_links
默认值:“true”-
如果为 true,则会为所有目标构建 runfiles 符号链接林。如果为 false,则仅在本地操作、测试或运行命令需要时编写这些代码。
标签:affects_outputs
--[no]build_runfile_manifests
默认值:“true”-
如果为 true,请为所有目标编写 runfiles 清单。如果为 false,请忽略它们。如果为 false,本地测试将无法运行。
标签:affects_outputs
--[no]build_test_dwp
默认值:“false”-
启用后,在采用 fission 静态构建 C++ 测试时,测试二进制文件的 .dwp 文件也会自动构建。
标签:loading_and_analysis
、affects_outputs
--cc_proto_library_header_suffixes=<comma-separated set of options>
默认值:“.pb.h”-
设置 cc_proto_library 创建的头文件的后缀。
标签:affects_outputs
、loading_and_analysis
--cc_proto_library_source_suffixes=<comma-separated set of options>
默认值:“.pb.cc”-
设置 cc_proto_library 创建的源文件的后缀。
标签:affects_outputs
、loading_and_analysis
--[no]experimental_proto_descriptor_sets_include_source_info
默认值:“false”-
针对 proto_library 中的备用 Java API 版本运行额外操作。
标签:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_save_feature_state
默认值:“false”-
将已启用和已请求功能的状态保存为编译输出。
标签:affects_outputs
、experimental
--fission=<a set of compilation modes>
默认值:“no”-
指定哪些编译模式对 C++ 编译和链接使用 fission。可以是 {'Fastbuild', 'dbg', 'opt'} 或特殊值“yes”的任意组合启用所有模式,选择“no”来停用所有模式。
标签:loading_and_analysis
、action_command_lines
、affects_outputs
--[no]incompatible_always_include_files_in_data
默认值:“true”-
如果为 true,原生规则会添加 <code>DefaultInfo.files</code>数据依赖项映射到其 runfile,这与 Starlark 规则 (https://bazel.build/extending/rules#runfiles_features_to_avoid) 的建议行为一致。
标签:affects_outputs
、incompatible_change
--[no]legacy_external_runfiles
默认值:“true”-
如果为 true,则除了 .runfiles/repo 之外,还可以在 .runfiles/wsname/external/repo 下为外部代码库构建 runfiles 符号链接林。
标签:affects_outputs
--[no]objc_generate_linkmap
默认值:“false”-
指定是否生成链接映射文件。
标签:affects_outputs
--[no]save_temps
默认值:“false”-
如果设置,则会保存 gcc 的临时输出。包括 .s 文件(汇编代码)、.i 文件(预处理的 C 语言)和 .ii 文件(预处理的 C++)。
标签:affects_outputs
- 可让用户配置预期输出并影响输出值(而不是其存在性)的选项:
- 累计使用了
--action_env=<a 'name=value' assignment with an optional value part>
次 -
指定可用于具有目标配置的操作的一组环境变量。变量可以按名称指定,在这种情况下,值将从调用环境中获取;也可以按 name=value 对指定,该值独立于调用环境设置。此选项可以多次使用;对于同一变量给出的选项,最近的胜出者、不同变量的选项累计。
标签:action_command_lines
--[no]android_databinding_use_androidx
默认值:“true”-
生成与 AndroidX 兼容的数据绑定文件。这仅适用于数据绑定 v2。此标志是一个空操作。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]android_databinding_use_v3_4_args
默认值:“true”-
使用带有 3.4.0 参数的 Android 数据绑定 v2。此标志是一个空操作。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--android_dynamic_mode=<off, default or fully>
默认值:“关闭”-
确定当 cc_binary 未明确创建共享库时,Android 规则的 C++ 依赖项是否会动态关联。“default”表示 bazel 将选择是否进行动态关联。“full”表示所有库都将动态关联。“关闭”表示在大多静态模式下链接所有库。
标签:affects_outputs
、loading_and_analysis
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency>
默认值:“alphabetical”-
设置传递给 Android 二进制文件的清单合并程序的清单的顺序。ALPHABETical 表示清单按相对于 execroot 的路径进行排序。ALPHABETical_BY_CONFIGURATION 表示清单按相对于输出目录中配置目录的路径进行排序。“DEPENDENCY(依赖项)”表示对清单进行排序,使每个库的清单排在其依赖项清单之前。
标签:action_command_lines
、execution
--[no]android_resource_shrinking
默认值:“false”-
为使用 ProGuard 的 android_binary APK 启用资源压缩。
标签:affects_outputs
、loading_and_analysis
--[no]build_python_zip
默认值:“auto”-
构建 Python 可执行 zip;在其他平台上关闭
标签:affects_outputs
- 累计使用了
--catalyst_cpus=<comma-separated list of options>
次 -
用于构建 Apple Catalyst 二进制文件的架构的逗号分隔列表。
标签:loses_incremental_state
、loading_and_analysis
--[no]collect_code_coverage
默认值:“false”-
如果指定,Bazel 将对代码进行插桩(尽可能使用离线插桩),并在测试期间收集覆盖率信息。只有与 --instrument_filter 匹配的目标会受到影响。通常,不应直接指定此选项 - 'bazel reach'命令。
标签:affects_outputs
--compilation_mode=<fastbuild, dbg or opt>
[-c
] 默认值:“Fastbuild”-
指定构建二进制文件的模式。值:“Fastbuild”“dbg”“opt”。
标签:affects_outputs
、action_command_lines
- 累计使用了
--conlyopt=<a string>
次 -
这是在编译 C 源文件时传递给 gcc 的附加选项。
标签:action_command_lines
、affects_outputs
- 累计使用了
--copt=<a string>
次 -
传递给 gcc 的其他选项。
标签:action_command_lines
、affects_outputs
--cpu=<a string>
默认值:“”-
目标 CPU。
标签:changes_inputs
、affects_outputs
--cs_fdo_absolute_path=<a string>
默认值:请参阅说明-
使用 CSFDO 配置文件信息优化编译。指定包含配置文件、原始或已编入索引的 LLVM 配置文件的 ZIP 文件的绝对路径名。
标签:affects_outputs
--cs_fdo_instrument=<a string>
默认值:请参阅说明-
使用上下文敏感 FDO 插桩生成二进制文件。使用 Clang/LLVM 编译器,它还接受将在运行时转储原始配置文件的目录名称。
标签:affects_outputs
--cs_fdo_profile=<a build target label>
默认值:请参阅说明-
cs_fdo_profile,表示要用于优化的上下文敏感配置文件。
标签:affects_outputs
- 累计使用了
--cxxopt=<a string>
次 -
编译 C++ 源文件时传递给 gcc 的附加选项。
标签:action_command_lines
、affects_outputs
- 累计使用了
--define=<a 'name=value' assignment>
次 -
每个 --define 选项都会指定对 build 变量的赋值。如果一个变量有多个值,以最后一个值为准。
标签:changes_inputs
、affects_outputs
--dynamic_mode=<off, default or fully>
默认值:“默认”-
确定是否会动态链接 C++ 二进制文件。“default”这意味着 Bazel 将选择是否进行动态关联。“full”表示所有库都将动态关联。“关闭”表示在大多静态模式下链接所有库。
标签:loading_and_analysis
、affects_outputs
--[no]enable_propeller_optimize_absolute_paths
默认值:“true”-
如果已设置,任何对推进器优化的绝对路径使用都会引发错误。
标签:affects_outputs
--[no]enable_remaining_fdo_absolute_paths
默认值:“true”-
如果已设置,任何对 FDO 使用绝对路径都会引发错误。
标签:affects_outputs
--[no]enable_runfiles
默认值:“auto”-
启用 runfiles 符号链接树;在 Windows 和其他平台上,此设置默认处于关闭状态。
标签:affects_outputs
- 累计使用了
--experimental_action_listener=<a build target label>
次 -
已弃用,取而代之的是切面。使用 action_listener 将 extra_action 附加到现有构建操作。
标签:execution
、experimental
--[no]experimental_android_compress_java_resources
默认值:“false”-
压缩 APK 中的 Java 资源
标签:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_android_databinding_v2
默认值:“true”-
使用 Android Databinding v2。此标志是一个空操作。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]experimental_android_resource_shrinking
默认值:“false”-
为使用 ProGuard 的 android_binary APK 启用资源压缩。
标签:affects_outputs
、loading_and_analysis
--[no]experimental_android_rewrite_dexes_with_rex
默认值:“false”-
使用 rex 工具重写 dex 文件
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]experimental_collect_code_coverage_for_generated_files
默认值:“false”-
如果已指定,Bazel 还会为生成的文件生成收集覆盖率信息。
标签:affects_outputs
--experimental_objc_fastbuild_options=<comma-separated list of options>
默认值:“-O0,-DDEBUG=1”-
将这些字符串用作 objc fastbuild 编译器选项。
标签:action_command_lines
--[no]experimental_omitfp
默认值:“false”-
如果为 true,则使用 libunwind 进行堆栈展开,并使用 -fomit-frame-pointer 和 -fasynchronous-unwind-tables 进行编译。
标签:action_command_lines
、affects_outputs
、experimental
--experimental_output_paths=<off, content or strip>
默认值:“关闭”-
使用哪种模型来确定在输出树规则中的什么位置写入输出,尤其是对于多平台 / 多配置 build。这是一项实验性功能。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/6526。Starlark 操作可以通过添加键“supports-path-mapping”来选择启用路径映射对“Execution_requirements”字典。
标签:loses_incremental_state
、bazel_internal_configuration
、affects_outputs
、execution
- 累计使用了
--experimental_override_name_platform_in_output_dir=<a 'label=value' assignment>
次 -
每个条目都应采用 label=value 格式,其中 label 代表平台, values 是要在输出路径中使用的所需简称。仅在 --experimental_platform_in_output_dir 为 true 时使用。具有最高命名优先级。
标签:affects_outputs
、experimental
--[no]experimental_platform_in_output_dir
默认值:“false”-
如果为 true,则输出目录名称(而非 CPU)将使用目标平台的简称。确切方案是实验性的,并且可能会发生变化:首先,在极少数情况下,--platforms 选项不只有一个值,而是使用 platform 选项的哈希值。接下来,如果-experimental_override_name_platform_in_output_dir 注册了当前平台的任何简称,则会使用该简称。然后,如果设置了 --experimental_use_platforms_in_output_dir_legacy_heuristic,使用基于当前平台标签的简称。最后,在万不得已时才使用平台选项的哈希值。
标签:affects_outputs
、experimental
--[no]experimental_use_llvm_covmap
默认值:“false”-
如果指定,则启用 collect_code_coverage 时,Bazel 将生成 llvm-cov 覆盖率地图信息,而不是 gcov。
标签:changes_inputs
、affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_use_platforms_in_output_dir_legacy_heuristic
默认值:“true”-
只有在建议的迁移或测试策略中使用此标志,请注意,启发法存在一些已知缺陷,建议改用仅依赖于 --experimental_override_name_platform_in_output_dir。
标签:affects_outputs
、experimental
--fat_apk_cpu=<comma-separated set of options>
默认值:“armeabi-v7a”-
设置此选项会启用胖 APK,其中包含所有指定目标架构的原生二进制文件,例如--fat_apk_cpu=x86,armeabi-v7a.如果指定了此标志,则对于 android_binary 规则的依赖项,--android_cpu 会被忽略。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
--fdo_instrument=<a string>
默认值:请参阅说明-
使用 FDO 插桩生成二进制文件。使用 Clang/LLVM 编译器,它还接受将在运行时转储原始配置文件的目录名称。
标签:affects_outputs
--fdo_optimize=<a string>
默认值:请参阅说明-
使用 FDO 配置文件信息来优化编译。指定包含 .gcda 文件树的 ZIP 文件、包含自动配置文件的 afdo 文件或 LLVM 配置文件的名称。此标志还接受指定为标签的文件(例如 `//foo/bar:file.afdo`,您可能需要向相应的软件包添加 `exports_files` 指令)和指向 `fdo_profile` 目标的标签。此标志将被“fdo_profile”规则取代。
标签:affects_outputs
--fdo_prefetch_hints=<a build target label>
默认值:请参阅说明-
使用缓存预提取提示。
标签:affects_outputs
--fdo_profile=<a build target label>
默认值:请参阅说明-
fdo_profile 表示要用于优化的配置文件。
标签:affects_outputs
- 累计使用了
--features=<a string>
次 -
默认情况下,将为目标配置中构建的目标启用或停用指定功能。指定 -<feature>即可停用此功能排除性功能始终会覆盖肯定功能。另请参阅 --host_features
标签:changes_inputs
、affects_outputs
--[no]force_pic
默认值:“false”-
启用后,所有 C++ 编译都会生成位置无关代码(“-fPIC”),链接会优先生成 PIC 预构建库而不是非 PIC 库,链接会生成与位置无关的可执行文件(“-pie”)。
标签:loading_and_analysis
、affects_outputs
- 累计使用了
--host_action_env=<a 'name=value' assignment with an optional value part>
次 -
指定一组环境变量,供具有执行配置的操作使用。变量可以按名称指定,在这种情况下,值将从调用环境中获取;也可以按 name=value 对指定,该值独立于调用环境设置。此选项可以多次使用;对于同一变量给出的选项,最近的胜出者、不同变量的选项累计。
标签:action_command_lines
--host_compilation_mode=<fastbuild, dbg or opt>
默认值:“opt”-
指定构建期间使用的工具将采用的模式。值:“Fastbuild”“dbg”“opt”。
标签:affects_outputs
、action_command_lines
- 累计使用了
--host_conlyopt=<a string>
次 -
在 exec 配置中编译 C(而非 C++)源文件时要传递到 C 编译器的附加选项。
标签:action_command_lines
、affects_outputs
- 累计使用了
--host_copt=<a string>
次 -
对于在 exec 配置中构建的工具,要传递给 C 编译器的其他选项。
标签:action_command_lines
、affects_outputs
--host_cpu=<a string>
默认值:“”-
主机 CPU。
标签:changes_inputs
、affects_outputs
- 累计使用了
--host_cxxopt=<a string>
次 -
对于在 exec 配置中构建的工具,要传递给 C++ 编译器的其他选项。
标签:action_command_lines
、affects_outputs
- 累计使用了
--host_features=<a string>
次 -
对于在 exec 配置中构建的目标,将默认启用或停用给定功能。指定 -<feature>即可停用此功能排除性功能始终会覆盖肯定功能。
标签:changes_inputs
、affects_outputs
--host_force_python=<PY2 or PY3>
默认值:请参阅说明-
替换 exec 配置的 Python 版本。可以是“PY2”或“PY3”
标签:loading_and_analysis
、affects_outputs
- 累计使用了
--host_linkopt=<a string>
次 -
链接 exec 配置中的工具时要传递给链接器的附加选项。
标签:action_command_lines
、affects_outputs
--host_macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
主机目标的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
标签:loses_incremental_state
- 累计使用了
--host_per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>
次 -
在 exec 配置中编译某些文件时,有选择地传递给 C/C++ 编译器的附加选项。此选项可以多次传递。语法: regex_filter@option_1,option_2,...,option_n。其中 regex_filter 代表包含和排除正则表达式模式的列表(另请参阅 --instrument_filter)。option_1 到 option_n 代表任意命令行选项。如果选项包含英文逗号,则必须使用反斜杠将其括住。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--host_per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 可将 -O0 命令行选项添加到 //foo/ 中除 bar.cc 之外的所有 cc 文件的 gcc 命令行中。
标签:action_command_lines
、affects_outputs
--[no]incompatible_auto_exec_groups
默认值:“false”-
启用后,系统会自动为规则使用的每个工具链创建执行组。为此,规则需要在其操作中指定“toolchain”参数。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/17134。
标签:affects_outputs
、incompatible_change
--[no]incompatible_merge_genfiles_directory
默认值:“true”-
如果为 true,则 genfiles 目录将放入 bin 目录。
标签:affects_outputs
、incompatible_change
--[no]instrument_test_targets
默认值:“false”-
启用覆盖率后,指定是否考虑检测测试规则。设置后,系统将对 --instrument_filter 包含的测试规则进行插桩测试。否则,始终会从覆盖率插桩中排除测试规则。
标签:affects_outputs
--instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>
默认值:“-/javatests[/:],-/test/java[/:]”-
启用覆盖率后,系统只会对名称包含在指定的基于正则表达式的过滤条件中的规则进行插桩。带有“-”前缀的规则排除。请注意,除非启用 --instrument_test_targets,否则只会对非测试规则进行插桩。
标签:affects_outputs
--ios_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
目标模拟器和设备的最低兼容 iOS 版本。如果未指定,则使用“ios_sdk_version”。
标签:loses_incremental_state
- 累计使用了
--ios_multi_cpus=<comma-separated list of options>
次 -
构建 ios_application 时要使用的架构列表(以英文逗号分隔)。最终会生成包含所有指定架构的通用二进制文件。
标签:loses_incremental_state
、loading_and_analysis
--[no]legacy_whole_archive
默认值:“true”-
已弃用,由 --incompatible_remove_legacy_whole_archive 取代(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7362)。开启此设置后,对具有 linkshared=True 且 linkstatic=True 或“-static”的 cc_binary 规则使用 --whole-archive在 linkopts 中设置这仅用于实现向后兼容性。更好的替代方案是,根据需要使用 alwayslink=1。
标签:action_command_lines
、affects_outputs
、deprecated
- 累计使用了
--linkopt=<a string>
次 -
链接时传递给 gcc 的其他选项。
标签:action_command_lines
、affects_outputs
- 累计使用了
--ltobackendopt=<a string>
次 -
传递给 LTO 后端步骤的附加选项(在 --features=thin_lto 下)。
标签:action_command_lines
、affects_outputs
- 累计使用了
--ltoindexopt=<a string>
次 -
传递给 LTO 索引步骤的附加选项(在 --features=thin_lto 下)。
标签:action_command_lines
、affects_outputs
- 累计使用了
--macos_cpus=<comma-separated list of options>
次 -
用于构建 Apple macOS 二进制文件的架构列表(以英文逗号分隔)。
标签:loses_incremental_state
、loading_and_analysis
--macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
目标的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
标签:loses_incremental_state
--memprof_profile=<a build target label>
默认值:请参阅说明-
使用 memprof 配置文件。
标签:affects_outputs
--[no]objc_debug_with_GLIBCXX
默认值:“false”-
如果已设置,并且编译模式设置为“dbg”,则定义 GLIBCXX_DEBUG、GLIBCXX_DEBUG_PEDANTIC 和 GLIBCPP_CONCEPT_CHECKS。
标签:action_command_lines
--[no]objc_enable_binary_stripping
默认值:“false”-
是否对链接的二进制文件执行符号和死代码剥离。如果同时指定了此标志和 --compile_mode=opt,将执行二进制文件剥离。
标签:action_command_lines
- 累计使用了
--objccopt=<a string>
次 -
编译 Objective-C/C++ 源文件时要传递给 gcc 的其他选项。
标签:action_command_lines
- 累计使用了
--per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>
次 -
其他选项,可在编译特定文件时有选择地传递给 gcc。此选项可以多次传递。语法: regex_filter@option_1,option_2,...,option_n。其中 regex_filter 代表包含和排除正则表达式模式的列表(另请参阅 --instrument_filter)。option_1 到 option_n 代表任意命令行选项。如果选项包含英文逗号,则必须使用反斜杠将其括住。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 将 -O0 命令行选项添加到 //foo/ 中除 bar.cc 之外的所有 cc 文件的 gcc 命令行中。
标签:action_command_lines
、affects_outputs
- 累计使用了
--per_file_ltobackendopt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>
次 -
在编译某些后端对象时,有选择地传递到 LTO 后端(在 --features=thin_lto 下)的其他选项。此选项可以多次传递。语法: regex_filter@option_1,option_2,...,option_n。其中,regex_filter 代表包含和排除正则表达式模式的列表。option_1 到 option_n 代表任意命令行选项。如果选项包含英文逗号,则必须使用反斜杠将其括住。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--per_file_ltobackendopt=//foo/.*\.o,-//foo/bar\.o@-O0 将 -O0 命令行选项添加到 //foo/ 中除 bar.o 之外的所有 o 文件的 LTO 后端命令行。
标签:action_command_lines
、affects_outputs
--platform_suffix=<a string>
默认值:请参阅说明-
指定要添加到配置目录的后缀。
标签:loses_incremental_state
、affects_outputs
、loading_and_analysis
--propeller_optimize=<a build target label>
默认值:请参阅说明-
使用 Propeller 配置文件信息来优化构建目标。一个推进器配置文件必须至少包含两个文件(一个 cc 配置文件和一个 ld 配置文件)中的一个。此标志接受 build 标签,该标签必须引用推进器配置文件输入文件。例如,在 a/b/BUILD:propeller_optimize( name = "propeller_profile", cc_profile = "propeller_cc_profile.txt", ld_profile = "propeller_ld_profile.txt",) 中,定义标签的 BUILD 文件必须添加到相应的软件包中,才能使这些文件对 Bazel 可见。选项必须按以下格式使用:--propeller_optimize=//a/b:propeller_profile
标签:action_command_lines
、affects_outputs
--propeller_optimize_absolute_cc_profile=<a string>
默认值:请参阅说明-
针对 Propeller 优化 build 的 cc_profile 文件的绝对路径名。
标签:affects_outputs
--propeller_optimize_absolute_ld_profile=<a string>
默认值:请参阅说明-
针对 Propeller 优化 build 的 ld_profile 文件的绝对路径名。
标签:affects_outputs
--run_under=<a prefix in front of command>
默认值:请参阅说明-
要在“test”的可执行文件之前插入的前缀和“run”命令。如果值为“foo -bar”,执行命令行为“test_binary -baz”,则最终命令行为“foo -bar test_binary -baz”。它也可以是可执行目标的标签。例如:'valgrind'、'strace'、'strace -c'、'valgrind --quiet --num-callers=20'、'//package:target'、'//package:target --options'。
标签:action_command_lines
-
如果为 true,包含相同功能的原生库将在不同目标之间共享
标签:loading_and_analysis
、affects_outputs
--[no]stamp
默认值:“false”-
使用日期、用户名、主机名、工作区信息等标记二进制文件。
标签:affects_outputs
--strip=<always, sometimes or never>
默认值:“有时”-
指定是否删除二进制文件和共享库(使用“-Wl,--strip-debug”)。“sometimes”的默认值表示在 iff --compile_mode=fastbuild 时进行剥离。
标签:affects_outputs
- 累计使用了
--stripopt=<a string>
次 -
生成“<name>.stripped”时传递给标签的其他选项二进制文件
标签:action_command_lines
、affects_outputs
- 累计使用了
--tvos_cpus=<comma-separated list of options>
次 -
用于构建 Apple tvOS 二进制文件的架构列表(以英文逗号分隔)。
标签:loses_incremental_state
、loading_and_analysis
--tvos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
目标模拟器和设备的最低兼容 tvOS 版本。如果未指定,则使用“tvos_sdk_version”。
标签:loses_incremental_state
- 累计使用了
--visionos_cpus=<comma-separated list of options>
次 -
用于构建 Apple visionOS 二进制文件的架构列表(以英文逗号分隔)。
标签:loses_incremental_state
、loading_and_analysis
- 累计使用了
--watchos_cpus=<comma-separated list of options>
次 -
一系列以英文逗号分隔的架构构建了 Apple WatchOS 二进制文件。
标签:loses_incremental_state
、loading_and_analysis
--watchos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
目标模拟器和设备的最低兼容 watchOS 版本。如果未指定,则使用“watchos_sdk_version”。
标签:loses_incremental_state
--xbinary_fdo=<a build target label>
默认值:请参阅说明-
使用 XbinaryFDO 配置文件信息优化编译。指定默认跨二进制配置文件的名称。当该选项与 --fdo_instrument/--fdo_optimize/--fdo_profile 一起使用时,这些选项将始终适用,就像从未指定 xbinary_fdo 一样。
标签:affects_outputs
- 影响 Bazel 强制执行有效构建输入的严格程度的选项(规则定义、标志组合等):
--[no]check_licenses
默认值:“false”-
检查并确保依赖软件包施加的许可限制与正在构建的目标的分发模式不冲突。默认情况下,系统不会检查许可。
标签:build_file_semantics
--[no]check_visibility
默认值:“true”-
如果此政策已停用,目标依赖项中的可见性错误会降级为警告。
标签:build_file_semantics
--[no]desugar_for_android
默认值:“true”-
是否在 dex 处理之前对 Java 8 字节码进行脱糖。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]desugar_java8_libs
默认值:“false”-
是否在旧版设备应用中包含支持的 Java 8 库。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]enforce_constraints
默认值:“true”-
检查每个目标兼容的环境,并报告错误(如有任何目标的依赖项不支持相同环境)
标签:build_file_semantics
--[no]experimental_check_desugar_deps
默认值:“true”-
是否在 Android 二进制文件级别仔细检查正确的脱糖。
标签:eagerness_to_exit
、loading_and_analysis
、experimental
--experimental_import_deps_checking=<a string>
默认值:请参阅说明-
空操作,仅为实现向后兼容而保留
标签:loading_and_analysis
--experimental_one_version_enforcement=<off, warning or error>
默认值:“关闭”-
启用后,强制规定 java_binary 规则在类路径上不能包含同一类文件的多个版本。此强制执行可能会破坏构建,或者导致警告。
标签:loading_and_analysis
--experimental_strict_java_deps=<off, warn, error, strict or default>
默认值:“默认”-
如果为 true,则检查 Java 目标是否明确将所有直接使用的目标声明为依赖项。
标签:build_file_semantics
、eagerness_to_exit
--[no]incompatible_check_testonly_for_output_files
默认值:“false”-
启用后,通过查询所生成的规则的 testonly 检查,检查 testonly 是否为输出文件的前提条件目标。这与可见性检查一致。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_check_visibility_for_toolchains
默认值:“false”-
如果启用,可见性检查也会应用于工具链实现。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_disable_native_android_rules
默认值:“false”-
启用后,系统将禁止直接使用原生 Android 规则。请使用 https://github.com/bazelbuild/rules_android 中的 Starlark Android 规则
标签:eagerness_to_exit
、incompatible_change
--[no]incompatible_disable_native_apple_binary_rule
默认值:“false”-
无运维。为了实现向后兼容性而保留在此处。
标签:eagerness_to_exit
、incompatible_change
--[no]incompatible_python_disable_py2
默认值:“true”-
如果为 true,使用 Python 2 设置会导致错误。这包括 python_version=PY2、srcs_version=PY2 和 srcs_version=PY2ONLY。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/15684。
标签:loading_and_analysis
、incompatible_change
--[no]one_version_enforcement_on_java_tests
默认值:“true”-
启用后,如果 experiment_one_version_enforcement 设置为非 NONE 值,则对 java_test 目标强制执行一个版本。您可以停用此标志,以提升增量测试性能,但代价是可能会遗漏潜在的单个版本违规行为。
标签:loading_and_analysis
--python_native_rules_allowlist=<a build target label>
默认值:请参阅说明-
强制执行 --incompatible_python_disallow_native_rules 时使用的许可名单(package_group 目标)。
标签:loading_and_analysis
--[no]strict_filesets
默认值:“false”-
如果启用此选项,系统会将跨越软件包边界的文件集报告为错误。
标签:build_file_semantics
、eagerness_to_exit
--strict_proto_deps=<off, warn, error, strict or default>
默认值:“error”-
除非 OFF,否则检查 proto_library 目标是否将所有直接使用的目标明确声明为依赖项。
标签:build_file_semantics
、eagerness_to_exit
、incompatible_change
--strict_public_imports=<off, warn, error, strict or default>
默认值:“关闭”-
除非 OFF,否则检查 proto_library 目标是否明确声明了“导入公共”中使用的所有目标导出的数据。
标签:build_file_semantics
、eagerness_to_exit
、incompatible_change
--[no]strict_system_includes
默认值:“false”-
如果为 true,则还需要声明通过系统包含路径 (-isystem) 找到的标头。
标签:loading_and_analysis
、eagerness_to_exit
- 累计使用了
--target_environment=<a build target label>
次 -
声明此构建的目标环境。必须是对“环境”的标签引用规则。如果指定,则所有顶级目标都必须与此环境兼容。
标签:changes_inputs
- 影响 build 签名输出的选项:
--apk_signing_method=<v1, v2, v1_v2 or v4>
默认值:“v1_v2”-
用于为 APK 签名的实现
标签:action_command_lines
、affects_outputs
、loading_and_analysis
--[no]device_debug_entitlements
默认值:“true”-
如果已设置,并且编译模式不是“opt”,则 objc 应用在签名时将包含调试权限。
标签:changes_inputs
--ios_signing_cert_name=<a string>
默认值:请参阅说明-
用于 iOS 签名的证书名称。如果未设置,系统将回退到使用配置文件。根据代码签名的手册页面 (SIGNING IDENTITIES),可以是证书的密钥链标识偏好设置或证书常用名的(子字符串)。
标签:action_command_lines
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_disallow_legacy_py_provider
默认值:“true”-
免运维,即将被移除。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_disallow_sdk_frameworks_attributes
默认值:“false”-
如果为 true,则禁止在 objc_library 和 objc_import 中使用 sdk_frameworks 和 weak_sdk_frameworks 属性。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_objc_alwayslink_by_default
默认值:“false”-
如果为 true,则将 objc_library 和 objc_import 中的始终链接属性的默认值设为 true。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_python_disallow_native_rules
默认值:“false”-
如果为 true,使用内置的 py_* 规则时会出错;应改用 rule_python 规则。如需了解详情和迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/17773。
标签:loading_and_analysis
、incompatible_change
- 用于控制测试环境或测试运行程序行为的选项:
--[no]allow_analysis_failures
默认值:“false”-
如果为 true,规则目标的分析失败将导致目标传播包含错误说明的 AnalysisFailureInfo 实例,而不是导致构建失败。
标签:loading_and_analysis
、experimental
--analysis_testing_deps_limit=<an integer>
默认值:“2000”-
通过具有 for_analysis_testing 配置转换的规则属性设置传递依赖项的数量上限。超出此限制将导致规则错误。
标签:loading_and_analysis
--[no]break_build_on_parallel_dex2oat_failure
默认值:“false”-
如果 dex2oat 操作失败,则会导致构建中断,而不是在测试运行时执行 dex2oat。
标签:loading_and_analysis
、experimental
- 累计使用了
--default_test_resources=<a resource name followed by equal and 1 float or 4 float, e.g memory=10,30,60,100>
次 - 替换测试的默认资源量。预期格式为 <resource>=<value>。如果将 <value> 指定为单个正数它会覆盖所有测试尺寸的默认资源如果指定了 4 个以英文逗号分隔的数字,它们将分别覆盖小测试、中测试、大测试大小的资源量。值也可以是 HOST_RAM/HOST_CPU,可以选择后跟 [-|*]<float>(例如 memory=HOST_RAM*.1,HOST_RAM*.2,HOST_RAM*.3,HOST_RAM*.4)。此标志指定的默认测试资源会被标记中指定的显式资源替换。
--[no]experimental_android_use_parallel_dex2oat
默认值:“false”-
同时使用 dex2oat 来可能加快 android_test。
标签:loading_and_analysis
、host_machine_resource_optimizations
、experimental
--[no]ios_memleaks
默认值:“false”-
在 ios_test 目标中启用内存泄漏检查功能。
标签:action_command_lines
--ios_simulator_device=<a string>
默认值:请参阅说明-
在模拟器中运行 iOS 应用时要模拟的设备,例如“iPhone 6”。您可以通过运行“xcrun simctl list devicetypes”来获取设备列表运行模拟器的机器上。
标签:test_runner
--ios_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
运行或测试时要在模拟器上运行的 iOS 版本。对于 ios_test 规则,如果在规则中指定了目标设备,系统会忽略此字段。
标签:test_runner
- 累计使用了
--runs_per_test=<a positive integer or test_regex@runs. This flag may be passed more than once>
次 - 指定每个测试的运行次数。如果其中任何一个尝试由于任何原因失败,则整个测试都被视为失败。通常,指定的值只是一个整数。示例:--runs_per_test=3 将运行所有测试 3 次。备用语法:regex_filter@runs_per_test。其中,runs_per_test 代表整数值,regex_filter 代表包含和排除正则表达式模式的列表(另请参阅 --instrument_filter)。示例:--runs_per_test=//foo/.*,-//foo/bar/.*@3 运行 //foo/ 中的所有测试(foo/bar 下的测试除外)运行三次。此选项可以多次传递。最近传递的匹配的参数优先。如果没有任何匹配项,则测试仅运行一次。
- 累计使用了
--test_env=<a 'name=value' assignment with an optional value part>
次 -
指定要注入测试运行程序环境的其他环境变量。变量可以按名称指定,在这种情况下,其值将从 Bazel 客户端环境中读取,也可以通过“名称=值”对读取。此选项可以多次用于指定多个变量。仅供“bazel 测试”使用命令。
标签:test_runner
--test_timeout=<a single integer or comma-separated list of 4 integers>
默认值:“-1”- 覆盖测试超时的默认测试超时值(以秒为单位)。如果指定单个正整数值,它将覆盖所有类别。如果指定了 4 个以英文逗号分隔的整数,它们将替换短时、中等长度、长时和永恒(按此顺序)的超时。在这两种形式中,值为 -1 都会指示 blaze 针对该类别使用默认超时。
--[no]zip_undeclared_test_outputs
默认值:“true”-
如果值为 true,则未声明的测试输出将归档为一个 ZIP 文件。
标签:test_runner
- 触发构建时间优化的选项:
--[no]experimental_filter_library_jar_with_program_jar
默认值:“false”-
过滤 ProGuard ProgramJar,移除 LibraryJar 中也存在的任何类。
标签:action_command_lines
--[no]experimental_inmemory_dotd_files
默认值:“true”-
启用后,C++ .d 文件将直接从远程构建节点在内存中传递,而不是写入磁盘。
标签:loading_and_analysis
、execution
、affects_outputs
、experimental
--[no]experimental_inmemory_jdeps_files
默认值:“true”-
启用后,通过 Java 编译生成的依赖项 (.jdeps) 文件将直接从远程构建节点在内存中传递,而不是写入磁盘。
标签:loading_and_analysis
、execution
、affects_outputs
、experimental
--[no]experimental_retain_test_configuration_across_testonly
默认值:“false”-
启用后,--trim_test_configuration 不会修剪标记为 testonly=1 的规则的测试配置。这是为了在非测试规则依赖于 cc_test 规则时减少操作冲突问题。如果 --trim_test_configuration 为 false,则不会产生任何影响。
标签:loading_and_analysis
、loses_incremental_state
--[no]experimental_starlark_cc_import
默认值:“false”-
启用后,即可使用 Starlark 版本的 cc_import。
标签:loading_and_analysis
、experimental
--[no]experimental_unsupported_and_brittle_include_scanning
默认值:“false”-
是否通过解析输入文件中的 #include 行将输入范围缩小到 C/C++ 编译。这可以通过减小编译输入树的大小来提升性能和增量。不过,这也可能会导致构建中断,因为 include 扫描程序未完全实现 C 预处理器语义。具体来说,它不理解动态 #include 指令,并且会忽略预处理器条件逻辑。使用时需自行承担风险。用户提交的与此标志相关的所有问题都将被关闭。
标签:loading_and_analysis
、execution
、changes_inputs
--[no]incremental_dexing
默认值:“true”-
为每个 Jar 文件单独执行 dex 处理的大部分工作。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]objc_use_dotd_pruning
默认值:“true”-
如果已设置,Clang 发出的 .d 文件将用于剪除传递到 objc 编译的输入集。
标签:changes_inputs
、loading_and_analysis
--[no]process_headers_in_dependencies
默认值:“false”-
构建目标 //a:a 时,处理 //a:a 所依赖的所有目标中的标头(如果为工具链启用了标头处理)。
标签:execution
--[no]trim_test_configuration
默认值:“true”-
启用后,与测试相关的选项将会被清除,位于 build 顶层下方。当此标志处于启用状态时,无法将测试构建为非测试规则的依赖项,但对测试相关选项的更改不会导致系统重新分析非测试规则。
标签:loading_and_analysis
、loses_incremental_state
- 影响日志记录的详细程度、格式或位置的选项:
--toolchain_resolution_debug=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>
默认值:“-.*”-
在工具链解析期间输出调试信息。该标志采用正则表达式,而正则表达式会针对工具链类型和特定目标进行检查,以判断要调试哪个目标。可以使用逗号分隔多个正则表达式,然后分别检查每个正则表达式。注意:此标志的输出非常复杂,可能只对熟练掌握工具链解决方案的专家有用。
标签:terminal_output
- 用于为 Bazel 命令指定或更改常规输入(不属于其他类别)的选项:
- 累计使用了
--flag_alias=<a 'name=value' flag alias>
次 -
设置 Starlark 标志的简写名称。它需要一个格式为“<键>=<值>”的键值对作为参数。
标签:changes_inputs
--[no]incompatible_default_to_explicit_init_py
默认值:“false”-
此标志会更改默认行为,以便系统不再在 Python 目标的 runfile 中自动创建 __init__.py 文件。确切地说,是在 py_binary 或 py_test 目标将 legacy_create_init 设置为“auto”时(默认值),当且仅当设置了此标志时,才会被视为 false。请参阅 https://github.com/bazelbuild/bazel/issues/10076。
标签:affects_outputs
、incompatible_change
--[no]incompatible_py2_outputs_are_suffixed
默认值:“true”-
如果为 true,则在 Python 2 配置中构建的目标将出现在包含后缀“-py2”的输出根下,而为 Python 3 构建的目标将显示在没有 Python 相关后缀的根中。这意味着 `bazel-bin` 便捷符号链接将指向 Python 3 目标,而不是 Python 2。如果您启用此选项,也建议启用 `--incompatible_py3_is_default`。
标签:affects_outputs
、incompatible_change
--[no]incompatible_py3_is_default
默认值:“true”-
如果为 true,则未设置其 `python_version`(或 `default_python_version`)属性的 `py_binary` 和 `py_test` 目标将默认为 PY3,而不是 PY2。如果您设置了此标志,也建议设置 `--incompatible_py2_outputs_are_suffixed`。
标签:loading_and_analysis
、affects_outputs
、incompatible_change
--[no]incompatible_use_python_toolchains
默认值:“true”-
如果设置为 true,可执行原生 Python 规则将使用 Python 工具链指定的 Python 运行时,而不是由旧版标志(如 --python_top)指定的运行时。
标签:loading_and_analysis
、incompatible_change
--python_version=<PY2 or PY3>
默认值:请参阅说明-
Python 主要版本模式,即“PY2”或“PY3”。请注意,这会被“py_binary”和“py_test”目标替换(即使它们未明确指定版本),因此通常没有太多理由提供此标志。
标签:loading_and_analysis
、affects_outputs
- 未以其他方式分类的其他选项:
--[no]cache_test_results
[-t
] 默认值:“自动”- 如果设置为“auto”,则当且仅当满足以下条件时,Bazel 才会重新运行测试:(1) Bazel 检测到了测试或其依赖项的变化,(2) 测试已被标记为外部,(3) 使用 --runs_per_test 请求了多次测试运行,或(4) 之前测试失败。如果设置为“yes”,则 Bazel 会缓存所有测试结果,但标记为外部的测试除外。如果设置为“no”,则 Bazel 不会缓存任何测试结果。
--[no]experimental_cancel_concurrent_tests
默认值:“false”-
如果为 true,Blaze 将在第一次成功运行时取消同时运行的测试。这只能与 --runs_per_test_detects_flakes 结合使用。
标签:affects_outputs
、loading_and_analysis
--[no]experimental_fetch_all_coverage_outputs
默认值:“false”-
如果为 true,则 Bazel 会在覆盖率运行期间为每次测试提取整个覆盖率数据目录。
标签:affects_outputs
、loading_and_analysis
--[no]experimental_generate_llvm_lcov
默认值:“false”-
如果值为 true,则针对 Clang 的覆盖率将生成 LCOV 报告。
标签:affects_outputs
、loading_and_analysis
--[no]experimental_j2objc_header_map
默认值:“true”- 是否在 J2ObjC 转译的同时生成 J2ObjC 标头映射。
--[no]experimental_j2objc_shorter_header_path
默认值:“false”-
是否使用更短的标头路径(使用“_ios”而不是“_j2objc”)生成。
标签:affects_outputs
--experimental_java_classpath=<off, javabuilder or bazel>
默认值:“javabuilder”- 为 Java 编译启用缩减类路径。
--[no]experimental_limit_android_lint_to_android_constrained_java
默认值:“false”-
空操作,仅为实现向后兼容而保留
标签:affects_outputs
--[no]experimental_run_android_lint_on_java_rules
默认值:“false”-
是否验证 java_* 来源。
标签:affects_outputs
--[no]explicit_java_test_deps
默认值:“false”- 在 java_test 中明确指定对 JUnit 或 Hamcrest 的依赖项,而不是从 TestRunner 的依赖项意外获取。目前仅适用于 bazel。
--host_java_launcher=<a build target label>
默认值:请参阅说明- 在构建期间执行的工具使用的 Java 启动器。
- 累计使用了
--host_javacopt=<a string>
次 - 在构建在构建期间执行的工具时要传递给 javac 的其他选项。
- 累计使用了
--host_jvmopt=<a string>
次 - 构建在构建期间执行的工具时要传递给 Java 虚拟机的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--[no]incompatible_check_sharding_support
默认值:“true”-
如果为 true,则如果测试运行程序未通过触摸 TEST_SHARD_STATUS_FILE 中的路径下的文件来表明支持分片,则 Bazel 会使分片测试失败。如果为 false,不支持分片的测试运行程序将导致所有测试在每个分片中运行。
标签:incompatible_change
--[no]incompatible_exclusive_test_sandboxed
默认值:“true”-
如果为 true,系统将采用沙盒化策略运行专属测试。添加“本地”用于强制在本地运行独占测试的标记
标签:incompatible_change
--[no]incompatible_strict_action_env
默认值:“false”-
如果为 true,则 Bazel 会使用具有静态 PATH 值的环境,并且不会继承 LD_LIBRARY_PATH。如果您希望从客户端继承特定的环境变量,请使用 --action_env=ENV_VARIABLE,但请注意,如果使用了共享缓存,这样做可能会阻止跨用户缓存。
标签:loading_and_analysis
、incompatible_change
- 累计使用了
--j2objc_translation_flags=<comma-separated list of options>
次 - 要传递给 J2ObjC 工具的其他选项。
--java_debug
-
使 Java 测试的 Java 虚拟机在开始测试之前等待来自兼容 JDWP 的调试程序(例如 jdb)的连接。隐含 -test_output=streamed。
扩展为:
--test_arg=--wrapper_script_flag=--debug
--test_output=streamed
--test_strategy=exclusive
--test_timeout=9999
--nocache_test_results
--[no]java_deps
默认值:“true”- 按 Java 目标生成依赖项信息(目前为编译时类路径)。
--[no]java_header_compilation
默认值:“true”- 直接从源代码编译 ijar。
--java_language_version=<a string>
默认值:“”- Java 语言版本
--java_launcher=<a build target label>
默认值:请参阅说明- 构建 Java 二进制文件时使用的 Java 启动器。如果此标志设置为空字符串,则使用 JDK 启动器。“启动器”属性将覆盖此标志。
--java_runtime_version=<a string>
默认值:“local_jdk”- Java 运行时版本
- 累计使用了
--javacopt=<a string>
次 - 传递给 javac 的其他选项。
- 累计使用了
--jvmopt=<a string>
次 - 要传递给 Java 虚拟机的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--legacy_main_dex_list_generator=<a build target label>
默认值:请参阅说明- 指定一个二进制文件,用于生成编译旧版 MultiDex 时必须在主 dex 中的类的列表。
--optimizing_dexer=<a build target label>
默认值:请参阅说明- 指定用于在不分片的情况下执行 dex 处理的二进制文件。
- 累计使用了
--plugin=<a build target label>
次 - 要在构建中使用的插件。目前支持 java_plugin。
--proguard_top=<a build target label>
默认值:请参阅说明- 指定在构建 Java 二进制文件时用于移除代码的 ProGuard 版本。
--proto_compiler=<a build target label>
默认值:“@bazel_tools//tools/proto:protoc”-
proto 编译器的标签。
标签:affects_outputs
、loading_and_analysis
--[no]proto_profile
默认值:“true”-
是否将 profile_path 传递给 proto 编译器。
标签:affects_outputs
、loading_and_analysis
--proto_profile_path=<a build target label>
默认值:请参阅说明-
要作为 profile_path 传递给 proto 编译器的配置文件。如果未设置,但 --proto_profile 为 true(默认值),则通过 --fdo_optimize 推断路径。
标签:affects_outputs
、loading_and_analysis
--proto_toolchain_for_cc=<a build target label>
默认值:“@bazel_tools//tools/proto:cc_toolchain"-
proto_lang_toolchain() 的标签,用于描述如何编译 C++ proto
标签:affects_outputs
、loading_and_analysis
--proto_toolchain_for_j2objc=<a build target label>
默认值:“@bazel_tools//tools/j2objc:j2objc_proto_toolchain”-
proto_lang_toolchain() 的标签,用于描述如何编译 j2objc proto
标签:affects_outputs
、loading_and_analysis
--proto_toolchain_for_java=<a build target label>
默认值:“@bazel_tools//tools/proto:java_toolchain"-
proto_lang_toolchain() 的标签,用于描述如何编译 Java proto
标签:affects_outputs
、loading_and_analysis
--proto_toolchain_for_javalite=<a build target label>
默认值:“@bazel_tools//tools/proto:javalite_toolchain"-
proto_lang_toolchain() 的标签,用于描述如何编译 JavaLite proto
标签:affects_outputs
、loading_and_analysis
- 累计使用了
--protocopt=<a string>
次 -
要传递给 protobuf 编译器的其他选项。
标签:affects_outputs
--[no]runs_per_test_detects_flakes
默认值:“false”- 如果为 true,则至少有一次运行/尝试通过且至少一次运行/尝试失败的任何分片都将获得 FLAKY 状态。
--shell_executable=<a path>
默认值:请参阅说明-
Bazel 要使用的 shell 可执行文件的绝对路径。如果未设置,但 BAZEL_SH 环境变量是在第一次 Bazel 调用(启动 Bazel 服务器)时设置的,则 Bazel 会使用该环境变量。如果二者都未设置,Bazel 会使用硬编码的默认路径,具体取决于运行它的操作系统(Windows:c:/msys64/usr/bin/bash.exe,FreeBSD:/usr/local/bin/bash,所有其他路径为:/bin/bash)。请注意,使用与 bash 不兼容的 shell 可能会导致生成的二进制文件出现构建失败或运行时失败。
标签:loading_and_analysis
- 累计使用了
--test_arg=<a string>
次 - 指定应传递给测试可执行文件的其他选项和参数。可以多次用于指定多个实参。如果执行多个测试,每个测试都将收到相同的参数。仅供“bazel 测试”使用命令。
--test_filter=<a string>
默认值:请参阅说明- 指定要转发到测试框架的过滤器。用于限制运行的测试。请注意,这不会影响构建哪些目标。
--test_result_expiration=<an integer>
默认值:“-1”- 此选项已被弃用,因此没有任何作用。
--[no]test_runner_fail_fast
默认值:“false”- 将快速失败选项转发到测试运行程序。测试运行程序应在第一次失败时停止执行。
--test_sharding_strategy=<explicit, disabled or forced=k where k is the number of shards to enforce>
默认值:“露骨内容”- 指定测试分片策略:“显式”“shard_count”值存在 BUILD 属性。“已停用”绝不使用测试分片“forced=k”强制执行“k”用于测试的分片(无论“shard_count”值如何)BUILD 属性。
--tool_java_language_version=<a string>
默认值:“”- 用于执行构建期间所需工具的 Java 语言版本
--tool_java_runtime_version=<a string>
默认值:“remotejdk_11”- 用于在构建期间执行工具的 Java 运行时版本
--[no]use_ijars
默认值:“true”- 启用后,此选项会使 Java 编译使用接口 JAR。这样可以提高增量编译的速度,但错误消息可能会有所不同。
构建选项
- 用于控制构建执行的选项:
--[no]check_up_to_date
默认值:“false”-
不执行构建,只需检查其是否为最新版本即可。如果所有目标都处于最新状态,则表示构建成功完成。如果需要执行任何步骤,系统会报告错误并且构建失败。
标签:execution
--dynamic_local_execution_delay=<an integer>
默认值:“1000”-
如果至少一次构建期间远程执行速度更快,则本地执行应延迟多少毫秒?
标签:execution
、host_machine_resource_optimizations
- 累计使用了
--dynamic_local_strategy=<a '[name=]value1[,..,valueN]' assignment>
次 -
要针对给定助记符使用的本地策略,将使用第一个适用的策略。例如,“worker,sandboxed”会运行使用 worker 策略支持永久性工作器的操作,并使用沙盒策略运行所有其他操作。如果没有提供助记符,系统会将策略列表用作所有助记符的后备选项。如果设置了“experimental_local_lockfree_output”,则默认后备列表为“worker,sandboxed”或“worker,sandboxed,standalone”。采用 [mnemonic=]local_strategy[,local_strategy,...]
标签:execution
、host_machine_resource_optimizations
- 累计使用了
--dynamic_remote_strategy=<a '[name=]value1[,..,valueN]' assignment>
次 -
要用于给定助记符的远程策略,应使用第一个适用的策略。如果没有提供助记符,系统会将策略列表用作所有助记符的后备选项。默认后备列表为“remote”,因此通常不需要明确设置此标记。采用 [mnemonic=]remote_strategy[,remote_strategy,...]
标签:execution
、host_machine_resource_optimizations
--experimental_docker_image=<a string>
默认值:“”-
指定在使用 Docker 策略时应该用于执行沙盒化操作的 Docker 映像名称(例如“ubuntu:latest”),并且操作本身在平台说明的 Remote_execution_properties 中还没有容器映像属性。此标志的值会一字不差地传递给“docker run”,以便它支持与 Docker 本身相同的语法和机制。
标签:execution
--[no]experimental_docker_use_customized_images
默认值:“true”-
启用后,将使用当前用户的 uid 和 gid 注入 Docker 映像。如果您的构建 / 测试依赖于用户在容器内拥有名称和主目录,则必须执行此操作。此选项默认处于开启状态,但如果自动图片自定义功能无法自动应用,或者您知道自己不需要该功能,则可以将其停用。
标签:execution
--[no]experimental_dynamic_exclude_tools
默认值:“true”-
设置后,针对工具构建的目标不受动态执行的影响。此类目标不太可能采用增量方式构建,因此不值得在本地周期上花费预算。
标签:execution
、host_machine_resource_optimizations
--experimental_dynamic_local_load_factor=<a double>
默认值:“0”-
控制通过动态执行在本地计算机上产生的负载。此标志可调整动态执行中我们将并发调度的操作数量。该值基于 Blaze 认为可用的 CPU 数量,可以使用 --local_cpu_resources 标志控制。
如果此标志为 0,系统会立即在本地安排所有操作。如果 >0 时,本地调度的操作数量受可用 CPU 数量的限制。如果 <1,当等待调度的操作数量较多时,负载系数用于减少本地调度的操作数量。在干净构建案例中,本地机器贡献不大,这样可以减少本地机器的负载。
标签:execution
、host_machine_resource_optimizations
--experimental_dynamic_slow_remote_time=<An immutable length of time.>
默认值:“0”-
如果大于 0,则动态运行操作必须仅远程运行的时间,然后我们确定其本地执行的优先级,以避免远程超时。这可能会隐藏远程执行系统上的一些问题。请勿在未监控远程执行问题的情况下启用此功能。
标签:execution
、host_machine_resource_optimizations
--[no]experimental_enable_docker_sandbox
默认值:“false”-
启用基于 Docker 的沙盒。如果未安装 Docker,则此选项无效。
标签:execution
--[no]experimental_inmemory_sandbox_stashes
默认值:“false”-
如果设为 true,则系统会在内存中跟踪 Replication_sandbox_directoryies 存储的沙盒内容。这可以减少重用期间所需的 I/O 量。此标志可能会缩短实际用时,具体取决于 build。此标志可能会使用大量额外的内存,具体取决于 build。
标签:host_machine_resource_optimizations
、execution
--experimental_sandbox_async_tree_delete_idle_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">
默认值:“4”-
如果为 0,请在操作完成后立即删除沙盒树(会导致操作延迟完成)。如果大于零,则在构建运行时,在大小为 1 的异步线程池上删除此类 3 个,并在服务器空闲时增加到此标志指定的大小。
标签:host_machine_resource_optimizations
、execution
--experimental_sandbox_enforce_resources_regexp=<a valid Java regular expression>
默认值:“”-
如果为 true,助记符与输入正则表达式匹配的操作会将其资源请求强制作为限制,并覆盖 --experimental_sandbox_limits 的值(如果资源类型支持的话)。例如,声明 cpu:3 和 resources:memory:10 的测试,最多会使用 3 个 CPU 和 10 MB 内存来运行。
标签:execution
- 累计使用了
--experimental_sandbox_limits=<a named double, 'name=value', where value is an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">
次 -
如果 >0,则对于指定资源,每个 Linux 沙盒的用量将限制为给定量。需要 --incompatible_use_new_cgroup_implementation 并替换 --experimental_sandbox_memory_limit_mb。需要 cgroups v1 或 v2 以及用户对 cgroups 目录的权限。
标签:execution
--experimental_sandbox_memory_limit_mb=<an integer number of MBs, or "HOST_RAM", optionally followed by [-|*]<float>.>
默认值:“0”-
如果 >0,则每个 Linux 沙盒的内存量都不能超过指定量(以 MB 为单位)。需要 cgroups v1 或 v2 以及用户对 cgroups 目录的权限。
标签:execution
--[no]experimental_shrink_worker_pool
默认值:“false”-
启用后,可以在工作器内存压力较高时缩减工作器池。仅当启用 flag experiment_total_worker_memory_limit_mb 时,此标志才有效。
标签:execution
、host_machine_resource_optimizations
--[no]experimental_split_xml_generation
默认值:“true”-
如果此标志已设置,并且测试操作未生成 test.xml 文件,则 Bazel 会使用单独的操作来生成包含测试日志的虚拟 test.xml 文件。否则,Bazel 会在测试操作中生成 test.xml。
标签:execution
--experimental_total_worker_memory_limit_mb=<an integer number of MBs, or "HOST_RAM", optionally followed by [-|*]<float>.>
默认值:“0”-
如果此上限大于零,则当所有工作器的总内存用量超过该上限时,可能会终止这些工作器。
标签:execution
、host_machine_resource_optimizations
--[no]experimental_use_hermetic_linux_sandbox
默认值:“false”-
如果设置为 true,则不装载 root,仅装载随 sandbox_add_mount_pair 提供的组件。输入文件将硬链接到沙盒,而不是从沙盒通过符号链接到。如果操作输入文件位于与沙盒不同的文件系统中,系统会改为复制输入文件。
标签:execution
--[no]experimental_use_semaphore_for_jobs
默认值:“true”-
如果设置为 true,则额外使用信号量来限制并发作业的数量。
标签:host_machine_resource_optimizations
、execution
--[no]experimental_use_windows_sandbox
默认值:“false”-
使用 Windows 沙盒运行操作。如果为“yes”,则 --experimental_windows_sandbox_path 提供的二进制文件必须有效,并对应于受支持的 sandboxfs 版本。如果设为“auto”,则表示二进制文件可能缺失或不兼容。
标签:execution
--experimental_windows_sandbox_path=<a string>
默认值:“BazelSandbox.exe”-
--experimental_use_windows_sandbox 为 true 时要使用的 Windows 沙盒二进制文件的路径。如果是裸名称,请使用在 PATH 中找到的该名称的第一个二进制文件。
标签:execution
--experimental_worker_allowlist=<comma-separated set of options>
默认值:请参阅说明-
如果非空,则仅允许使用具有给定工作器键助记符的永久性工作器。
标签:execution
、host_machine_resource_optimizations
--[no]experimental_worker_cancellation
默认值:“false”-
启用后,Bazel 可以向支持它们的工作器发送取消请求。
标签:execution
--experimental_worker_memory_limit_mb=<an integer number of MBs, or "HOST_RAM", optionally followed by [-|*]<float>.>
默认值:“0”-
如果此限制大于零,则在工作器的内存使用量超过限制时可能会终止工作器。如果不与动态执行和 `--experimental_dynamic_ignore_local_signals=9` 搭配使用,这可能会导致 build 崩溃。
标签:execution
、host_machine_resource_optimizations
--experimental_worker_metrics_poll_interval=<An immutable length of time.>
默认值:“5s”-
收集工作器指标与可能尝试驱逐之间的时间间隔。出于性能原因,实际时间不能小于 1 秒。
标签:execution
、host_machine_resource_optimizations
--[no]experimental_worker_multiplex_sandboxing
默认值:“false”-
启用后,具有“supports-multiplex-sandboxing”的多路复用工作器执行要求将在沙盒环境中运行,对每个工作请求使用单独的沙盒目录。具有执行要求的多路复用工作器在动态执行策略下运行时始终会被沙盒化,而不考虑此标志。
标签:execution
--[no]experimental_worker_sandbox_hardening
默认值:“false”-
启用后,如果实现允许,工作器将在安全强化的沙盒中运行。如果启用了安全强化,则不同 worker 的 tmp 目录是不同的。
标签:execution
- 累计使用了
--experimental_worker_sandbox_inmemory_tracking=<a string>
次 -
工作器密钥助记符,系统会在内存中跟踪沙盒目录的内容。这可能会提升构建性能,但代价是会占用额外的内存。仅影响沙盒化 worker。可以针对不同的助记符指定多次。
标签:execution
--[no]experimental_worker_strict_flagfiles
默认值:“false”-
启用后,不符合工作器规范的工作器的操作参数将导致错误。Worker 参数只能有一个 @flagfile 参数作为其参数列表的最后一个参数。
标签:execution
--genrule_strategy=<comma-separated list of options>
默认值:“”-
指定如何执行 Genrule。此标志将被逐步淘汰。请改用 --spawn_strategy=<value>控制所有操作或 --strategy=Genrule=<value>仅控制 Genrule。
标签:execution
--[no]incompatible_remote_dangling_symlinks
默认值:“true”-
如果设为 true,上传到远程缓存或磁盘缓存的符号链接可以挂起。
标签:execution
、incompatible_change
--[no]incompatible_remote_symlinks
默认值:“true”-
如果设置为 true,Bazel 将始终将此类符号链接上传到远程或磁盘缓存。否则,非悬空的相对符号链接(且只有这些符号链接)会作为它们所指向的文件或目录进行上传。
标签:execution
、incompatible_change
--[no]incompatible_sandbox_hermetic_tmp
默认值:“true”-
如果设为 true,每个 Linux 沙盒都将有自己的专用空目录装载为 /tmp,而不是与主机文件系统共享 /tmp。使用 --sandbox_add_mount_pair=/tmp ,以确保在所有沙盒中继续查看主机的 /tmp。
标签:execution
--[no]incompatible_use_new_cgroup_implementation
默认值:“false”-
如果为 true,则对 cgroup 使用新的实现。旧实现仅支持内存控制器,而会忽略 --experimental_sandbox_limits 的值。
标签:execution
--[no]internal_spawn_scheduler
默认值:“true”-
占位符选项,以便我们在 Blaze 中指示是否启用了生成调度程序。
标签:execution
、host_machine_resource_optimizations
--jobs=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">
[-j
] 默认值:“自动”-
要运行的并发作业数量。接受整数或关键字(“auto”、“HOST_CPUS”和“HOST_RAM”),可视需要后跟操作 ([-|*]<float>),例如:“auto”、“HOST_CPUS*.5”。值必须介于 1 到 5000 之间。值超过 2500 可能会导致内存问题。“auto”根据主机资源计算合理的默认值。
标签:host_machine_resource_optimizations
、execution
--[no]keep_going
[-k
] 默认值:“false”-
在出现错误后尽可能继续。虽然无法分析失败的目标以及依赖于它的目标,但可以分析这些目标的其他前提条件。
标签:eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">
默认值:“auto”-
用于加载/分析阶段的并行线程数。接受整数或关键字(“auto”、“HOST_CPUS”和“HOST_RAM”),可视需要后跟操作 ([-|*]<float>),例如:“auto”、“HOST_CPUS*.5”。“auto”根据主机资源设置合理的默认值。必须至少为 1。
标签:bazel_internal_configuration
--[no]reuse_sandbox_directories
默认值:“true”-
如果此政策设为 true,系统会重复使用沙盒化非 worker 执行所用的目录,以避免不必要的设置开销。
标签:host_machine_resource_optimizations
、execution
--sandbox_base=<a string>
默认值:“”-
让沙盒在此路径下创建其沙盒目录。在 tmpfs 上指定一个路径(例如 /run/shm),以便在构建 / 测试有许多输入文件时大幅提高性能。注意:tmpfs 上需要有足够的 RAM 和可用空间,以容纳运行操作生成的输出和中间文件。
标签:host_machine_resource_optimizations
、execution
--[no]sandbox_explicit_pseudoterminal
默认值:“false”-
明确允许为沙盒化操作创建伪终端。某些 Linux 发行版要求将进程的组 ID 设置为“tty”以使伪终端正常工作。如果这会导致问题,则可以停用此标志,以允许使用其他群组。
标签:execution
- 累计使用了
--sandbox_tmpfs_path=<an absolute path>
次 -
对于沙盒化操作,请将一个空的可写目录装载到此绝对路径(如果沙盒实现支持,否则将忽略)。
标签:host_machine_resource_optimizations
、execution
--[no]skip_incompatible_explicit_targets
默认值:“false”-
跳过命令行中明确列出的不兼容目标。默认情况下,构建此类目标会导致错误,但在启用此选项后,系统会以静默方式跳过这些目标。请参阅:https://bazel.build/extending/platforms#skipping-incompatible-targets
标签:loading_and_analysis
--spawn_strategy=<comma-separated list of options>
默认值:“”-
指定默认情况下执行生成操作的方式。接受以逗号分隔的策略列表(从高到低优先级)。对于每项操作,Bazel 会选择可执行操作的优先级最高的策略。默认值为“remote,worker,sandboxed,local”。如需了解详情,请参阅 https://blog.bazel.build/2019/06/19/list-strategy.html。
标签:execution
- 累计使用了
--strategy=<a '[name=]value1[,..,valueN]' assignment>
次 -
指定如何分发其他生成操作的编译。接受以逗号分隔的策略列表(从高到低优先级)。对于每项操作,Bazel 会选择可执行操作的优先级最高的策略。默认值为“remote,worker,sandboxed,local”。此标志会替换由 --spawn_strategy 设置的值(如果与 mnemonic Genrule 一起使用,则覆盖 --genrule_strategy)。如需了解详情,请参阅 https://blog.bazel.build/2019/06/19/list-strategy.html。
标签:execution
- 累计使用了
--strategy_regexp=<a '<RegexFilter>=value[,value]' assignment>
次 -
覆盖在执行说明与特定 regex_filter 相匹配的生成操作时应使用的生成策略。如需详细了解 regex_filter 匹配,请参阅 --per_file_copt。系统会使用与说明匹配的最后一个 regex_filter。此选项会替换用于指定策略的其他标志。示例:--strategy_regexp=//foo.*\.cc,-//foo/bar=local 表示如果操作的说明与 //foo.*.cc 匹配,但与 //foo/bar 不匹配,则使用本地策略运行操作。示例:--strategy_regexp='Compiling.*/bar=local --strategy_regexp=Compiling=sandboxed will run 'Compiling //foo/bar/baz'并使用“local”但颠倒顺序将会在使用“沙盒”运行的情况下运行。
标签:execution
- 累计使用了
--worker_extra_flag=<a 'name=value' assignment>
次 -
除了 --persistent_worker 之外,还要传递给工作器进程的额外命令标志,这些标志由助记符键控(例如,--worker_extra_flag=Javac=--debug。
标签:execution
、host_machine_resource_optimizations
- 累计使用了
--worker_max_instances=<[name=]value, where value is an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">
次 -
如果使用“Worker”,策略可以指定为 [name=value],以便为每个助记符提供不同的值。此限制基于工作器键,这些键根据助记符而区分,还基于启动标记和环境,因此在某些情况下,每个助记符的工作器数可能会超过此标志指定的工作器数量。接受整数或关键字(“auto”、“HOST_CPUS”和“HOST_RAM”),可视需要后跟操作 ([-|*]<float>),例如:“auto”、“HOST_CPUS*.5”。“auto”根据机器容量计算合理的默认值。“=value”为未指定的助记符设置默认值。
标签:execution
、host_machine_resource_optimizations
- 累计使用了
--worker_max_multiplex_instances=<[name=]value, where value is an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">
次 -
如果使用“工作器”,则多路复用工作器进程可以并行接收多少个 WorkRequest使用 --worker_multiplex。可以指定为 [name=value],以便为每个助记符提供不同的值。此限制基于工作器键,这些键根据助记符而区分,还基于启动标记和环境,因此在某些情况下,每个助记符的工作器数可能会超过此标志指定的工作器数量。接受整数或关键字(“auto”、“HOST_CPUS”和“HOST_RAM”),可视需要后跟操作 ([-|*]<float>),例如:“auto”、“HOST_CPUS*.5”。“auto”根据机器容量计算合理的默认值。“=value”为未指定的助记符设置默认值。
标签:execution
、host_machine_resource_optimizations
--[no]worker_multiplex
默认值:“true”-
启用后,如果工作器支持多路复用,则会使用该功能。
标签:execution
、host_machine_resource_optimizations
--[no]worker_quit_after_build
默认值:“false”-
如果启用,所有工作器都将在构建完成后退出。
标签:execution
、host_machine_resource_optimizations
--[no]worker_sandboxing
默认值:“false”-
启用后,singleplex 工作器将在沙盒化环境中运行。无论此标志如何,在动态执行策略下运行时,单工工作器始终会被沙盒化。
标签:execution
--[no]worker_verbose
默认值:“false”- 如果启用,则会在启动、关停工作器等操作时输出详细消息
- 用于控制命令输出的选项:
--[no]build
默认值:“true”-
执行构建;这是常见行为指定 --nobuild 会导致构建在执行构建操作之前停止,并且当软件包加载和分析阶段成功完成时会返回零;此模式有助于测试这些阶段。
标签:execution
、affects_outputs
--[no]experimental_use_validation_aspect
默认值:“false”-
是否使用切面运行验证操作(以实现测试的并行性)。
标签:execution
、affects_outputs
- 累计使用了
--output_groups=<comma-separated list of options>
次 -
以英文逗号分隔的输出组名称列表,每个名称都可选择加上 + 或 - 前缀。以 + 前缀的组会添加到默认的输出组集中,而以 - 为前缀的组会从默认组中移除。如果至少一个组没有前缀,则会忽略默认的一系列输出组。例如,--output_groups=+foo,+bar 会构建默认设置集、foo 和 bar 的并集,而 --output_groups=foo,bar 会覆盖默认设置,以便仅构建 foo 和 bar。
标签:execution
、affects_outputs
--[no]run_validations
默认值:“true”-
是否在构建过程中运行验证操作。请参阅 https://bazel.build/extending/rules#validation_actions
标签:execution
、affects_outputs
- 可让用户配置预期输出并影响输出值(而不是其存在性)的选项:
- 累计使用了
--aspects=<comma-separated list of options>
次 - 以英文逗号分隔的要应用于顶级目标的切面列表。在列表中,如果切面 some_aspect 通过 required_aspect_providers 指定必需的切面提供程序,则 some_aspect 会在切面列表中,其通告的提供程序满足 some_aspect 必需切面提供程序时在其前面提及的每个切面运行。此外,some_aspect 会在 require 属性指定的所有必需切面之后运行。然后,some_aspect 将可以访问这些切面的值提供商。<bzl-file-label>%<aspect_name>,例如“//tools:my_def.bzl%my_aspect”,其中“my_aspect”是来自文件 tools/my_def.bzl 的顶级值 。
--bep_maximum_open_remote_upload_files=<an integer>
默认值:“-1”-
BEP 工件上传期间允许打开的文件数量上限。
标签:affects_outputs
--[no]experimental_convenience_symlinks
默认值:“normal”-
此标志可控制如何管理便捷符号链接(构建后显示在工作区中的符号链接)。可能的值:
normal(默认):系统会创建或删除每种类型的便捷符号链接,具体视版本而定。
clean:系统将无条件删除所有符号链接。
ignore:不会创建或清除符号链接。
log_only:像“normal”一样生成日志消息但并不实际执行任何文件系统操作(对于工具很有用)。
请注意,只有名称由 --symlink_prefix 的当前值生成的符号链接会受到影响;如果前缀发生变化,任何预先存在的符号链接将保持不变。
标签:affects_outputs
--[no]experimental_convenience_symlinks_bep_event
默认值:“true”-
此标志控制是否将 build eventConvenienceSymlinksIdentified 发布到 BuildEventProtocol。如果该值为 true,那么为方便起见,BuildEventProtocol 将包含一个 SymlinksIdentified 条目,列出在您的工作区中创建的所有便捷符号链接。如果为 false,BuildEventProtocol 中的 wellSymlinksIdentified 条目将为空。
标签:affects_outputs
--remote_download_all
-
将所有远程输出下载到本地计算机。此标志是 --remote_download_outputs=all 的别名。
扩展为:
--remote_download_outputs=all
标签:affects_outputs
--remote_download_minimal
-
不将任何远程构建输出下载到本地机器。此标志是 --remote_download_outputs=minimal 的别名。
扩展为:
--remote_download_outputs=minimal
标签:affects_outputs
--remote_download_outputs=<all, minimal or toplevel>
默认值:“toplevel”-
如果设置为“minimal”不会将任何远程构建输出下载到本地机器(本地操作所需的输出除外)。如果设置为“toplevel”行为类似于“minimal”只不过它也会将顶级目标的输出内容下载到本地计算机。如果网络带宽成为瓶颈,这两种方式都可以显著缩短构建时间。
标签:affects_outputs
--remote_download_symlink_template=<a string>
默认值:“”-
创建符号链接,而不是将远程构建输出下载到本地机器。符号链接的目标可以模板字符串的形式指定。此模板字符串可能包含 {hash} 和 {size_bytes},分别扩展到对象的哈希值和字节大小。例如,这些符号链接可以指向按需从 CAS 加载对象的 FUSE 文件系统。
标签:affects_outputs
--remote_download_toplevel
-
仅将顶级目标的远程输出下载到本地计算机。此标志是 --remote_download_outputs=toplevel 的别名。
扩展为:
--remote_download_outputs=toplevel
标签:affects_outputs
--symlink_prefix=<a string>
默认值:请参阅说明-
附加到在 build 后创建的任何便捷符号链接前面的前缀。如果省略,默认值将是构建工具的名称后跟一个连字符。如果为“/”系统便不会创建任何符号链接,也不会发出任何警告。警告:“/”的特殊功能即将弃用请改用 --experimental_convenience_symlinks=ignore。
标签:affects_outputs
- 影响 Bazel 强制执行有效构建输入的严格程度的选项(规则定义、标志组合等):
--[no]experimental_docker_privileged
默认值:“false”-
启用后,Bazel 会将 --privileged 标志传递给“docker run”。您的 build 可能需要这样做,但也可能会导致封闭程度降低。
标签:execution
--[no]experimental_sandboxfs_map_symlink_targets
默认值:“false”-
空操作
标签:host_machine_resource_optimizations
、execution
--[no]incompatible_legacy_local_fallback
默认值:“false”-
如果此政策设为 true,系统会启用从沙盒化到本地策略的旧版隐式回退。此标志最终将默认为 false,然后变为空操作。请改用 --strategy、--spawn_strategy 或 --dynamic_local_strategy 才能配置后备。
标签:execution
、incompatible_change
- 累计使用了
--sandbox_add_mount_pair=<a single path or a 'source:target' pair>
次 -
添加要在沙盒中装载的额外路径对。
标签:execution
- 累计使用了
--sandbox_block_path=<a string>
次 -
对于在沙盒中运行的操作,请禁止访问此路径。
标签:execution
--[no]sandbox_default_allow_network
默认值:“true”-
默认允许访问网络以执行操作;这可能并不适用于所有沙盒实现。
标签:execution
--[no]sandbox_fake_hostname
默认值:“false”-
将当前主机名更改为“localhost”适用于沙盒化操作
标签:execution
--[no]sandbox_fake_username
默认值:“false”-
将当前用户名更改为“nobody”适用于沙盒化操作
标签:execution
- 累计使用了
--sandbox_writable_path=<a string>
次 -
对于在沙盒中运行的操作,请将现有目录设置为可在沙盒中写入(如果沙盒实现支持,否则请忽略)。
标签:execution
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_config_setting_private_default_visibility
默认值:“false”-
如果 incompatible_enforce_config_setting_visibility=false,则是 noop。否则,如果此标志为 false,则任何没有显式可见性属性的 config_setting 都是 //visibility:public。如果此标志为 true,config_setting 遵循与所有其他规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_enforce_config_setting_visibility
默认值:“true”-
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对所有目标都可见。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_use_plus_in_repo_names
默认值:“true”-
无运维。
标签:loading_and_analysis
- 用于控制测试环境或测试运行程序行为的选项:
--[no]check_tests_up_to_date
默认值:“false”-
不要运行测试,只需检查它们是否是最新版本即可。如果所有测试结果均为最新,则表示测试成功完成。如果需要构建或执行任何测试,系统会报告错误且测试失败。此选项暗示了 --check_up_to_date 行为。
标签:execution
- 累计使用了
--flaky_test_attempts=<a positive integer, the string "default", or test_regex@attempts. This flag may be passed more than once>
次 -
如果测试失败,则每个测试的重试次数都不会超过指定的次数。需要多次尝试通过的测试会被标记为“FLAKY”测试摘要中。通常,指定的值只是整数或字符串“default”。如果为整数,则所有测试最多运行 N 次。如果设置为“default”,则常规测试将仅进行一次测试尝试,对于被其规则明确标记为不稳定的测试(flaky=1 属性),则将仅进行三次测试。备用语法:regex_filter@flaky_test_attempts。其中 flaky_test_attempts 与上文所述相同,regex_filter 代表包含和排除正则表达式模式的列表(另请参阅 --runs_per_test)。示例:--flaky_test_attempts=//foo/.*,-//foo/bar/.*@3 使 //foo/ 中的所有测试不稳定(foo/bar 下的测试除外)三次。此选项可以多次传递。最近传递的匹配的参数优先。如果没有任何匹配项,则行为如同“default”。
标签:execution
--local_test_jobs=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">
默认值:“auto”-
并发运行的本地测试作业数上限。接受整数或关键字(“auto”、“HOST_CPUS”和“HOST_RAM”),可视需要后跟操作 ([-|*]<float>),例如:“auto”、“HOST_CPUS*.5”。0 表示本地资源将限制并发运行的本地测试作业数量。将此值设置为大于 --jobs 的值会无效。
标签:execution
--[no]test_keep_going
默认值:“true”-
停用后,任何未通过的测试都会导致整个构建停止。默认情况下,系统会运行所有测试,即使有些测试未通过。
标签:execution
--test_strategy=<a string>
默认值:“”-
指定运行测试时要使用的策略。
标签:execution
--test_tmpdir=<a path>
默认值:请参阅说明- 指定“bazel test”的基本临时目录使用。 。
- 触发构建时间优化的选项:
--cache_computed_file_digests=<a long integer>
默认值:“50000”- 如果值大于 0,请将 Bazel 配置为根据元数据的元数据缓存文件摘要,而不是在每次需要时从磁盘重新计算摘要。将此项设为 0 可确保正确性,因为并非所有文件更改都能从文件元数据中记录出来。如果不是 0,则该数字表示缓存的大小为要缓存的文件摘要数。
--[no]experimental_cpu_load_scheduling
默认值:“false”-
启用基于 CPU 负载(而不是逐个估算操作)的实验性本地执行调度。实验性调度已证明,在具有大量核心的强大机器上进行大型本地构建具有巨大优势。建议与 --local_resources=cpu=HOST_CPUS 搭配使用
标签:execution
--experimental_dynamic_ignore_local_signals=<a comma-separated list of signal numbers>
默认值:请参阅说明-
获取操作系统信号编号列表。如果动态执行的本地分支因其中任何信号而被终止,远程分支将可以完成运行。对于永久性工作器,这仅影响终止工作器进程的信号。
标签:execution
--[no]experimental_enable_skyfocus
默认值:“false”-
如果为 true,请启用 --experimental_working_set 的使用,以减少 Bazel 的内存增量进行增量构建。此功能称为 Skyfocus。
标签:host_machine_resource_optimizations
--experimental_working_set=<comma-separated list of options>
默认值:“”-
Skyfocus 的工作集。请指定以英文逗号分隔的工作区根相对路径。这是一个有状态标志。定义的工作集会在后续调用中保持不变,直到使用新集重新定义为止。
标签:host_machine_resource_optimizations
--local_cpu_resources=<an integer, or "HOST_CPUS", optionally followed by [-|*]<float>.>
默认值:“HOST_CPUS”-
明确设置可供 Bazel 支出在本地执行的构建操作的本地 CPU 核心总数。接受整数或“HOST_CPUS”,可以选择后跟 [-|*]<float>(例如HOST_CPUS*.5 表示使用一半的可用 CPU 核心)。默认情况下,(“HOST_CPUS”),Bazel 会查询系统配置以估算可用的 CPU 核心数。
标签:host_machine_resource_optimizations
- 累计使用了
--local_extra_resources=<a named float, 'name=value'>
次 -
设置可供 Bazel 使用的额外资源的数量。采用字符串 - 浮点数对。可以使用多次来指定多种类型的额外资源。Bazel 会根据可用的额外资源和所需的额外资源限制同时运行的操作。测试可以使用“resources:<resoucename>:<amount>”标记来声明它们需要的额外资源数量格式。无法使用此标志设置可用的 CPU、RAM 和资源。
标签:host_machine_resource_optimizations
--local_ram_resources=<an integer number of MBs, or "HOST_RAM", optionally followed by [-|*]<float>.>
默认值:“HOST_RAM*.67”-
明确设置可供 Bazel 支出在本地执行的构建操作的本地主机 RAM 总量(以 MB 为单位)。接受整数或“HOST_RAM”,可以选择后跟 [-|*]<float>(例如HOST_RAM*.5 会使用一半的可用 RAM)。默认情况下,(“HOST_RAM*.67”),Bazel 会查询系统配置以估算可用的 RAM 容量,并将使用 67% 的 RAM。
标签:host_machine_resource_optimizations
- 累计使用了
--local_resources=<a named double, 'name=value', where value is an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">
次 -
设置可供 Bazel 使用的资源数量。接受对浮点值或 HOST_RAM/HOST_CPUS 的赋值,可以选择后跟 [-|*]<float>(例如,memory=HOST_RAM*.5 即可使用一半的可用 RAM)。可以多次用于指定多种类型的资源。Bazel 会根据可用的资源和所需的资源限制并发运行的操作。测试可以使用“resources:<resource name>:<amount>”标记来声明它们需要的资源量格式。替换 --local_{cpu|ram|extra}_resources 指定的资源。
标签:host_machine_resource_optimizations
- 影响日志记录的详细程度、格式或位置的选项:
--build_event_upload_max_retries=<an integer>
默认值:“4”-
Bazel 应重新尝试上传构建事件的最大次数。
标签:bazel_internal_configuration
--[no]debug_spawn_scheduler
默认值:“false”--[no]experimental_bep_target_summary
默认值:“false”- 是否发布 TargetSummary 事件。
--[no]experimental_build_event_expand_filesets
默认值:“false”-
如果为 true,则在呈现输出文件时以 BEP 展开文件集。
标签:affects_outputs
--[no]experimental_build_event_fully_resolve_fileset_symlinks
默认值:“false”-
如果为 true,则在显示输出文件时完全解析 BEP 中的相对文件集符号链接。需要 --experimental_build_event_expand_filesets。
标签:affects_outputs
--experimental_build_event_upload_retry_minimum_delay=<An immutable length of time.>
默认值:“1s”-
BEP 上传失败时,指数退避算法重试的初始最小延迟时间。(指数:1.6)
标签:bazel_internal_configuration
--experimental_build_event_upload_strategy=<a string>
默认值:请参阅说明-
选择如何上传 build 事件协议中引用的制品。
标签:affects_outputs
--[no]experimental_docker_verbose
默认值:“false”-
启用后,Bazel 将输出有关 Docker 沙盒策略的更多详细消息。
标签:execution
--[no]experimental_materialize_param_files_directly
默认值:“false”-
如果要具体化参数文件,请通过直接写入磁盘来执行此操作。
标签:execution
--experimental_repository_resolved_file=<a string>
默认值:“”-
如果非空,请使用已执行的所有 Starlark 代码库规则的解析信息写入 Starlark 值。
标签:affects_outputs
--[no]experimental_run_bep_event_include_residue
默认值:“false”-
是否在运行 build 事件中包含命令行残留(可能包含该残留)。默认情况下,可能包含残留的运行命令构建事件中不包含残留。
标签:affects_outputs
--experimental_skyfocus_dump_keys=<none, count or verbose>
默认值:“无”-
用于调试 Skyfocus。转储聚焦的 SkyKey(根、叶、聚焦的依赖项、聚焦的 rdep)。
标签:terminal_output
--[no]experimental_skyfocus_dump_post_gc_stats
默认值:“false”-
用于调试 Skyfocus。启用后,可在聚焦之前/之后触发手动 GC,以报告堆大小缩减情况。这会增加天空对焦延迟时间。
标签:terminal_output
--experimental_skyfocus_handling_strategy=<strict or warn>
默认值:“strict”-
Skyfocus 的策略,用于处理工作集之外的变化。
标签:eagerness_to_exit
--[no]experimental_stream_log_file_uploads
默认值:“false”-
将流式日志文件直接上传到远程存储空间,而不是将其写入磁盘。
标签:affects_outputs
--explain=<a path>
默认值:请参阅说明-
使构建系统解释构建的每个已执行步骤。系统会将说明写入指定的日志文件。
标签:affects_outputs
--[no]ignore_unsupported_sandboxing
默认值:“false”-
此系统不支持沙盒化执行时,不输出警告。
标签:terminal_output
--[no]legacy_important_outputs
默认值:“true”-
使用此方法可在 TargetComplete 事件中禁止生成旧版 important_outputs 字段。Bazel 到 ResultStore 的集成需要 important_outputs。
标签:affects_outputs
--[no]materialize_param_files
默认值:“false”-
即使使用远程操作执行,也会将中间参数文件写入输出树。在调试操作时很有用。--subcommands 和 --verbose_failures 暗示了这一点。
标签:execution
--max_config_changes_to_show=<an integer>
默认值:“3”-
因构建选项更改而舍弃分析缓存时,最多显示已更改选项名称的指定数量。如果给定数为 -1,则将显示所有更改后的选项。
标签:terminal_output
--max_test_output_bytes=<an integer>
默认值:“-1”-
指定在 --test_output 为“errors”时可以发出的每个测试日志的大小上限或“all”。有助于避免过于嘈杂的测试输出导致输出过多。测试标头包含在日志大小中。负值表示无限制。输出要么全部,要么一无。
标签:test_runner
、terminal_output
、execution
--output_filter=<a valid Java regular expression>
默认值:请参阅说明-
仅显示名称与所提供的正则表达式匹配的规则的警告和操作输出。
标签:affects_outputs
--progress_report_interval=<an integer in 0-3600 range>
默认值:“0”-
报告仍在运行的作业之间等待的秒数。默认值 0 表示系统会在 10 秒后打印第一份报告,然后在 30 秒后打印第一份报告,并且每分钟会报告一次进度。启用 --curses 后,系统会每秒报告一次进度。
标签:affects_outputs
--remote_print_execution_messages=<failure, success or all>
默认值:“失败”-
选择何时输出远程执行消息。有效值为 `failure`,表示仅在失败时输出, `success` 仅在成功时输出,`all` 表示始终输出。
标签:terminal_output
--[no]sandbox_debug
默认值:“false”-
启用沙盒功能的调试功能。这包括两项内容:第一,沙盒根内容在构建后保持不变;其次,在执行时输出额外的调试信息。这可帮助 Bazel 或 Starlark 规则的开发者调试因缺少输入文件等而导致的失败。
标签:terminal_output
--show_result=<an integer>
默认值:“1”-
显示构建结果。对于每个目标,说明其是否已更新;如果是,则提供已构建的输出文件的列表。输出的文件是方便的字符串,可用于复制粘贴至 shell 以执行它们。
此选项需要一个整数参数,这是目标的阈值数量,超出此数量后,系统不会输出结果信息。因此,0 会抑制消息,MAX_INT 则会始终输出结果。默认值为 1。
如果未针对目标构建任何内容,其结果可能会被省略,以使输出保持在阈值以下。
标签:affects_outputs
--[no]subcommands
[-s
] 默认值:“false”-
显示构建期间执行的子命令。相关标志:--execution_log_json_file、--execution_log_binary_file(用于将子命令以工具友好格式记录到文件中)。
标签:terminal_output
--test_output=<summary, errors, all or streamed>
默认值:“summary”-
指定所需的输出模式。有效值为“summary”仅输出测试状态摘要“errors”还可输出失败测试的测试日志,即“all”输出所有测试的日志和“streamed”实时输出所有测试的日志(这会强制一次在本地执行一个测试,无论 --test_strategy 值如何)。
标签:test_runner
、terminal_output
、execution
--test_summary=<short, terse, detailed, none or testcase>
默认值:“short”-
指定所需的测试摘要格式。有效值为“short”“仅输出关于已执行测试的信息”“terse”,用于仅输出有关运行失败的测试的信息,“详细”用于输出有关失败测试用例的详细信息,在测试用例解析中输出摘要,不输出有关失败测试用例的详细信息和“none”以省略摘要。
标签:terminal_output
--[no]verbose_explanations
默认值:“false”-
在启用 --explain 的情况下,提高所给出的说明的详细程度。如果未启用 --explain,则不会产生任何影响。
标签:affects_outputs
--[no]verbose_failures
默认值:“false”-
如果某个命令失败,则输出完整的命令行。
标签:terminal_output
- 用于为 Bazel 命令指定或更改常规输入(不属于其他类别)的选项:
- 累计使用了
--aspects_parameters=<a 'name=value' assignment>
次 -
指定命令行切面参数的值。每个参数值通过 <param_name>=<param_value> 指定,例如“my_param=my_val”where 'my_param'是 --aspects 列表中某个切面的参数,或列表中某个切面所需的参数。此选项可以多次使用。但是,不允许多次为同一参数指定值。
标签:loading_and_analysis
--target_pattern_file=<a string>
默认值:“”-
如果设置,build 将从此处指定的文件(而非命令行)读取模式。在此处指定文件和命令行模式是错误的。
标签:changes_inputs
- 远程缓存和执行选项:
--experimental_circuit_breaker_strategy=<failure>
默认值:请参阅说明-
指定断路器要使用的策略。可用的策略为“失败”。如果选项的值无效,则不会设置此选项的行为。
标签:execution
--[no]experimental_guard_against_concurrent_changes
默认值:“false”- 如果关闭此设置,则在将操作上传到远程缓存之前,系统会禁止检查该操作的输入文件的时间。在某些情况下,Linux 内核可能会延迟写入文件,这可能会导致误报。
--[no]experimental_remote_cache_async
默认值:“false”- 如果为 true,远程缓存 I/O 将在后台进行,而不是作为生成过程的一部分进行。
--experimental_remote_cache_compression_threshold=<an integer>
默认值:“0”- 使用 zstd 压缩/解压缩所需的最小 blob 大小。此属性无效,除非设置了 --remote_cache_compression。
--experimental_remote_cache_eviction_retries=<an integer>
默认值:“0”-
构建遇到远程缓存逐出错误时重试的最大尝试次数。非零值会隐式将 --incompatible_remote_use_new_exit_code_for_lost_inputs 设置为 true。每次尝试都会生成一个新的调用 ID。如果您生成调用 ID 并使用 --invocation_id 将其提供给 Bazel,则不应使用此标志。而是设置标志 --incompatible_remote_use_new_exit_code_for_lost_inputs 并检查退出代码 39。
标签:execution
--[no]experimental_remote_cache_lease_extension
默认值:“false”- 如果设为 true,Bazel 将定期向远程缓存发送“FindMissingBlobs”调用,从而延长构建期间远程操作输出的租期。该频率取决于 `--experimental_remote_cache_ttl` 的值。 。
--experimental_remote_cache_ttl=<An immutable length of time.>
默认值:“3h”-
最近被引用后,远程缓存中 blob 中的保证最小 TTL,例如返回错误状态。Bazel 会根据 blob 的TTL(例如不会在增量构建中重复调用 GetActionResult。设置的值应略小于实际 TTL,因为服务器返回摘要与 Bazel 接收摘要之间存在时间差。
标签:execution
--experimental_remote_capture_corrupted_outputs=<a path>
默认值:请参阅说明- 用于捕获损坏输出的目录的路径。
--[no]experimental_remote_discard_merkle_trees
默认值:“true”- 如果此政策设为 true,在调用 GetActionResult() 和 Execute() 期间,系统会舍弃输入根 Merkle 树和关联输入映射的内存中副本。这样可以显著减少内存用量,但需要 Bazel 在远程缓存未命中并重试时重新计算内存用量。
--experimental_remote_downloader=<a string>
默认值:请参阅说明- 用作远程下载代理的 Remote Asset API 端点 URI。支持的架构包括 grpc、grpcs(启用了 TLS 的 grpc)和 unix(本地 UNIX 套接字)。如果未提供架构,则 Bazel 将默认为 grpc。请参阅:https://github.com/bazelbuild/remote-apis/blob/master/build/bazel/remote/asset/v1/remote_asset.proto 。
--[no]experimental_remote_downloader_local_fallback
默认值:“false”- 如果远程下载程序失败,是否回退到本地下载程序。
--[no]experimental_remote_execution_keepalive
默认值:“false”- 是否对远程执行调用使用 keepalive。
--experimental_remote_failure_rate_threshold=<an integer in 0-100 range>
默认值:“10”-
设置在特定时间窗口内允许的失败率数(以百分比表示),在此时间窗口之后,它将停止调用远程缓存/执行器。默认值为 10。将此值设为 0 意味着没有限制。
标签:execution
--experimental_remote_failure_window_interval=<An immutable length of time.>
默认值:“60 秒”-
计算远程请求的失败率的时间间隔。如果值为 0 或负数,则计算执行的完整时长。可以使用以下单位:天 (d)、小时 (h)、分钟 (m)、秒 (s) 和毫秒 (ms)。如果省略单位,系统会将该值解读为秒。
标签:execution
--[no]experimental_remote_mark_tool_inputs
默认值:“false”- 如果设置为 true,Bazel 会将输入标记为远程执行器的工具输入。这可用于实现远程永久性工作器。
--[no]experimental_remote_merkle_tree_cache
默认值:“false”- 如果设为 true,系统会记住 Merkle 树计算,以提高远程缓存命中检查速度。缓存的内存占用量由 --experimental_remote_merkle_tree_cache_size 控制。
--experimental_remote_merkle_tree_cache_size=<a long integer>
默认值:“1000”- 为了提高远程缓存命中检查速度而要记住的 Merkle 树的数量。尽管缓存会根据 Java 对软引用的处理自动进行删除,但如果设置得过高,仍然可能发生内存不足错误。如果设置为 0,则缓存大小不受限制。最佳值因项目规模而异。默认值为 1,000。
--experimental_remote_output_service=<a string>
默认值:请参阅说明- 远程输出服务端点的 HOST 或 HOST:PORT。支持的架构包括 grpc、grpcs(启用了 TLS 的 grpc)和 unix(本地 UNIX 套接字)。如果未提供架构,则 Bazel 将默认为 grpc。指定 grpc:// 或 unix: 架构以停用 TLS。
--experimental_remote_output_service_output_path_prefix=<a string>
默认值:“”- 存放由 --experimental_remote_output_service 管理的输出目录内容的路径。build 使用的实际输出目录将是此路径的后代,并由输出服务确定。
--[no]experimental_remote_require_cached
默认值:“false”- 如果此政策设为 true,系统会强制缓存所有可远程运行的操作,否则构建会失败。这对于排查非确定性问题非常有用,因为它可以检查应缓存的操作是否确实已缓存,而不会虚假地将新结果注入缓存。
--experimental_remote_scrubbing_config=<Converts to a Scrubber>
默认值:请参阅说明- 使用提供的配置文件启用远程缓存键擦除,该文件必须是文本格式的协议缓冲区(请参阅 src/main/protobuf/remote_scrubbing.proto)。 此功能旨在方便在不同平台上执行但针对同一平台的操作之间共享远程/磁盘缓存。使用它时应格外小心,因为不正确的设置可能会导致意外共享缓存条目,并导致构建错误。 擦除不会影响操作的执行方式,只会影响为检索或存储操作结果而计算其远程/磁盘缓存键的方式。已擦除的操作与远程执行不兼容,而是始终在本地执行。 修改清理配置不会使本地文件系统或内部缓存中的输出失效;需要干净 build 才能重新执行受影响的操作。 为了成功使用此功能,您可能需要设置自定义 --host_platform 以及 --experimental_platform_in_output_dir(将输出前缀标准化)和 --incompatible_strict_action_env(将环境变量标准化)。
--[no]incompatible_remote_downloader_send_all_headers
默认值:“true”-
是否将一个多值标头的所有值(而不仅仅是第一个值)发送给远程下载程序。
标签:incompatible_change
--[no]incompatible_remote_output_paths_relative_to_input_root
默认值:“false”-
如果设置为 true,输出路径将相对于输入根目录(而非工作目录)。
标签:incompatible_change
--[no]incompatible_remote_use_new_exit_code_for_lost_inputs
默认值:“true”-
如果设置为 true,且在构建期间远程缓存逐出 blob,则 Bazel 将使用新的退出代码 39 而不是 34。
标签:incompatible_change
--[no]remote_accept_cached
默认值:“true”- 是否接受远程缓存的操作结果。
--remote_build_event_upload=<all or minimal>
默认值:“minimal”- 如果设置为“all”,则 BEP 引用的所有本地输出都将上传到远程缓存。 如果设置为“minimal”,则 BEP 引用的本地输出不会上传到远程缓存,但对 BEP 使用者而言非常重要的文件(例如测试日志和时间配置文件)除外。bytestream:// 架构始终用于文件的 uri,即使它们在远程缓存中缺失。 默认为“minimal”。
--remote_bytestream_uri_prefix=<a string>
默认值:请参阅说明- 要在写入构建事件流的 bytestream:// URI 中使用的主机名和实例名称。使用代理执行构建时可以设置此选项,这会导致 --remote_executor 和 --remote_instance_name 的值不再与远程执行服务的规范名称对应。如果未设置,则默认为“${hostname}/${instance_name}”。
--remote_cache=<a string>
默认值:请参阅说明- 缓存端点的 URI。支持的架构包括 http、https、grpc、grpcs(启用了 TLS 的 grpc)和 unix(本地 UNIX 套接字)。如果未提供架构,则 Bazel 将默认为 grpc。指定 grpc://、http:// 或 unix: 架构以停用 TLS。请参阅 https://bazel.build/remote/caching 。
--[no]remote_cache_compression
默认值:“false”- 如果启用,则使用 zstd 压缩/解压缩 blob 的大小至少为 --experimental_remote_cache_compression_threshold 时。
- 累计使用了
--remote_cache_header=<a 'name=value' assignment>
次 - 指定将包含在缓存请求的标头:--remote_cache_header=Name=Value。通过多次指定标志可以传递多个标头。如果同一个名称有多个值,系统会将这些值转换为逗号分隔列表。
- 累计使用了
--remote_default_exec_properties=<a 'name=value' assignment>
次 -
如果执行平台尚未设置 exec_properties,请设置要用作远程执行平台的默认 exec 属性。
标签:affects_outputs
--remote_default_platform_properties=<a string>
默认值:“”- 如果执行平台尚未设置 remote_execution_properties,请设置要为远程执行 API 设置的默认平台属性。如果选择主机平台作为远程执行的执行平台,则也使用此值。
- 累计使用了
--remote_download_regex=<a valid Java regular expression>
次 -
强制下载路径与此模式匹配的远程构建输出,与 --remote_download_outputs 无关。您可以通过重复使用此标志来指定多种格式。
标签:affects_outputs
- 累计使用了
--remote_downloader_header=<a 'name=value' assignment>
次 - 指定将包含在远程下载程序请求的标头:--remote_downloader_header=Name=Value。通过多次指定标志可以传递多个标头。如果同一个名称有多个值,系统会将这些值转换为逗号分隔列表。
- 累计使用了
--remote_exec_header=<a 'name=value' assignment>
次 - 指定将包含在执行请求的标头:--remote_exec_header=Name=Value。通过多次指定标志可以传递多个标头。如果同一个名称有多个值,系统会将这些值转换为逗号分隔列表。
--remote_execution_priority=<an integer>
默认值:“0”- 要远程执行的操作的相对优先级。特定优先级值的语义取决于服务器。
--remote_executor=<a string>
默认值:请参阅说明- 远程执行端点的 HOST 或 HOST:PORT。支持的架构包括 grpc、grpcs(启用了 TLS 的 grpc)和 unix(本地 UNIX 套接字)。如果未提供架构,则 Bazel 将默认为 grpc。指定 grpc:// 或 unix: 架构以停用 TLS。
--remote_grpc_log=<a path>
默认值:请参阅说明- 如果已指定,则为记录 gRPC 调用相关详细信息的文件的路径。此日志由一系列序列化的 com.google.devtools.build.lib.remote.logging.RemoteExecutionLog.LogEntry protobuf 组成,其中每条消息都以一个 varint 为前缀,表示以下序列化 protobuf 消息的大小,由 LogEntry.writeDelimitedTo(OutputStream) 方法执行。
- 累计使用了
--remote_header=<a 'name=value' assignment>
次 - 指定将包含在请求的标头:--remote_header=Name=Value。通过多次指定标志可以传递多个标头。如果同一个名称有多个值,系统会将这些值转换为逗号分隔列表。
--remote_instance_name=<a string>
默认值:“”- 要在远程执行 API 中作为 instance_name 传递的值。
--[no]remote_local_fallback
默认值:“false”- 在远程执行失败时是否回退到独立的本地执行策略。
--remote_local_fallback_strategy=<a string>
默认值:“local”- 已弃用。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7480。
--remote_max_connections=<an integer>
默认值:“100”-
限制与远程缓存/执行器的并发连接数上限。默认值为 100。将此值设为 0 意味着没有限制。
对于 HTTP 远程缓存,一个 TCP 连接可以一次处理一个请求,因此 Bazel 最多可以发出 --remote_max_connections 个并发请求。
对于 gRPC 远程缓存/执行器,一个 gRPC 通道通常可以处理 100 多个并发请求,因此 Bazel 可以围绕 `--remote_max_connections * 100` 进行并发请求。
标签:host_machine_resource_optimizations
--remote_proxy=<a string>
默认值:请参阅说明- 通过代理连接到远程缓存。目前,此标志只能用于配置 Unix 网域套接字 (unix:/path/to/socket)。
--remote_result_cache_priority=<an integer>
默认值:“0”- 要存储在远程缓存中的远程操作的相对优先级。特定优先级值的语义取决于服务器。
--remote_retries=<an integer>
默认值:“5”- 尝试重试暂时性错误的次数上限。如果设置为 0,系统会停用重试。
--remote_retry_max_delay=<An immutable length of time.>
默认值:“5s”- 远程重试尝试之间的最长退避延迟时间。可以使用以下单位:天 (d)、小时 (h)、分钟 (m)、秒 (s) 和毫秒 (ms)。如果省略单位,系统会将该值解读为秒。
--remote_timeout=<An immutable length of time.>
默认值:“60 秒”- 等待远程执行和缓存调用的最长时间。对于 REST 缓存,这是指连接和读取超时。可以使用以下单位:天 (d)、小时 (h)、分钟 (m)、秒 (s) 和毫秒 (ms)。如果省略单位,系统会将该值解读为秒。
--[no]remote_upload_local_results
默认值:“true”- 是否将本地执行的操作结果上传到远程缓存(如果远程缓存支持该功能且用户有权这样做)。
--[no]remote_verify_downloads
默认值:“true”- 如果设置为 true,Bazel 将计算所有远程下载的哈希值,如果远程缓存的值与预期值不匹配,则舍弃这些值。 。
- 未以其他方式分类的其他选项:
--[no]allow_analysis_cache_discard
默认值:“true”-
如果由于构建系统的变化而舍弃分析缓存,将此选项设置为 false 将导致 bazel 退出,而不是继续构建。当“discard_analysis_cache”满足。
标签:eagerness_to_exit
--auto_output_filter=<none, all, packages or subpackages>
默认值:“无”- 如果未指定 --output_filter,则此选项的值会自动用于创建过滤器。允许的值为“none”(不过滤 / 显示所有内容)、“全部”(过滤所有内容 / 不显示任何内容)、“软件包”(包括 Blaze 命令行上提到的软件包中规则的输出)和“subpackages”(例如“packages”,但也包括子包)。对于“软件包”和“子软件包”值 //java/foo 和 //javatests/foo 被视为一个软件包)。
--[no]build_manual_tests
默认值:“false”- 强制使用标记为“手动”的测试目标生成式 AI。“手动”不会进行处理此选项会强制构建这些方法(但不执行)。
--build_tag_filters=<comma-separated list of options>
默认值:“”- 指定以逗号分隔的标记列表。您可以根据需要在每个标记前面加上“-”以指定排除的标记。系统只会构建那些包含至少 1 个已包含标记且不包含任何已排除标记的目标。此选项不会影响通过“test”命令;受测试过滤选项(如“--test_tag_filters”)约束 。
--[no]build_tests_only
默认值:“false”- 如果已指定,则将仅构建 *_test 和 test_suite 规则,并忽略命令行中指定的其他目标。默认情况下,系统会构建请求的所有内容。
--combined_report=<none or lcov>
默认值:“无”- 指定所需的累计覆盖率报表类型。目前仅支持 LCOV。
--[no]compile_one_dependency
默认值:“false”- 编译参数文件的单个依赖项。这对于检查 IDE 中的源文件的语法非常有用,例如,通过重新构建依赖于源文件的单个目标,在编辑/构建/测试周期中尽早检测到错误。此参数会影响所有非标志参数的解释方式;它们不是构建的目标,而是源文件名。对于每个源文件名,将构建依赖于该文件名的任意目标。
- 累计使用了
--deleted_packages=<comma-separated list of package names>
次 - 以逗号分隔的软件包名称列表,构建系统认为不存在这些软件包,即使它们在软件包路径上的某处可见。 删除子包“x/y”时使用此选项现有软件包“x”的一个名称例如,在客户端中删除 x/y/BUILD 后,构建系统可能会指出如果遇到标签“//x:y/z”(如果仍由另一个 package_path 条目提供)。指定 --deleted_packages x/y 可以避免此问题。
--[no]discard_analysis_cache
默认值:“false”- 在分析阶段完成后立即舍弃分析缓存。将内存用量减少约 10%,但会进一步减慢增量构建的速度。
--disk_cache=<a path>
默认值:请参阅说明- 指向 Bazel 可在其中读取和写入操作及操作输出的目录的路径。如果该目录不存在,系统将会创建该目录。
--embed_label=<a one-line string>
默认值:“”- 在二进制文件中嵌入源代码控制修订版本或发布标签
--execution_log_binary_file=<a path>
默认值:请参阅说明- 根据 src/main/protobuf/spawn.proto,以长度分隔的 SpawnExec proto 将执行的生成器记录到此文件中。相关标志:--execution_log_json_file(文本 JSON 格式;互斥)、--execution_log_sort(是否对执行日志进行排序)、--子命令(用于在终端输出中显示子命令)。
--execution_log_json_file=<a path>
默认值:请参阅说明- 根据 src/main/protobuf/spawn.proto,以换行符分隔的 JSON 表示形式将执行的生成项记录到此文件中。相关标志:--execution_log_binary_file(二进制 protobuf 格式;互斥)、--execution_log_sort(是否对执行日志进行排序);--子命令(用于在终端输出中显示子命令)。
--[no]execution_log_sort
默认值:“true”- 是否对执行日志进行排序,以便更轻松地比较多次调用的日志。设置为 false 以避免在调用结束时可能产生大量 CPU 和内存用量,但代价是以不确定的执行顺序生成日志。仅适用于二进制文件和 JSON 格式;紧凑格式从不排序。
--[no]expand_test_suites
默认值:“true”-
在分析之前,将 test_suite 目标扩展到其组成测试中。当此标志处于启用状态(默认设置)时,排除性目标格式将应用于属于该测试套件的测试,否则不会。如果在命令行中应用顶级切面,关闭此标志会很有用:这样的话,它们可以分析 test_suite 目标。
标签:loading_and_analysis
--experimental_disk_cache_max_size=<a size in bytes, optionally followed by a K, M, G or T multiplier>
默认值:“0”- 尚不能使用。
--experimental_execution_log_compact_file=<a path>
默认值:请参阅说明- 根据 src/main/protobuf/spawn.proto,以长度分隔的 ExecLogEntry proto 将执行的生成项记录到此文件中。整个文件均经过 zstd 压缩。这是一种实验性格式,正在积极开发中,随时可能会更改。相关标志:--execution_log_binary_file(二进制 protobuf 格式;互斥)、--execution_log_json_file(文本 JSON 格式;互斥)、--子命令(用于在终端输出中显示子命令)。
--experimental_extra_action_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>
默认值:“”- 已弃用,取而代之的是切面。过滤要调度 extra_actions 的一组目标。
--[no]experimental_extra_action_top_level_only
默认值:“false”- 已弃用,取而代之的是切面。仅为顶级目标安排 extra_actions 操作。
--experimental_spawn_scheduler
-
在本地和远程并行运行操作,实现动态执行。Bazel 会从本地和远程生成每个操作,并选择最先完成的操作。如果某项操作支持 worker,则本地操作将在持久工作器模式下运行。如需为单个操作助记符启用动态执行功能,请改用“--internal_spawn_scheduler”和“--strategy=<mnemonic>=dynamic”标志。
扩展为:
--internal_spawn_scheduler
--spawn_strategy=dynamic
--[no]fetch
默认值:“true”- 允许该命令提取外部依赖项。如果设为 false,该命令将使用依赖项的任何缓存版本;如果不存在,该命令将导致失败。
--local_termination_grace_seconds=<an integer>
默认值:“15”- 因超时而终止本地进程与强制关闭本地进程之间的等待时间。
--package_path=<colon-separated list of options>
默认值:“%workspace%”- 以英文冒号分隔的列表,用于列出查找软件包的位置。以“%workspace%”开头的元素相对于外围工作区如果省略或为空,则默认为“bazel info default-package-path”的输出。
--[no]show_loading_progress
默认值:“true”- 如果启用,则会导致 Bazel 输出“正在加载软件包:”。消息。
--test_lang_filters=<comma-separated list of options>
默认值:“”- 指定以英文逗号分隔的测试语言列表。每种语言都可选择性地在前面加上“-”以指定排除的语言。只能找到以特定语言编写的测试目标。每种语言使用的名称应与 *_test 规则中的语言前缀相同,例如“cc”“java”“py”等之一。此选项会影响 --build_tests_only 行为和测试命令。
--test_size_filters=<comma-separated list of values: small, medium, large, or enormous>
默认值:“”- 指定以英文逗号分隔的测试尺寸列表。每个尺寸都可选择性地在前面加上“-”以指定排除的尺寸。系统只会找到包含至少 1 个包含尺寸且不包含任何已排除尺寸的测试目标。此选项会影响 --build_tests_only 行为和测试命令。
--test_tag_filters=<comma-separated list of options>
默认值:“”- 指定以英文逗号分隔的测试标记列表。您可以根据需要在每个标记前面加上“-”以指定排除的标记。只能找到包含至少 1 个已包含标记但不包含任何已排除标记的测试目标。此选项会影响 --build_tests_only 行为和测试命令。
--test_timeout_filters=<comma-separated list of values: short, moderate, long, or eternal>
默认值:“”- 以逗号分隔列表的形式指定测试超时。可以选择在每个超时之前加上“-”以指定排除的超时时间。系统仅会找到那些包含至少 1 次超时且不包含任何已排除的超时的测试目标。此选项会影响 --build_tests_only 行为和测试命令。
--workspace_status_command=<path>
默认值:“”- 在构建开始时调用的命令,以键值对的形式提供有关工作区的状态信息。有关完整规范,请参阅用户手册。另请参阅 tools/buildstamp/get_workspace_status 的相关示例。 。
- 用于控制构建执行的选项:
--[no]experimental_inprocess_symlink_creation
默认值:“false”-
是否发起直接文件系统调用以创建符号链接树
标签:loading_and_analysis
、execution
、experimental
--[no]experimental_persistent_aar_extractor
默认值:“false”-
使用工作器启用永久性 aar 提取器。
标签:execution
--[no]experimental_remotable_source_manifests
默认值:“false”-
是否将源清单操作设为远程
标签:loading_and_analysis
、execution
、experimental
--[no]experimental_split_coverage_postprocessing
默认值:“false”-
如果为 true,则 Bazel 将在新的生成对象中运行覆盖率后处理以进行测试。
标签:execution
--[no]experimental_strict_fileset_output
默认值:“false”-
如果启用此选项,文件集会将所有输出制品视为常规文件。它们不会遍历目录,也不会对符号链接敏感。
标签:execution
--[no]incompatible_modify_execution_info_additive
默认值:“false”-
启用后,传递多个 --modify_execution_info 标志是累加的。停用后,系统只会考虑最后一个标志。
标签:execution
、affects_outputs
、loading_and_analysis
、incompatible_change
- 累计使用了
--modify_execution_info=<regex=[+-]key,regex=[+-]key,...>
次 -
根据操作助记符在操作的执行信息中添加或移除键。仅适用于支持执行信息的操作。许多常见操作都支持执行信息,例如Genrule、CppCompile、Javac、StarlarkAction、TestRunner。指定多个值时,顺序很重要,因为许多正则表达式可能适用于同一个助记符。
语法:“regex=[+-]key,regex=[+-]key,...”。
示例:
'.*=+x,.*=-y,.*=+z'添加“x”和“z”并移除“y”from - 所有操作的执行信息。
“Genrule=+requires-x”添加“requires-x”所有 Genrule 操作的执行信息。
'(?!Genrule).*=-requires-x'移除了“requires-x”。
标签:execution
、affects_outputs
、loading_and_analysis
--persistent_android_dex_desugar
-
使用 worker 启用持久性 Android dex 和脱糖操作。
扩展为:
--internal_persistent_android_dex_desugar
--strategy=Desugar=worker
--strategy=DexBuilder=worker
标签:host_machine_resource_optimizations
、execution
--persistent_android_resource_processor
-
使用工作器启用永久性 Android 资源处理器。
扩展为:
--internal_persistent_busybox_tools
--strategy=AaptPackage=worker
--strategy=AndroidResourceParser=worker
--strategy=AndroidResourceValidator=worker
--strategy=AndroidResourceCompiler=worker
--strategy=RClassGenerator=worker
--strategy=AndroidResourceLink=worker
--strategy=AndroidAapt2=worker
--strategy=AndroidAssetMerger=worker
--strategy=AndroidResourceMerger=worker
--strategy=AndroidCompiledResourceMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker
--strategy=Aapt2Optimize=worker
--strategy=AARGenerator=worker
--strategy=ProcessDatabinding=worker
--strategy=GenerateDataBindingBaseClasses=worker
{17/
标签:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_dex_desugar
-
使用 worker 启用持久性多路复用 Android dex 和脱糖操作。
扩展为:
--persistent_android_dex_desugar
--internal_persistent_multiplex_android_dex_desugar
标签:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_resource_processor
-
使用工作器启用永久性多路复用 Android 资源处理器。
扩展为:
--persistent_android_resource_processor
--modify_execution_info=AaptPackage=+supports-multiplex-workers
--modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
--modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceCompiler=+supports-multiplex-workers
--modify_execution_info=RClassGenerator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceLink=+supports-multiplex-workers
--modify_execution_info=AndroidAapt2=+supports-multiplex-workers
--modify_execution_info=AndroidAssetMerger=+supports-multiplex-workers
--modify_execution_info=AndroidResourceMerger=+supports-multiplex-workers
--modify_execution_info=AndroidCompiledResourceMerger=+supports-multiplex-workers
--modify_execution_info=ManifestMerger=+supports-multiplex-workers
--modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=AARGenerator=+supports-multiplex-workers
标签:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_tools
-
启用持久性和多路复用 Android 工具(dex 处理、脱糖、资源处理)。
扩展为:
--internal_persistent_multiplex_busybox_tools
--persistent_multiplex_android_resource_processor
--persistent_multiplex_android_dex_desugar
标签:host_machine_resource_optimizations
、execution
--[no]use_target_platform_for_tests
默认值:“false”-
如果为 true,则 Bazel 将使用目标平台(而不是测试执行组)来运行测试。
标签:execution
- 用于配置用于执行操作执行的工具链的选项:
--android_compiler=<a string>
默认值:请参阅说明-
Android 目标编译器。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
--android_manifest_merger=<legacy, android or force_android>
默认值:“android”-
选择要用于 android_binary 规则的清单合并程序。用于帮助从旧版合并转换为 Android 清单合并的标志。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
--android_platforms=<a build target label>
默认值:“”-
设置 android_binary 目标使用的平台。如果指定了多个平台,则二进制文件为胖 APK,其中包含每个指定目标平台的原生二进制文件。
标签:changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_sdk=<a build target label>
默认值:“@bazel_tools//tools/android:sdk”-
指定用于构建 Android 应用的 Android SDK/平台。
标签:changes_inputs
、loading_and_analysis
、loses_incremental_state
--apple_crosstool_top=<a build target label>
默认值:“@bazel_tools//tools/cpp:toolchain"-
要在 Apple 和 Objc 规则及其依赖项中使用的 crosstool 软件包标签。
标签:loses_incremental_state
、changes_inputs
--cc_output_directory_tag=<a string>
默认值:“”-
指定要添加到配置目录的后缀。
标签:affects_outputs
--compiler=<a string>
默认值:请参阅说明-
用于编译目标的 C++ 编译器。
标签:loading_and_analysis
、execution
--coverage_output_generator=<a build target label>
默认值:“@bazel_tools//tools/test:lcov_merger”-
用于对原始覆盖率报表进行后处理的二进制文件的位置。目前,它必须是包含一个文件(即二进制文件)的文件组。默认值为“//tools/test:lcov_merger”。
标签:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_report_generator=<a build target label>
默认值:“@bazel_tools//tools/test:coverage_report_generator”-
用于生成覆盖率报告的二进制文件的位置。目前,它必须是包含一个文件(即二进制文件)的文件组。默认值为“//tools/test:coverage_report_generator”。
标签:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_support=<a build target label>
默认值:“@bazel_tools//tools/test:coverage_support”-
收集代码覆盖率的每个测试操作的输入中所需的支持文件的位置。默认值为“//tools/test:coverage_support”。
标签:changes_inputs
、affects_outputs
、loading_and_analysis
--custom_malloc=<a build target label>
默认值:请参阅说明-
指定自定义 malloc 实现。此设置会覆盖构建规则中的 malloc 属性。
标签:changes_inputs
、affects_outputs
- 累计使用了
--experimental_add_exec_constraints_to_targets=<a '<RegexFilter>=<label1>[,<label2>,...]' assignment>
次 -
以英文逗号分隔的正则表达式列表,每个可选表达式前缀为 -(负表达式),为以英文逗号分隔的限制条件值目标列表分配 (=)。如果某个目标与任何负表达式或至少一个正表达式匹配,系统将执行其工具链解析,就像它将约束值声明为执行约束一样。示例://demo,-test=@platforms//cpus:x86_64 will add 'x86_64'//demo 下除名称中包含“test”的目标之外的任何目标。
标签:loading_and_analysis
--[no]experimental_include_xcode_execution_requirements
默认值:“false”-
如果设置了“requires-xcode:{version}”,则添加一个执行要求如果 Xcode 版本有带连字符的标签,请同时添加“requires-xcode-label:{version_label}”执行要求。
标签:loses_incremental_state
、loading_and_analysis
、execution
--[no]experimental_prefer_mutual_xcode
默认值:“true”-
如果为 true,请使用本地和远程均可使用的最新 Xcode。如果为 false,或者没有相互可用的版本,则使用通过 xcode-select 选择的本地 Xcode 版本。
标签:loses_incremental_state
--extra_execution_platforms=<comma-separated list of options>
默认值:“”-
可作为执行平台来执行操作的平台。平台可以按确切目标指定,也可以指定为目标模式。这些平台将优先于 register_execution_platforms() 在 WORKSPACE 文件中声明的平台得到考虑。此选项只能设置一次;较晚的实例将覆盖较早的标志设置。
标签:execution
- 累计使用了
--extra_toolchains=<comma-separated list of options>
次 -
工具链解析期间要考虑的工具链规则。工具链可以按确切目标指定,也可以指定为目标模式。系统将优先考虑这些工具链,然后再考虑 register_toolchains() 在 WORKSPACE 文件中声明的工具链。
标签:affects_outputs
、changes_inputs
、loading_and_analysis
--grte_top=<a label>
默认值:请参阅说明-
指向已检入的 libc 库的标签。默认值由 Crosstool 工具链选择,您几乎永远不需要替换它。
标签:action_command_lines
、affects_outputs
--host_compiler=<a string>
默认值:请参阅说明-
空操作标志。将在未来的版本中移除。
标签:loading_and_analysis
、execution
--host_grte_top=<a label>
默认值:请参阅说明-
如果指定,此设置将覆盖 exec 配置的 libc 顶级目录 (--grte_top)。
标签:action_command_lines
、affects_outputs
--host_platform=<a build target label>
默认值:“@bazel_tools//tools:host_platform”-
描述主机系统的平台规则的标签。
标签:affects_outputs
、changes_inputs
、loading_and_analysis
--[no]incompatible_bazel_test_exec_run_under
默认值:“false”-
启用后,系统会显示“bazel test --run_under=//:runner”构建 "//:runner"在 exec 配置中指定。如果停用,它将构建“//:runner”。Bazel 在执行机器上执行测试,因此前者更加正确。这不会影响“bazel run”,后者始终会构建“`--run_under=//foo”。
标签:affects_outputs
、incompatible_change
--[no]incompatible_dont_enable_host_nonhost_crosstool_features
默认值:“true”-
如果为 true,Bazel 将不会启用“主机”和“非主机”功能(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7407)。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_enable_apple_toolchain_resolution
默认值:“false”-
使用工具链解析为 Apple 规则选择 Apple SDK(Starlark 和原生)
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_remove_legacy_whole_archive
默认值:“true”-
如果为 true,默认情况下,Bazel 不会将库依赖项关联为整个归档(有关迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/7362)。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_strip_executable_safely
默认值:“false”-
如果为 true,针对可执行文件的剥离操作将使用标志 -x,这不会破坏动态符号解析。
标签:action_command_lines
、incompatible_change
-
使用接口共享对象(如果工具链支持)。目前,所有 ELF 工具链都支持此设置。
标签:loading_and_analysis
、affects_outputs
、affects_outputs
--ios_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
指定用于构建 iOS 应用的 iOS SDK 版本。如果未指定,系统会使用“xcode_version”的默认 iOS SDK 版本。
标签:loses_incremental_state
--macos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
指定用于构建 macOS 应用的 macOS SDK 版本。如果未指定,系统会使用“xcode_version”中的默认 macOS SDK 版本。
标签:loses_incremental_state
--minimum_os_version=<a string>
默认值:请参阅说明-
编译针对的最低操作系统版本。
标签:loading_and_analysis
、affects_outputs
--platform_mappings=<a relative path>
默认值:“”-
映射文件的位置,用于描述未设置任何平台时要使用的平台,或在平台已存在时设置哪些标志。必须相对于主工作区根目录。默认值为“platform_mappings”(工作区根目录下的文件)。
标签:affects_outputs
、changes_inputs
、loading_and_analysis
、immutable
--platforms=<a build target label>
默认值:“”-
描述当前命令目标平台的平台规则的标签。
标签:affects_outputs
、changes_inputs
、loading_and_analysis
--python_path=<a string>
默认值:请参阅说明-
为了在目标平台上运行 Python 目标而调用的 Python 解释器的绝对路径。已弃用;已被 --incompatible_use_python_toolchains 停用。
标签:loading_and_analysis
、affects_outputs
--python_top=<a build target label>
默认值:请参阅说明-
py_runtime 的标签,表示为在目标平台上运行 Python 目标而调用的 Python 解释器。已弃用;已被 --incompatible_use_python_toolchains 停用。
标签:loading_and_analysis
、affects_outputs
--tvos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
指定用于构建 tvOS 应用的 tvOS SDK 版本。如果未指定,系统会使用“xcode_version”中的默认 tvOS SDK 版本。
标签:loses_incremental_state
--watchos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
指定用于构建 watchOS 应用的 watchOS SDK 版本。如果未指定,将使用“xcode_version”中的默认 watchOS SDK 版本。
标签:loses_incremental_state
--xcode_version=<a string>
默认值:请参阅说明-
如果指定,则使用指定版本的 Xcode 执行相关构建操作。如果未指定,则使用默认执行器版本的 Xcode。
标签:loses_incremental_state
--xcode_version_config=<a build target label>
默认值:“@bazel_tools//tools/cpp:host_xcodes”-
xcode_config 规则的标签,用于在 build 配置中选择 Xcode 版本。
标签:loses_incremental_state
、loading_and_analysis
- 用于控制命令输出的选项:
--[no]apple_generate_dsym
默认值:“false”-
是否生成调试符号 (.dSYM) 文件。
标签:affects_outputs
、action_command_lines
--[no]build_runfile_links
默认值:“true”-
如果为 true,则会为所有目标构建 runfiles 符号链接林。如果为 false,则仅在本地操作、测试或运行命令需要时编写这些代码。
标签:affects_outputs
--[no]build_runfile_manifests
默认值:“true”-
如果为 true,请为所有目标编写 runfiles 清单。如果为 false,请忽略它们。如果为 false,本地测试将无法运行。
标签:affects_outputs
--[no]build_test_dwp
默认值:“false”-
启用后,在采用 fission 静态构建 C++ 测试时,测试二进制文件的 .dwp 文件也会自动构建。
标签:loading_and_analysis
、affects_outputs
--cc_proto_library_header_suffixes=<comma-separated set of options>
默认值:“.pb.h”-
设置 cc_proto_library 创建的头文件的后缀。
标签:affects_outputs
、loading_and_analysis
--cc_proto_library_source_suffixes=<comma-separated set of options>
默认值:“.pb.cc”-
设置 cc_proto_library 创建的源文件的后缀。
标签:affects_outputs
、loading_and_analysis
--[no]experimental_proto_descriptor_sets_include_source_info
默认值:“false”-
针对 proto_library 中的备用 Java API 版本运行额外操作。
标签:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_save_feature_state
默认值:“false”-
将已启用和已请求功能的状态保存为编译输出。
标签:affects_outputs
、experimental
--fission=<a set of compilation modes>
默认值:“no”-
指定哪些编译模式对 C++ 编译和链接使用 fission。可以是 {'Fastbuild', 'dbg', 'opt'} 或特殊值“yes”的任意组合启用所有模式,选择“no”来停用所有模式。
标签:loading_and_analysis
、action_command_lines
、affects_outputs
--[no]incompatible_always_include_files_in_data
默认值:“true”-
如果为 true,原生规则会添加 <code>DefaultInfo.files</code>数据依赖项映射到其 runfile,这与 Starlark 规则 (https://bazel.build/extending/rules#runfiles_features_to_avoid) 的建议行为一致。
标签:affects_outputs
、incompatible_change
--[no]legacy_external_runfiles
默认值:“true”-
如果为 true,则除了 .runfiles/repo 之外,还可以在 .runfiles/wsname/external/repo 下为外部代码库构建 runfiles 符号链接林。
标签:affects_outputs
--[no]objc_generate_linkmap
默认值:“false”-
指定是否生成链接映射文件。
标签:affects_outputs
--[no]save_temps
默认值:“false”-
如果设置,则会保存 gcc 的临时输出。包括 .s 文件(汇编代码)、.i 文件(预处理的 C 语言)和 .ii 文件(预处理的 C++)。
标签:affects_outputs
- 可让用户配置预期输出并影响输出值(而不是其存在性)的选项:
- 累计使用了
--action_env=<a 'name=value' assignment with an optional value part>
次 -
指定可用于具有目标配置的操作的一组环境变量。变量可以按名称指定,在这种情况下,值将从调用环境中获取;也可以按 name=value 对指定,该值独立于调用环境设置。此选项可以多次使用;对于同一变量给出的选项,最近的胜出者、不同变量的选项累计。
标签:action_command_lines
--[no]android_databinding_use_androidx
默认值:“true”-
生成与 AndroidX 兼容的数据绑定文件。这仅适用于数据绑定 v2。此标志是一个空操作。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]android_databinding_use_v3_4_args
默认值:“true”-
使用带有 3.4.0 参数的 Android 数据绑定 v2。此标志是一个空操作。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--android_dynamic_mode=<off, default or fully>
默认值:“关闭”-
确定当 cc_binary 未明确创建共享库时,Android 规则的 C++ 依赖项是否会动态关联。“default”表示 bazel 将选择是否进行动态关联。“full”表示所有库都将动态关联。“关闭”表示在大多静态模式下链接所有库。
标签:affects_outputs
、loading_and_analysis
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency>
默认值:“alphabetical”-
设置传递给 Android 二进制文件的清单合并程序的清单的顺序。ALPHABETical 表示清单按相对于 execroot 的路径进行排序。ALPHABETical_BY_CONFIGURATION 表示清单按相对于输出目录中配置目录的路径进行排序。“DEPENDENCY(依赖项)”表示对清单进行排序,使每个库的清单排在其依赖项清单之前。
标签:action_command_lines
、execution
--[no]android_resource_shrinking
默认值:“false”-
为使用 ProGuard 的 android_binary APK 启用资源压缩。
标签:affects_outputs
、loading_and_analysis
--[no]build_python_zip
默认值:“auto”-
构建 Python 可执行 zip;在其他平台上关闭
标签:affects_outputs
- 累计使用了
--catalyst_cpus=<comma-separated list of options>
次 -
用于构建 Apple Catalyst 二进制文件的架构的逗号分隔列表。
标签:loses_incremental_state
、loading_and_analysis
--[no]collect_code_coverage
默认值:“false”-
如果指定,Bazel 将对代码进行插桩(尽可能使用离线插桩),并在测试期间收集覆盖率信息。只有与 --instrument_filter 匹配的目标会受到影响。通常,不应直接指定此选项 - 'bazel reach'命令。
标签:affects_outputs
--compilation_mode=<fastbuild, dbg or opt>
[-c
] 默认值:“Fastbuild”-
指定构建二进制文件的模式。值:“Fastbuild”“dbg”“opt”。
标签:affects_outputs
、action_command_lines
- 累计使用了
--conlyopt=<a string>
次 -
这是在编译 C 源文件时传递给 gcc 的附加选项。
标签:action_command_lines
、affects_outputs
- 累计使用了
--copt=<a string>
次 -
传递给 gcc 的其他选项。
标签:action_command_lines
、affects_outputs
--cpu=<a string>
默认值:“”-
目标 CPU。
标签:changes_inputs
、affects_outputs
--cs_fdo_absolute_path=<a string>
默认值:请参阅说明-
使用 CSFDO 配置文件信息优化编译。指定包含配置文件、原始或已编入索引的 LLVM 配置文件的 ZIP 文件的绝对路径名。
标签:affects_outputs
--cs_fdo_instrument=<a string>
默认值:请参阅说明-
使用上下文敏感 FDO 插桩生成二进制文件。使用 Clang/LLVM 编译器,它还接受将在运行时转储原始配置文件的目录名称。
标签:affects_outputs
--cs_fdo_profile=<a build target label>
默认值:请参阅说明-
cs_fdo_profile,表示要用于优化的上下文敏感配置文件。
标签:affects_outputs
- 累计使用了
--cxxopt=<a string>
次 -
编译 C++ 源文件时传递给 gcc 的附加选项。
标签:action_command_lines
、affects_outputs
- 累计使用了
--define=<a 'name=value' assignment>
次 -
每个 --define 选项都会指定对 build 变量的赋值。如果一个变量有多个值,以最后一个值为准。
标签:changes_inputs
、affects_outputs
--dynamic_mode=<off, default or fully>
默认值:“默认”-
确定是否会动态链接 C++ 二进制文件。“default”这意味着 Bazel 将选择是否进行动态关联。“full”表示所有库都将动态关联。“关闭”表示在大多静态模式下链接所有库。
标签:loading_and_analysis
、affects_outputs
--[no]enable_propeller_optimize_absolute_paths
默认值:“true”-
如果已设置,任何对推进器优化的绝对路径使用都会引发错误。
标签:affects_outputs
--[no]enable_remaining_fdo_absolute_paths
默认值:“true”-
如果已设置,任何对 FDO 使用绝对路径都会引发错误。
标签:affects_outputs
--[no]enable_runfiles
默认值:“auto”-
启用 runfiles 符号链接树;在 Windows 和其他平台上,此设置默认处于关闭状态。
标签:affects_outputs
- 累计使用了
--experimental_action_listener=<a build target label>
次 -
已弃用,取而代之的是切面。使用 action_listener 将 extra_action 附加到现有构建操作。
标签:execution
、experimental
--[no]experimental_android_compress_java_resources
默认值:“false”-
压缩 APK 中的 Java 资源
标签:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_android_databinding_v2
默认值:“true”-
使用 Android Databinding v2。此标志是一个空操作。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]experimental_android_resource_shrinking
默认值:“false”-
为使用 ProGuard 的 android_binary APK 启用资源压缩。
标签:affects_outputs
、loading_and_analysis
--[no]experimental_android_rewrite_dexes_with_rex
默认值:“false”-
使用 rex 工具重写 dex 文件
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]experimental_collect_code_coverage_for_generated_files
默认值:“false”-
如果已指定,Bazel 还会为生成的文件生成收集覆盖率信息。
标签:affects_outputs
--experimental_objc_fastbuild_options=<comma-separated list of options>
默认值:“-O0,-DDEBUG=1”-
将这些字符串用作 objc fastbuild 编译器选项。
标签:action_command_lines
--[no]experimental_omitfp
默认值:“false”-
如果为 true,则使用 libunwind 进行堆栈展开,并使用 -fomit-frame-pointer 和 -fasynchronous-unwind-tables 进行编译。
标签:action_command_lines
、affects_outputs
、experimental
--experimental_output_paths=<off, content or strip>
默认值:“关闭”-
使用哪种模型来确定在输出树规则中的什么位置写入输出,尤其是对于多平台 / 多配置 build。这是一项实验性功能。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/6526。Starlark 操作可以通过添加键“supports-path-mapping”来选择启用路径映射对“Execution_requirements”字典。
标签:loses_incremental_state
、bazel_internal_configuration
、affects_outputs
、execution
- 累计使用了
--experimental_override_name_platform_in_output_dir=<a 'label=value' assignment>
次 -
每个条目都应采用 label=value 格式,其中 label 代表平台, values 是要在输出路径中使用的所需简称。仅在 --experimental_platform_in_output_dir 为 true 时使用。具有最高命名优先级。
标签:affects_outputs
、experimental
--[no]experimental_platform_in_output_dir
默认值:“false”-
如果为 true,则输出目录名称(而非 CPU)将使用目标平台的简称。确切方案是实验性的,并且可能会发生变化:首先,在极少数情况下,--platforms 选项不只有一个值,而是使用 platform 选项的哈希值。接下来,如果-experimental_override_name_platform_in_output_dir 注册了当前平台的任何简称,则会使用该简称。然后,如果设置了 --experimental_use_platforms_in_output_dir_legacy_heuristic,使用基于当前平台标签的简称。最后,在万不得已时才使用平台选项的哈希值。
标签:affects_outputs
、experimental
--[no]experimental_use_llvm_covmap
默认值:“false”-
如果指定,则启用 collect_code_coverage 时,Bazel 将生成 llvm-cov 覆盖率地图信息,而不是 gcov。
标签:changes_inputs
、affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_use_platforms_in_output_dir_legacy_heuristic
默认值:“true”-
只有在建议的迁移或测试策略中使用此标志,请注意,启发法存在一些已知缺陷,建议改用仅依赖于 --experimental_override_name_platform_in_output_dir。
标签:affects_outputs
、experimental
--fat_apk_cpu=<comma-separated set of options>
默认值:“armeabi-v7a”-
设置此选项会启用胖 APK,其中包含所有指定目标架构的原生二进制文件,例如--fat_apk_cpu=x86,armeabi-v7a.如果指定了此标志,则对于 android_binary 规则的依赖项,--android_cpu 会被忽略。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
--fdo_instrument=<a string>
默认值:请参阅说明-
使用 FDO 插桩生成二进制文件。使用 Clang/LLVM 编译器,它还接受将在运行时转储原始配置文件的目录名称。
标签:affects_outputs
--fdo_optimize=<a string>
默认值:请参阅说明-
使用 FDO 配置文件信息来优化编译。指定包含 .gcda 文件树的 ZIP 文件、包含自动配置文件的 afdo 文件或 LLVM 配置文件的名称。此标志还接受指定为标签的文件(例如 `//foo/bar:file.afdo`,您可能需要向相应的软件包添加 `exports_files` 指令)和指向 `fdo_profile` 目标的标签。此标志将被“fdo_profile”规则取代。
标签:affects_outputs
--fdo_prefetch_hints=<a build target label>
默认值:请参阅说明-
使用缓存预提取提示。
标签:affects_outputs
--fdo_profile=<a build target label>
默认值:请参阅说明-
fdo_profile 表示要用于优化的配置文件。
标签:affects_outputs
- 累计使用了
--features=<a string>
次 -
默认情况下,将为目标配置中构建的目标启用或停用指定功能。指定 -<feature>即可停用此功能排除性功能始终会覆盖肯定功能。另请参阅 --host_features
标签:changes_inputs
、affects_outputs
--[no]force_pic
默认值:“false”-
启用后,所有 C++ 编译都会生成位置无关代码(“-fPIC”),链接会优先生成 PIC 预构建库而不是非 PIC 库,链接会生成与位置无关的可执行文件(“-pie”)。
标签:loading_and_analysis
、affects_outputs
- 累计使用了
--host_action_env=<a 'name=value' assignment with an optional value part>
次 -
指定一组环境变量,供具有执行配置的操作使用。变量可以按名称指定,在这种情况下,值将从调用环境中获取;也可以按 name=value 对指定,该值独立于调用环境设置。此选项可以多次使用;对于同一变量给出的选项,最近的胜出者、不同变量的选项累计。
标签:action_command_lines
--host_compilation_mode=<fastbuild, dbg or opt>
默认值:“opt”-
指定构建期间使用的工具将采用的模式。值:“Fastbuild”“dbg”“opt”。
标签:affects_outputs
、action_command_lines
- 累计使用了
--host_conlyopt=<a string>
次 -
在 exec 配置中编译 C(而非 C++)源文件时要传递到 C 编译器的附加选项。
标签:action_command_lines
、affects_outputs
- 累计使用了
--host_copt=<a string>
次 -
对于在 exec 配置中构建的工具,要传递给 C 编译器的其他选项。
标签:action_command_lines
、affects_outputs
--host_cpu=<a string>
默认值:“”-
主机 CPU。
标签:changes_inputs
、affects_outputs
- 累计使用了
--host_cxxopt=<a string>
次 -
对于在 exec 配置中构建的工具,要传递给 C++ 编译器的其他选项。
标签:action_command_lines
、affects_outputs
- 累计使用了
--host_features=<a string>
次 -
对于在 exec 配置中构建的目标,将默认启用或停用给定功能。指定 -<feature>即可停用此功能排除性功能始终会覆盖肯定功能。
标签:changes_inputs
、affects_outputs
--host_force_python=<PY2 or PY3>
默认值:请参阅说明-
替换 exec 配置的 Python 版本。可以是“PY2”或“PY3”
标签:loading_and_analysis
、affects_outputs
- 累计使用了
--host_linkopt=<a string>
次 -
链接 exec 配置中的工具时要传递给链接器的附加选项。
标签:action_command_lines
、affects_outputs
--host_macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
主机目标的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
标签:loses_incremental_state
- 累计使用了
--host_per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>
次 -
在 exec 配置中编译某些文件时,有选择地传递给 C/C++ 编译器的附加选项。此选项可以多次传递。语法: regex_filter@option_1,option_2,...,option_n。其中 regex_filter 代表包含和排除正则表达式模式的列表(另请参阅 --instrument_filter)。option_1 到 option_n 代表任意命令行选项。如果选项包含英文逗号,则必须使用反斜杠将其括住。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--host_per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 可将 -O0 命令行选项添加到 //foo/ 中除 bar.cc 之外的所有 cc 文件的 gcc 命令行中。
标签:action_command_lines
、affects_outputs
--[no]incompatible_auto_exec_groups
默认值:“false”-
启用后,系统会自动为规则使用的每个工具链创建执行组。为此,规则需要在其操作中指定“toolchain”参数。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/17134。
标签:affects_outputs
、incompatible_change
--[no]incompatible_merge_genfiles_directory
默认值:“true”-
如果为 true,则 genfiles 目录将放入 bin 目录。
标签:affects_outputs
、incompatible_change
--[no]instrument_test_targets
默认值:“false”-
启用覆盖率后,指定是否考虑检测测试规则。设置后,系统将对 --instrument_filter 包含的测试规则进行插桩测试。否则,始终会从覆盖率插桩中排除测试规则。
标签:affects_outputs
--instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>
默认值:“-/javatests[/:],-/test/java[/:]”-
启用覆盖率后,系统只会对名称包含在指定的基于正则表达式的过滤条件中的规则进行插桩。带有“-”前缀的规则排除。请注意,除非启用 --instrument_test_targets,否则只会对非测试规则进行插桩。
标签:affects_outputs
--ios_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
目标模拟器和设备的最低兼容 iOS 版本。如果未指定,则使用“ios_sdk_version”。
标签:loses_incremental_state
- 累计使用了
--ios_multi_cpus=<comma-separated list of options>
次 -
构建 ios_application 时要使用的架构列表(以英文逗号分隔)。最终会生成包含所有指定架构的通用二进制文件。
标签:loses_incremental_state
、loading_and_analysis
--[no]legacy_whole_archive
默认值:“true”-
已弃用,由 --incompatible_remove_legacy_whole_archive 取代(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7362)。开启此设置后,对具有 linkshared=True 且 linkstatic=True 或“-static”的 cc_binary 规则使用 --whole-archive在 linkopts 中设置这仅用于实现向后兼容性。更好的替代方案是,根据需要使用 alwayslink=1。
标签:action_command_lines
、affects_outputs
、deprecated
- 累计使用了
--linkopt=<a string>
次 -
链接时传递给 gcc 的其他选项。
标签:action_command_lines
、affects_outputs
- 累计使用了
--ltobackendopt=<a string>
次 -
传递给 LTO 后端步骤的附加选项(在 --features=thin_lto 下)。
标签:action_command_lines
、affects_outputs
- 累计使用了
--ltoindexopt=<a string>
次 -
传递给 LTO 索引步骤的附加选项(在 --features=thin_lto 下)。
标签:action_command_lines
、affects_outputs
- 累计使用了
--macos_cpus=<comma-separated list of options>
次 -
用于构建 Apple macOS 二进制文件的架构列表(以英文逗号分隔)。
标签:loses_incremental_state
、loading_and_analysis
--macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
目标的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
标签:loses_incremental_state
--memprof_profile=<a build target label>
默认值:请参阅说明-
使用 memprof 配置文件。
标签:affects_outputs
--[no]objc_debug_with_GLIBCXX
默认值:“false”-
如果已设置,并且编译模式设置为“dbg”,则定义 GLIBCXX_DEBUG、GLIBCXX_DEBUG_PEDANTIC 和 GLIBCPP_CONCEPT_CHECKS。
标签:action_command_lines
--[no]objc_enable_binary_stripping
默认值:“false”-
是否对链接的二进制文件执行符号和死代码剥离。如果同时指定了此标志和 --compile_mode=opt,将执行二进制文件剥离。
标签:action_command_lines
- 累计使用了
--objccopt=<a string>
次 -
编译 Objective-C/C++ 源文件时要传递给 gcc 的其他选项。
标签:action_command_lines
- 累计使用了
--per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>
次 -
其他选项,可在编译特定文件时有选择地传递给 gcc。此选项可以多次传递。语法: regex_filter@option_1,option_2,...,option_n。其中 regex_filter 代表包含和排除正则表达式模式的列表(另请参阅 --instrument_filter)。option_1 到 option_n 代表任意命令行选项。如果选项包含英文逗号,则必须使用反斜杠将其括住。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 将 -O0 命令行选项添加到 //foo/ 中除 bar.cc 之外的所有 cc 文件的 gcc 命令行中。
标签:action_command_lines
、affects_outputs
- 累计使用了
--per_file_ltobackendopt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>
次 -
在编译某些后端对象时,有选择地传递到 LTO 后端(在 --features=thin_lto 下)的其他选项。此选项可以多次传递。语法: regex_filter@option_1,option_2,...,option_n。其中,regex_filter 代表包含和排除正则表达式模式的列表。option_1 到 option_n 代表任意命令行选项。如果选项包含英文逗号,则必须使用反斜杠将其括住。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--per_file_ltobackendopt=//foo/.*\.o,-//foo/bar\.o@-O0 将 -O0 命令行选项添加到 //foo/ 中除 bar.o 之外的所有 o 文件的 LTO 后端命令行。
标签:action_command_lines
、affects_outputs
--platform_suffix=<a string>
默认值:请参阅说明-
指定要添加到配置目录的后缀。
标签:loses_incremental_state
、affects_outputs
、loading_and_analysis
--propeller_optimize=<a build target label>
默认值:请参阅说明-
使用 Propeller 配置文件信息来优化构建目标。一个推进器配置文件必须至少包含两个文件(一个 cc 配置文件和一个 ld 配置文件)中的一个。此标志接受 build 标签,该标签必须引用推进器配置文件输入文件。例如,在 a/b/BUILD:propeller_optimize( name = "propeller_profile", cc_profile = "propeller_cc_profile.txt", ld_profile = "propeller_ld_profile.txt",) 中,定义标签的 BUILD 文件必须添加到相应的软件包中,才能使这些文件对 Bazel 可见。选项必须按以下格式使用:--propeller_optimize=//a/b:propeller_profile
标签:action_command_lines
、affects_outputs
--propeller_optimize_absolute_cc_profile=<a string>
默认值:请参阅说明-
针对 Propeller 优化 build 的 cc_profile 文件的绝对路径名。
标签:affects_outputs
--propeller_optimize_absolute_ld_profile=<a string>
默认值:请参阅说明-
针对 Propeller 优化 build 的 ld_profile 文件的绝对路径名。
标签:affects_outputs
--run_under=<a prefix in front of command>
默认值:请参阅说明-
要在“test”的可执行文件之前插入的前缀和“run”命令。如果值为“foo -bar”,执行命令行为“test_binary -baz”,则最终命令行为“foo -bar test_binary -baz”。它也可以是可执行目标的标签。例如:'valgrind'、'strace'、'strace -c'、'valgrind --quiet --num-callers=20'、'//package:target'、'//package:target --options'。
标签:action_command_lines
-
如果为 true,包含相同功能的原生库将在不同目标之间共享
标签:loading_and_analysis
、affects_outputs
--[no]stamp
默认值:“false”-
使用日期、用户名、主机名、工作区信息等标记二进制文件。
标签:affects_outputs
--strip=<always, sometimes or never>
默认值:“有时”-
指定是否删除二进制文件和共享库(使用“-Wl,--strip-debug”)。“sometimes”的默认值表示在 iff --compile_mode=fastbuild 时进行剥离。
标签:affects_outputs
- 累计使用了
--stripopt=<a string>
次 -
生成“<name>.stripped”时传递给标签的其他选项二进制文件
标签:action_command_lines
、affects_outputs
- 累计使用了
--tvos_cpus=<comma-separated list of options>
次 -
用于构建 Apple tvOS 二进制文件的架构列表(以英文逗号分隔)。
标签:loses_incremental_state
、loading_and_analysis
--tvos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
目标模拟器和设备的最低兼容 tvOS 版本。如果未指定,则使用“tvos_sdk_version”。
标签:loses_incremental_state
- 累计使用了
--visionos_cpus=<comma-separated list of options>
次 -
用于构建 Apple visionOS 二进制文件的架构列表(以英文逗号分隔)。
标签:loses_incremental_state
、loading_and_analysis
- 累计使用了
--watchos_cpus=<comma-separated list of options>
次 -
一系列以英文逗号分隔的架构构建了 Apple WatchOS 二进制文件。
标签:loses_incremental_state
、loading_and_analysis
--watchos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
目标模拟器和设备的最低兼容 watchOS 版本。如果未指定,则使用“watchos_sdk_version”。
标签:loses_incremental_state
--xbinary_fdo=<a build target label>
默认值:请参阅说明-
使用 XbinaryFDO 配置文件信息优化编译。指定默认跨二进制配置文件的名称。当该选项与 --fdo_instrument/--fdo_optimize/--fdo_profile 一起使用时,这些选项将始终适用,就像从未指定 xbinary_fdo 一样。
标签:affects_outputs
- 影响 Bazel 强制执行有效构建输入的严格程度的选项(规则定义、标志组合等):
--[no]check_licenses
默认值:“false”-
检查并确保依赖软件包施加的许可限制与正在构建的目标的分发模式不冲突。默认情况下,系统不会检查许可。
标签:build_file_semantics
--[no]check_visibility
默认值:“true”-
如果此政策已停用,目标依赖项中的可见性错误会降级为警告。
标签:build_file_semantics
--[no]desugar_for_android
默认值:“true”-
是否在 dex 处理之前对 Java 8 字节码进行脱糖。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]desugar_java8_libs
默认值:“false”-
是否在旧版设备应用中包含支持的 Java 8 库。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]enforce_constraints
默认值:“true”-
检查每个目标兼容的环境,并报告错误(如有任何目标的依赖项不支持相同环境)
标签:build_file_semantics
--[no]experimental_check_desugar_deps
默认值:“true”-
是否在 Android 二进制文件级别仔细检查正确的脱糖。
标签:eagerness_to_exit
、loading_and_analysis
、experimental
--experimental_import_deps_checking=<a string>
默认值:请参阅说明-
空操作,仅为实现向后兼容而保留
标签:loading_and_analysis
--experimental_one_version_enforcement=<off, warning or error>
默认值:“关闭”-
启用后,强制规定 java_binary 规则在类路径上不能包含同一类文件的多个版本。此强制执行可能会破坏构建,或者导致警告。
标签:loading_and_analysis
--experimental_strict_java_deps=<off, warn, error, strict or default>
默认值:“默认”-
如果为 true,则检查 Java 目标是否明确将所有直接使用的目标声明为依赖项。
标签:build_file_semantics
、eagerness_to_exit
--[no]incompatible_check_testonly_for_output_files
默认值:“false”-
启用后,通过查询所生成的规则的 testonly 检查,检查 testonly 是否为输出文件的前提条件目标。这与可见性检查一致。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_check_visibility_for_toolchains
默认值:“false”-
如果启用,可见性检查也会应用于工具链实现。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_disable_native_android_rules
默认值:“false”-
启用后,系统将禁止直接使用原生 Android 规则。请使用 https://github.com/bazelbuild/rules_android 中的 Starlark Android 规则
标签:eagerness_to_exit
、incompatible_change
--[no]incompatible_disable_native_apple_binary_rule
默认值:“false”-
无运维。为了实现向后兼容性而保留在此处。
标签:eagerness_to_exit
、incompatible_change
--[no]incompatible_python_disable_py2
默认值:“true”-
如果为 true,使用 Python 2 设置会导致错误。这包括 python_version=PY2、srcs_version=PY2 和 srcs_version=PY2ONLY。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/15684。
标签:loading_and_analysis
、incompatible_change
--[no]one_version_enforcement_on_java_tests
默认值:“true”-
启用后,如果 experiment_one_version_enforcement 设置为非 NONE 值,则对 java_test 目标强制执行一个版本。您可以停用此标志,以提升增量测试性能,但代价是可能会遗漏潜在的单个版本违规行为。
标签:loading_and_analysis
--python_native_rules_allowlist=<a build target label>
默认值:请参阅说明-
强制执行 --incompatible_python_disallow_native_rules 时使用的许可名单(package_group 目标)。
标签:loading_and_analysis
--[no]strict_filesets
默认值:“false”-
如果启用此选项,系统会将跨越软件包边界的文件集报告为错误。
标签:build_file_semantics
、eagerness_to_exit
--strict_proto_deps=<off, warn, error, strict or default>
默认值:“error”-
除非 OFF,否则检查 proto_library 目标是否将所有直接使用的目标明确声明为依赖项。
标签:build_file_semantics
、eagerness_to_exit
、incompatible_change
--strict_public_imports=<off, warn, error, strict or default>
默认值:“关闭”-
除非 OFF,否则检查 proto_library 目标是否明确声明了“导入公共”中使用的所有目标导出的数据。
标签:build_file_semantics
、eagerness_to_exit
、incompatible_change
--[no]strict_system_includes
默认值:“false”-
如果为 true,则还需要声明通过系统包含路径 (-isystem) 找到的标头。
标签:loading_and_analysis
、eagerness_to_exit
- 累计使用了
--target_environment=<a build target label>
次 -
声明此构建的目标环境。必须是对“环境”的标签引用规则。如果指定,则所有顶级目标都必须与此环境兼容。
标签:changes_inputs
- 影响 build 签名输出的选项:
--apk_signing_method=<v1, v2, v1_v2 or v4>
默认值:“v1_v2”-
用于为 APK 签名的实现
标签:action_command_lines
、affects_outputs
、loading_and_analysis
--[no]device_debug_entitlements
默认值:“true”-
如果已设置,并且编译模式不是“opt”,则 objc 应用在签名时将包含调试权限。
标签:changes_inputs
--ios_signing_cert_name=<a string>
默认值:请参阅说明-
用于 iOS 签名的证书名称。如果未设置,系统将回退到使用配置文件。根据代码签名的手册页面 (SIGNING IDENTITIES),可以是证书的密钥链标识偏好设置或证书常用名的(子字符串)。
标签:action_command_lines
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_disallow_legacy_py_provider
默认值:“true”-
免运维,即将被移除。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_disallow_sdk_frameworks_attributes
默认值:“false”-
如果为 true,则禁止在 objc_library 和 objc_import 中使用 sdk_frameworks 和 weak_sdk_frameworks 属性。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_objc_alwayslink_by_default
默认值:“false”-
如果为 true,则将 objc_library 和 objc_import 中的始终链接属性的默认值设为 true。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_python_disallow_native_rules
默认值:“false”-
如果为 true,使用内置的 py_* 规则时会出错;应改用 rule_python 规则。如需了解详情和迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/17773。
标签:loading_and_analysis
、incompatible_change
- 用于控制测试环境或测试运行程序行为的选项:
--[no]allow_analysis_failures
默认值:“false”-
如果为 true,规则目标的分析失败将导致目标传播包含错误说明的 AnalysisFailureInfo 实例,而不是导致构建失败。
标签:loading_and_analysis
、experimental
--analysis_testing_deps_limit=<an integer>
默认值:“2000”-
通过具有 for_analysis_testing 配置转换的规则属性设置传递依赖项的数量上限。超出此限制将导致规则错误。
标签:loading_and_analysis
--[no]break_build_on_parallel_dex2oat_failure
默认值:“false”-
如果 dex2oat 操作失败,则会导致构建中断,而不是在测试运行时执行 dex2oat。
标签:loading_and_analysis
、experimental
- 累计使用了
--default_test_resources=<a resource name followed by equal and 1 float or 4 float, e.g memory=10,30,60,100>
次 - 替换测试的默认资源量。预期格式为 <resource>=<value>。如果将 <value> 指定为单个正数它会覆盖所有测试尺寸的默认资源如果指定了 4 个以英文逗号分隔的数字,它们将分别覆盖小测试、中测试、大测试大小的资源量。值也可以是 HOST_RAM/HOST_CPU,可以选择后跟 [-|*]<float>(例如 memory=HOST_RAM*.1,HOST_RAM*.2,HOST_RAM*.3,HOST_RAM*.4)。此标志指定的默认测试资源会被标记中指定的显式资源替换。
--[no]experimental_android_use_parallel_dex2oat
默认值:“false”-
同时使用 dex2oat 来可能加快 android_test。
标签:loading_and_analysis
、host_machine_resource_optimizations
、experimental
--[no]ios_memleaks
默认值:“false”-
在 ios_test 目标中启用内存泄漏检查功能。
标签:action_command_lines
--ios_simulator_device=<a string>
默认值:请参阅说明-
在模拟器中运行 iOS 应用时要模拟的设备,例如“iPhone 6”。您可以通过运行“xcrun simctl list devicetypes”来获取设备列表运行模拟器的机器上。
标签:test_runner
--ios_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
运行或测试时要在模拟器上运行的 iOS 版本。对于 ios_test 规则,如果在规则中指定了目标设备,系统会忽略此字段。
标签:test_runner
- 累计使用了
--runs_per_test=<a positive integer or test_regex@runs. This flag may be passed more than once>
次 - 指定每个测试的运行次数。如果其中任何一个尝试由于任何原因失败,则整个测试都被视为失败。通常,指定的值只是一个整数。示例:--runs_per_test=3 将运行所有测试 3 次。备用语法:regex_filter@runs_per_test。其中,runs_per_test 代表整数值,regex_filter 代表包含和排除正则表达式模式的列表(另请参阅 --instrument_filter)。示例:--runs_per_test=//foo/.*,-//foo/bar/.*@3 运行 //foo/ 中的所有测试(foo/bar 下的测试除外)运行三次。此选项可以多次传递。最近传递的匹配的参数优先。如果没有任何匹配项,则测试仅运行一次。
- 累计使用了
--test_env=<a 'name=value' assignment with an optional value part>
次 -
指定要注入测试运行程序环境的其他环境变量。变量可以按名称指定,在这种情况下,其值将从 Bazel 客户端环境中读取,也可以通过“名称=值”对读取。此选项可以多次用于指定多个变量。仅供“bazel 测试”使用命令。
标签:test_runner
--test_timeout=<a single integer or comma-separated list of 4 integers>
默认值:“-1”- 覆盖测试超时的默认测试超时值(以秒为单位)。如果指定单个正整数值,它将覆盖所有类别。如果指定了 4 个以英文逗号分隔的整数,它们将替换短时、中等长度、长时和永恒(按此顺序)的超时。在这两种形式中,值为 -1 都会指示 blaze 针对该类别使用默认超时。
--[no]zip_undeclared_test_outputs
默认值:“true”-
如果值为 true,则未声明的测试输出将归档为一个 ZIP 文件。
标签:test_runner
- 触发构建时间优化的选项:
--[no]experimental_filter_library_jar_with_program_jar
默认值:“false”-
过滤 ProGuard ProgramJar,移除 LibraryJar 中也存在的任何类。
标签:action_command_lines
--[no]experimental_inmemory_dotd_files
默认值:“true”-
启用后,C++ .d 文件将直接从远程构建节点在内存中传递,而不是写入磁盘。
标签:loading_and_analysis
、execution
、affects_outputs
、experimental
--[no]experimental_inmemory_jdeps_files
默认值:“true”-
启用后,通过 Java 编译生成的依赖项 (.jdeps) 文件将直接从远程构建节点在内存中传递,而不是写入磁盘。
标签:loading_and_analysis
、execution
、affects_outputs
、experimental
--[no]experimental_retain_test_configuration_across_testonly
默认值:“false”-
启用后,--trim_test_configuration 不会修剪标记为 testonly=1 的规则的测试配置。这是为了在非测试规则依赖于 cc_test 规则时减少操作冲突问题。如果 --trim_test_configuration 为 false,则不会产生任何影响。
标签:loading_and_analysis
、loses_incremental_state
--[no]experimental_starlark_cc_import
默认值:“false”-
启用后,即可使用 Starlark 版本的 cc_import。
标签:loading_and_analysis
、experimental
--[no]experimental_unsupported_and_brittle_include_scanning
默认值:“false”-
是否通过解析输入文件中的 #include 行将输入范围缩小到 C/C++ 编译。这可以通过减小编译输入树的大小来提升性能和增量。不过,这也可能会导致构建中断,因为 include 扫描程序未完全实现 C 预处理器语义。具体来说,它不理解动态 #include 指令,并且会忽略预处理器条件逻辑。使用时需自行承担风险。用户提交的与此标志相关的所有问题都将被关闭。
标签:loading_and_analysis
、execution
、changes_inputs
--[no]incremental_dexing
默认值:“true”-
为每个 Jar 文件单独执行 dex 处理的大部分工作。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]objc_use_dotd_pruning
默认值:“true”-
如果已设置,Clang 发出的 .d 文件将用于剪除传递到 objc 编译的输入集。
标签:changes_inputs
、loading_and_analysis
--[no]process_headers_in_dependencies
默认值:“false”-
构建目标 //a:a 时,处理 //a:a 所依赖的所有目标中的标头(如果为工具链启用了标头处理)。
标签:execution
--[no]trim_test_configuration
默认值:“true”-
启用后,与测试相关的选项将会被清除,位于 build 顶层下方。当此标志处于启用状态时,无法将测试构建为非测试规则的依赖项,但对测试相关选项的更改不会导致系统重新分析非测试规则。
标签:loading_and_analysis
、loses_incremental_state
- 影响日志记录的详细程度、格式或位置的选项:
--toolchain_resolution_debug=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>
默认值:“-.*”-
在工具链解析期间输出调试信息。该标志采用正则表达式,而正则表达式会针对工具链类型和特定目标进行检查,以判断要调试哪个目标。可以使用逗号分隔多个正则表达式,然后分别检查每个正则表达式。注意:此标志的输出非常复杂,可能只对熟练掌握工具链解决方案的专家有用。
标签:terminal_output
- 用于为 Bazel 命令指定或更改常规输入(不属于其他类别)的选项:
- 累计使用了
--flag_alias=<a 'name=value' flag alias>
次 -
设置 Starlark 标志的简写名称。它需要一个格式为“<键>=<值>”的键值对作为参数。
标签:changes_inputs
--[no]incompatible_default_to_explicit_init_py
默认值:“false”-
此标志会更改默认行为,以便系统不再在 Python 目标的 runfile 中自动创建 __init__.py 文件。确切地说,是在 py_binary 或 py_test 目标将 legacy_create_init 设置为“auto”时(默认值),当且仅当设置了此标志时,才会被视为 false。请参阅 https://github.com/bazelbuild/bazel/issues/10076。
标签:affects_outputs
、incompatible_change
--[no]incompatible_py2_outputs_are_suffixed
默认值:“true”-
如果为 true,则在 Python 2 配置中构建的目标将出现在包含后缀“-py2”的输出根下,而为 Python 3 构建的目标将显示在没有 Python 相关后缀的根中。这意味着 `bazel-bin` 便捷符号链接将指向 Python 3 目标,而不是 Python 2。如果您启用此选项,也建议启用 `--incompatible_py3_is_default`。
标签:affects_outputs
、incompatible_change
--[no]incompatible_py3_is_default
默认值:“true”-
如果为 true,则未设置其 `python_version`(或 `default_python_version`)属性的 `py_binary` 和 `py_test` 目标将默认为 PY3,而不是 PY2。如果您设置了此标志,也建议设置 `--incompatible_py2_outputs_are_suffixed`。
标签:loading_and_analysis
、affects_outputs
、incompatible_change
--[no]incompatible_use_python_toolchains
默认值:“true”-
如果设置为 true,可执行原生 Python 规则将使用 Python 工具链指定的 Python 运行时,而不是由旧版标志(如 --python_top)指定的运行时。
标签:loading_and_analysis
、incompatible_change
--python_version=<PY2 or PY3>
默认值:请参阅说明-
Python 主要版本模式,即“PY2”或“PY3”。请注意,这会被“py_binary”和“py_test”目标替换(即使它们未明确指定版本),因此通常没有太多理由提供此标志。
标签:loading_and_analysis
、affects_outputs
- 未以其他方式分类的其他选项:
--[no]cache_test_results
[-t
] 默认值:“自动”- 如果设置为“auto”,则当且仅当满足以下条件时,Bazel 才会重新运行测试:(1) Bazel 检测到了测试或其依赖项的变化,(2) 测试已被标记为外部,(3) 使用 --runs_per_test 请求了多次测试运行,或(4) 之前测试失败。如果设置为“yes”,则 Bazel 会缓存所有测试结果,但标记为外部的测试除外。如果设置为“no”,则 Bazel 不会缓存任何测试结果。
--[no]experimental_cancel_concurrent_tests
默认值:“false”-
如果为 true,Blaze 将在第一次成功运行时取消同时运行的测试。这只能与 --runs_per_test_detects_flakes 结合使用。
标签:affects_outputs
、loading_and_analysis
--[no]experimental_fetch_all_coverage_outputs
默认值:“false”-
如果为 true,则 Bazel 会在覆盖率运行期间为每次测试提取整个覆盖率数据目录。
标签:affects_outputs
、loading_and_analysis
--[no]experimental_generate_llvm_lcov
默认值:“false”-
如果值为 true,则针对 Clang 的覆盖率将生成 LCOV 报告。
标签:affects_outputs
、loading_and_analysis
--[no]experimental_j2objc_header_map
默认值:“true”- 是否在 J2ObjC 转译的同时生成 J2ObjC 标头映射。
--[no]experimental_j2objc_shorter_header_path
默认值:“false”-
是否使用更短的标头路径(使用“_ios”而不是“_j2objc”)生成。
标签:affects_outputs
--experimental_java_classpath=<off, javabuilder or bazel>
默认值:“javabuilder”- 为 Java 编译启用缩减类路径。
--[no]experimental_limit_android_lint_to_android_constrained_java
默认值:“false”-
空操作,仅为实现向后兼容而保留
标签:affects_outputs
--[no]experimental_run_android_lint_on_java_rules
默认值:“false”-
是否验证 java_* 来源。
标签:affects_outputs
--[no]explicit_java_test_deps
默认值:“false”- 在 java_test 中明确指定对 JUnit 或 Hamcrest 的依赖项,而不是从 TestRunner 的依赖项意外获取。目前仅适用于 bazel。
--host_java_launcher=<a build target label>
默认值:请参阅说明- 在构建期间执行的工具使用的 Java 启动器。
- 累计使用了
--host_javacopt=<a string>
次 - 在构建在构建期间执行的工具时要传递给 javac 的其他选项。
- 累计使用了
--host_jvmopt=<a string>
次 - 构建在构建期间执行的工具时要传递给 Java 虚拟机的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--[no]incompatible_check_sharding_support
默认值:“true”-
如果为 true,则如果测试运行程序未通过触摸 TEST_SHARD_STATUS_FILE 中的路径下的文件来表明支持分片,则 Bazel 会使分片测试失败。如果为 false,不支持分片的测试运行程序将导致所有测试在每个分片中运行。
标签:incompatible_change
--[no]incompatible_exclusive_test_sandboxed
默认值:“true”-
如果为 true,系统将采用沙盒化策略运行专属测试。添加“本地”用于强制在本地运行独占测试的标记
标签:incompatible_change
--[no]incompatible_strict_action_env
默认值:“false”-
如果为 true,则 Bazel 会使用具有静态 PATH 值的环境,并且不会继承 LD_LIBRARY_PATH。如果您希望从客户端继承特定的环境变量,请使用 --action_env=ENV_VARIABLE,但请注意,如果使用了共享缓存,这样做可能会阻止跨用户缓存。
标签:loading_and_analysis
、incompatible_change
- 累计使用了
--j2objc_translation_flags=<comma-separated list of options>
次 - 要传递给 J2ObjC 工具的其他选项。
--java_debug
-
使 Java 测试的 Java 虚拟机在开始测试之前等待来自兼容 JDWP 的调试程序(例如 jdb)的连接。隐含 -test_output=streamed。
扩展为:
--test_arg=--wrapper_script_flag=--debug
--test_output=streamed
--test_strategy=exclusive
--test_timeout=9999
--nocache_test_results
--[no]java_deps
默认值:“true”- 按 Java 目标生成依赖项信息(目前为编译时类路径)。
--[no]java_header_compilation
默认值:“true”- 直接从源代码编译 ijar。
--java_language_version=<a string>
默认值:“”- Java 语言版本
--java_launcher=<a build target label>
默认值:请参阅说明- 构建 Java 二进制文件时使用的 Java 启动器。如果此标志设置为空字符串,则使用 JDK 启动器。“启动器”属性将覆盖此标志。
--java_runtime_version=<a string>
默认值:“local_jdk”- Java 运行时版本
- 累计使用了
--javacopt=<a string>
次 - 传递给 javac 的其他选项。
- 累计使用了
--jvmopt=<a string>
次 - 要传递给 Java 虚拟机的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--legacy_main_dex_list_generator=<a build target label>
默认值:请参阅说明- 指定一个二进制文件,用于生成编译旧版 MultiDex 时必须在主 dex 中的类的列表。
--optimizing_dexer=<a build target label>
默认值:请参阅说明- 指定用于在不分片的情况下执行 dex 处理的二进制文件。
- 累计使用了
--plugin=<a build target label>
次 - 要在构建中使用的插件。目前支持 java_plugin。
--proguard_top=<a build target label>
默认值:请参阅说明- 指定在构建 Java 二进制文件时用于移除代码的 ProGuard 版本。
--proto_compiler=<a build target label>
默认值:“@bazel_tools//tools/proto:protoc”-
proto 编译器的标签。
标签:affects_outputs
、loading_and_analysis
--[no]proto_profile
默认值:“true”-
是否将 profile_path 传递给 proto 编译器。
标签:affects_outputs
、loading_and_analysis
--proto_profile_path=<a build target label>
默认值:请参阅说明-
要作为 profile_path 传递给 proto 编译器的配置文件。如果未设置,但 --proto_profile 为 true(默认值),则通过 --fdo_optimize 推断路径。
标签:affects_outputs
、loading_and_analysis
--proto_toolchain_for_cc=<a build target label>
默认值:“@bazel_tools//tools/proto:cc_toolchain"-
proto_lang_toolchain() 的标签,用于描述如何编译 C++ proto
标签:affects_outputs
、loading_and_analysis
--proto_toolchain_for_j2objc=<a build target label>
默认值:“@bazel_tools//tools/j2objc:j2objc_proto_toolchain”-
proto_lang_toolchain() 的标签,用于描述如何编译 j2objc proto
标签:affects_outputs
、loading_and_analysis
--proto_toolchain_for_java=<a build target label>
默认值:“@bazel_tools//tools/proto:java_toolchain"-
proto_lang_toolchain() 的标签,用于描述如何编译 Java proto
标签:affects_outputs
、loading_and_analysis
--proto_toolchain_for_javalite=<a build target label>
默认值:“@bazel_tools//tools/proto:javalite_toolchain"-
proto_lang_toolchain() 的标签,用于描述如何编译 JavaLite proto
标签:affects_outputs
、loading_and_analysis
- 累计使用了
--protocopt=<a string>
次 -
要传递给 protobuf 编译器的其他选项。
标签:affects_outputs
--[no]runs_per_test_detects_flakes
默认值:“false”- 如果为 true,则至少有一次运行/尝试通过且至少一次运行/尝试失败的任何分片都将获得 FLAKY 状态。
--shell_executable=<a path>
默认值:请参阅说明-
Bazel 要使用的 shell 可执行文件的绝对路径。如果未设置,但 BAZEL_SH 环境变量是在第一次 Bazel 调用(启动 Bazel 服务器)时设置的,则 Bazel 会使用该环境变量。如果二者都未设置,Bazel 会使用硬编码的默认路径,具体取决于运行它的操作系统(Windows:c:/msys64/usr/bin/bash.exe,FreeBSD:/usr/local/bin/bash,所有其他路径为:/bin/bash)。请注意,使用与 bash 不兼容的 shell 可能会导致生成的二进制文件出现构建失败或运行时失败。
标签:loading_and_analysis
- 累计使用了
--test_arg=<a string>
次 - 指定应传递给测试可执行文件的其他选项和参数。可以多次用于指定多个实参。如果执行多个测试,每个测试都将收到相同的参数。仅供“bazel 测试”使用命令。
--test_filter=<a string>
默认值:请参阅说明- 指定要转发到测试框架的过滤器。用于限制运行的测试。请注意,这不会影响构建哪些目标。
--test_result_expiration=<an integer>
默认值:“-1”- 此选项已被弃用,因此没有任何作用。
--[no]test_runner_fail_fast
默认值:“false”- 将快速失败选项转发到测试运行程序。测试运行程序应在第一次失败时停止执行。
--test_sharding_strategy=<explicit, disabled or forced=k where k is the number of shards to enforce>
默认值:“露骨内容”- 指定测试分片策略:“显式”“shard_count”值存在 BUILD 属性。“已停用”绝不使用测试分片“forced=k”强制执行“k”用于测试的分片(无论“shard_count”值如何)BUILD 属性。
--tool_java_language_version=<a string>
默认值:“”- 用于执行构建期间所需工具的 Java 语言版本
--tool_java_runtime_version=<a string>
默认值:“remotejdk_11”- 用于在构建期间执行工具的 Java 运行时版本
--[no]use_ijars
默认值:“true”- 启用后,此选项会使 Java 编译使用接口 JAR。这样可以提高增量编译的速度,但错误消息可能会有所不同。
规范化标志选项
从 build 继承所有选项。
- 用于控制命令输出的选项:
--[no]canonicalize_policy
默认值:“false”-
在展开和过滤后输出规范政策。为使输出保持简洁,当此选项设为 true 时,将不会显示规范化命令参数。请注意,--for_command 指定的命令会影响过滤后的政策,如果未指定任何命令,则默认命令为“build”。
标签:affects_outputs
、terminal_output
--[no]experimental_include_default_values
默认值:“true”-
输出中是否包含设置为默认值的 Starlark 选项。
标签:affects_outputs
、terminal_output
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_config_setting_private_default_visibility
默认值:“false”-
如果 incompatible_enforce_config_setting_visibility=false,则是 noop。否则,如果此标志为 false,则任何没有显式可见性属性的 config_setting 都是 //visibility:public。如果此标志为 true,config_setting 遵循与所有其他规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_enforce_config_setting_visibility
默认值:“true”-
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对所有目标都可见。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_use_plus_in_repo_names
默认值:“true”-
无运维。
标签:loading_and_analysis
- 用于为 Bazel 命令指定或更改常规输入的选项(不属于其他类别):
--for_command=<a string>
默认值:“build”-
应对其选项进行规范化的命令。
标签:affects_outputs
、terminal_output
--invocation_policy=<a string>
默认值:“”-
将调用政策应用于要规范化的选项。
标签:affects_outputs
、terminal_output
- 未以其他方式分类的其他选项:
- 累计使用了
--deleted_packages=<comma-separated list of package names>
次 - 以逗号分隔的软件包名称列表,构建系统认为不存在这些软件包,即使它们在软件包路径上的某处可见。 删除子包“x/y”时使用此选项现有软件包“x”的一个名称例如,在客户端中删除 x/y/BUILD 后,构建系统可能会指出如果遇到标签“//x:y/z”(如果仍由另一个 package_path 条目提供)。指定 --deleted_packages x/y 可以避免此问题。
--[no]fetch
默认值:“true”- 允许该命令提取外部依赖项。如果设为 false,该命令将使用依赖项的任何缓存版本;如果不存在,该命令将导致失败。
--package_path=<colon-separated list of options>
默认值:“%workspace%”- 以英文冒号分隔的列表,用于列出查找软件包的位置。以“%workspace%”开头的元素相对于外围工作区如果省略或为空,则默认为“bazel info default-package-path”的输出。
--[no]show_loading_progress
默认值:“true”- 如果启用,则会导致 Bazel 输出“正在加载软件包:”。消息。
清理选项
从 build 继承所有选项。
- 用于控制命令输出的选项:
--[no]async
默认值:“false”-
如果为 true,则输出清理是异步的。此命令完成后,可在同一客户端中安全地执行新命令,即使删除操作可能会在后台继续进行。
标签:host_machine_resource_optimizations
--[no]expunge
默认值:“false”-
如果为 true, clean 会移除此 bazel 实例的整个工作树(包括所有 bazel 创建的临时和构建输出文件),并在 bazel 服务器正在运行时停止该服务器。
标签:host_machine_resource_optimizations
--expunge_async
-
如果指定,则执行 clean 异步移除此 bazel 实例的整个工作树(包括所有 bazel 创建的临时和构建输出文件),并停止运行 bazel 服务器。此命令完成后,可在同一客户端中安全地执行新命令,即使删除操作可能会在后台继续进行。
扩展为:
--expunge
--async
标签:host_machine_resource_optimizations
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names
默认值:“true”-
无运维。
标签:loading_and_analysis
配置选项
覆盖范围选项
沿用 test 的所有选项。
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names
默认值:“true”-
无运维。
标签:loading_and_analysis
Cquery 选项
沿用 test 的所有选项。
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names
默认值:“true”-
无运维。
标签:loading_and_analysis
- 与查询输出和语义相关的选项:
--aspect_deps=<off, conservative or precise>
默认值:“保守”-
当输出格式为 {xml,proto,record} 之一时,如何解析切面依赖项。“关闭”表示没有解析切面依赖项,“保守型”(默认值)表示添加所有声明的切面依赖项,无论是否为它们提供直接依赖项规则类“确切”表示在给定直接依赖项的规则类的情况下,仅添加可能处于活动状态的切面。请注意,精确模式需要加载其他软件包才能评估单个目标,因此其速度比其他模式慢。另请注意,即使是精确模式,也不是完全精确:是否计算切面的决定是在分析阶段确定的,分析阶段不会在“bazel 查询”期间运行。
标签:build_file_semantics
--[no]consistent_labels
默认值:“false”-
启用后,每个查询命令都会发出标签,就像 Starlark <code>str</code> 发出的标签一样。函数应用于某个<code>标签</code>实例。这对于需要匹配不同查询命令的输出和/或规则发出的标签匹配的工具非常有用。如果未启用,输出格式化程序可以自由发出明显的代码库名称(相对于主代码库),使输出更易于阅读。
标签:terminal_output
--[no]experimental_explicit_aspects
默认值:“false”-
aquery、cquery:是否在输出中包含切面生成的操作。query: no-op(始终遵循各方面)。
标签:terminal_output
--[no]graph:factored
默认值:“true”-
如果为 true,则图表将发出“因式分解”,即拓扑等价节点将合并在一起,其标签将串联。此选项仅适用于 --output=graph。
标签:terminal_output
--graph:node_limit=<an integer>
默认值:“512”-
输出中图表节点的标签字符串的最大长度。较长的标签将被截断;-1 表示不截断。此选项仅适用于 --output=graph。
标签:terminal_output
--[no]implicit_deps
默认值:“true”-
启用后,隐式依赖项将包含在执行查询的依赖关系图中。隐式依赖项是指未在 BUILD 文件中明确指定但通过 bazel 添加的依赖项。对于 cquery,此选项控制对已解析的工具链的过滤。
标签:build_file_semantics
--[no]include_aspects
默认值:“true”-
aquery、cquery:是否在输出中包含切面生成的操作。query: no-op(始终遵循各方面)。
标签:terminal_output
--[no]incompatible_package_group_includes_double_slash
默认值:“true”-
启用后,在输出 package_group 的 `packages` 属性时,前导 `//` 将不会省略。
标签:terminal_output
、incompatible_change
--[no]infer_universe_scope
默认值:“false”-
如果设置了“--universe_scope”,则系统会将“--universe_scope”的值推断为查询表达式中的唯一目标模式列表。请注意,为使用 universe 作用域函数(例如“allrdeps”)的查询表达式推断出的 --universe_scope 值可能不是您想要的,因此仅当您知道自己在做什么时,才应该使用此选项。如需了解详情和示例,请参阅 https://bazel.build/reference/query#sky-query。如果设置了 --universe_scope,则系统会忽略此选项的值。注意:此选项仅适用于 `query`(即 `cquery`)。
标签:loading_and_analysis
--[no]line_terminator_null
默认值:“false”-
每种格式是否以 \0 而非换行符结尾。
标签:terminal_output
--[no]nodep_deps
默认值:“true”-
如果启用,则依赖于“nodep”属性将包含到运行查询的依赖关系图中。“nodep”的一个常见示例属性为“visibility”。运行并解析“info build-language”的输出,以了解所有“nodep”所有属性
标签:build_file_semantics
--output=<a string>
默认值:“label”-
输出 cquery 结果的格式。cquery 允许使用的值包括:label、label_kind、textproto、transition、proto、streamed_proto、jsonproto。如果选择“transitions”,您还必须指定 --transitions=(lite|full) 选项。
标签:terminal_output
--[no]proto:default_values
默认值:“true”-
如果为 true,则会包含 BUILD 文件中未明确指定值的属性;否则会被省略。此选项适用于 --output=proto
标签:terminal_output
--[no]proto:definition_stack
默认值:“false”-
填充 definition_stack proto 字段,该字段会在定义规则类时为每个规则实例记录 Starlark 调用堆栈。
标签:terminal_output
--[no]proto:flatten_selects
默认值:“true”-
启用后,select() 创建的可配置属性会扁平化。对于列表类型,展平表示是一个正好包含选择映射的每个值一次的列表。标量类型会扁平化为 null。
标签:build_file_semantics
--[no]proto:include_attribute_source_aspects
默认值:“false”-
使用属性的来源方面填充每个属性的 source_aspect_name proto 字段(如果不是,则为空字符串)。
标签:terminal_output
--[no]proto:include_configurations
默认值:“true”-
如果启用,proto 输出将包含有关配置的信息。停用后,cquery proto 输出格式与查询输出格式类似。
标签:affects_outputs
--[no]proto:include_synthetic_attribute_hash
默认值:“false”-
是否计算和填充 $internal_attr_hash 属性。
标签:terminal_output
--[no]proto:instantiation_stack
默认值:“false”-
填充每条规则的实例化调用堆栈。请注意,这需要堆栈存在
标签:terminal_output
--[no]proto:locations
默认值:“true”-
是否在 proto 输出中输出位置信息。
标签:terminal_output
--proto:output_rule_attrs=<comma-separated list of options>
默认值:“全部”-
要包含在输出中的属性的列表(以英文逗号分隔)。默认值为所有属性。设置为空字符串即可不输出任何属性。此选项适用于 --output=proto。
标签:terminal_output
--[no]proto:rule_inputs_and_outputs
默认值:“true”-
是否填充 rule_input 和 rule_output 字段。
标签:terminal_output
--query_file=<a string>
默认值:“”-
如果已设置,查询将从此处命名的文件(而不是命令行)中读取查询。在此处指定文件和命令行查询都是错误的。
标签:changes_inputs
--[no]relative_locations
默认值:“false”-
如果为 true,BUILD 文件在 xml 和 proto 输出中的位置是相对的。默认情况下,位置输出为绝对路径,并且不同机器之间不会保持一致。您可以将此选项设置为 true,以便在不同机器上获得一致的结果。
标签:terminal_output
--show_config_fragments=<off, direct or transitive>
默认值:“关闭”-
显示规则及其传递依赖项所需的配置 fragment。这对于评估已配置的目标图表可以修剪多少内容非常有用。
标签:affects_outputs
--starlark:expr=<a string>
默认值:“”-
Starlark 表达式,用于在 cquery 的 --output=starlark 模式下设置每个配置的目标的格式。配置的目标将绑定到“目标”。如果 --starlark:expr 和 --starlark:file 均未指定,此选项将默认为“str(target.label)”。同时指定 --starlark:expr 和 --starlark:file 会出错。
标签:terminal_output
--starlark:file=<a string>
默认值:“”-
文件名,定义了一个名为 'format' 的 Starlark 函数,它有一个参数,应用于每个配置的目标,以将其格式化为字符串。同时指定 --starlark:expr 和 --starlark:file 会出错。如需了解详情,请参阅有关 --output=starlark 的帮助。
标签:terminal_output
--[no]tool_deps
默认值:“true”-
查询:如果停用,则依赖于“exec configuration”不会包含在运行查询的依赖关系图中。“exec configuration”依赖项边缘,例如来自任何“proto_library”的依赖项将规则应用于 Protocol Compiler,通常指向构建期间执行的工具,而不是同一“目标”的一部分计划。
Cquery:如果停用,则会从发现此已配置目标的顶级目标中过滤出跨执行转换的所有已配置目标。这意味着,如果顶级目标包含在目标配置中,则系统将仅返回同时在目标配置中已配置的目标。如果顶级目标采用 exec 配置,则只会返回 exec 配置的目标。此选项不会排除已解析的工具链。
标签:build_file_semantics
--transitions=<full, lite or none>
默认值:“无”-
cquery 输出转换信息时采用的格式。
标签:affects_outputs
--universe_scope=<comma-separated list of options>
默认值:“”-
一组以英文逗号分隔的目标格式(加法和减法)。该查询可以在由指定目标的传递闭包定义的范围内执行。此选项用于 query 和 cquery 命令。
对于 cquery,此选项的输入是构建所有答案的目标,因此此选项可能会影响配置和转换。如果未指定此选项,则假定顶级目标是从查询表达式中解析的目标。注意:对于 cquery,如果无法使用顶级选项构建从查询表达式中解析的目标,则不指定此选项可能会导致构建中断。
标签:loading_and_analysis
- 用于控制构建执行的选项:
--[no]experimental_inprocess_symlink_creation
默认值:“false”-
是否发起直接文件系统调用以创建符号链接树
标签:loading_and_analysis
、execution
、experimental
--[no]experimental_persistent_aar_extractor
默认值:“false”-
使用工作器启用永久性 aar 提取器。
标签:execution
--[no]experimental_remotable_source_manifests
默认值:“false”-
是否将源清单操作设为远程
标签:loading_and_analysis
、execution
、experimental
--[no]experimental_split_coverage_postprocessing
默认值:“false”-
如果为 true,则 Bazel 将在新的生成对象中运行覆盖率后处理以进行测试。
标签:execution
--[no]experimental_strict_fileset_output
默认值:“false”-
如果启用此选项,文件集会将所有输出制品视为常规文件。它们不会遍历目录,也不会对符号链接敏感。
标签:execution
--[no]incompatible_modify_execution_info_additive
默认值:“false”-
启用后,传递多个 --modify_execution_info 标志是累加的。停用后,系统只会考虑最后一个标志。
标签:execution
、affects_outputs
、loading_and_analysis
、incompatible_change
- 累计使用了
--modify_execution_info=<regex=[+-]key,regex=[+-]key,...>
次 -
根据操作助记符在操作的执行信息中添加或移除键。仅适用于支持执行信息的操作。许多常见操作都支持执行信息,例如Genrule、CppCompile、Javac、StarlarkAction、TestRunner。指定多个值时,顺序很重要,因为许多正则表达式可能适用于同一个助记符。
语法:“regex=[+-]key,regex=[+-]key,...”。
示例:
'.*=+x,.*=-y,.*=+z'添加“x”和“z”并移除“y”from - 所有操作的执行信息。
“Genrule=+requires-x”添加“requires-x”所有 Genrule 操作的执行信息。
'(?!Genrule).*=-requires-x'移除了“requires-x”。
标签:execution
、affects_outputs
、loading_and_analysis
--persistent_android_dex_desugar
-
使用 worker 启用持久性 Android dex 和脱糖操作。
扩展为:
--internal_persistent_android_dex_desugar
--strategy=Desugar=worker
--strategy=DexBuilder=worker
标签:host_machine_resource_optimizations
、execution
--persistent_android_resource_processor
-
使用工作器启用永久性 Android 资源处理器。
扩展为:
--internal_persistent_busybox_tools
--strategy=AaptPackage=worker
--strategy=AndroidResourceParser=worker
--strategy=AndroidResourceValidator=worker
--strategy=AndroidResourceCompiler=worker
--strategy=RClassGenerator=worker
--strategy=AndroidResourceLink=worker
--strategy=AndroidAapt2=worker
--strategy=AndroidAssetMerger=worker
--strategy=AndroidResourceMerger=worker
--strategy=AndroidCompiledResourceMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker
--strategy=Aapt2Optimize=worker
--strategy=AARGenerator=worker
--strategy=ProcessDatabinding=worker
--strategy=GenerateDataBindingBaseClasses=worker
{17/
标签:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_dex_desugar
-
使用 worker 启用持久性多路复用 Android dex 和脱糖操作。
扩展为:
--persistent_android_dex_desugar
--internal_persistent_multiplex_android_dex_desugar
标签:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_resource_processor
-
使用工作器启用永久性多路复用 Android 资源处理器。
扩展为:
--persistent_android_resource_processor
--modify_execution_info=AaptPackage=+supports-multiplex-workers
--modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
--modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceCompiler=+supports-multiplex-workers
--modify_execution_info=RClassGenerator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceLink=+supports-multiplex-workers
--modify_execution_info=AndroidAapt2=+supports-multiplex-workers
--modify_execution_info=AndroidAssetMerger=+supports-multiplex-workers
--modify_execution_info=AndroidResourceMerger=+supports-multiplex-workers
--modify_execution_info=AndroidCompiledResourceMerger=+supports-multiplex-workers
--modify_execution_info=ManifestMerger=+supports-multiplex-workers
--modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=AARGenerator=+supports-multiplex-workers
标签:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_tools
-
启用持久性和多路复用 Android 工具(dex 处理、脱糖、资源处理)。
扩展为:
--internal_persistent_multiplex_busybox_tools
--persistent_multiplex_android_resource_processor
--persistent_multiplex_android_dex_desugar
标签:host_machine_resource_optimizations
、execution
--[no]use_target_platform_for_tests
默认值:“false”-
如果为 true,则 Bazel 将使用目标平台(而不是测试执行组)来运行测试。
标签:execution
- 用于配置用于执行操作执行的工具链的选项:
--android_compiler=<a string>
默认值:请参阅说明-
Android 目标编译器。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
--android_manifest_merger=<legacy, android or force_android>
默认值:“android”-
选择要用于 android_binary 规则的清单合并程序。用于帮助从旧版合并转换为 Android 清单合并的标志。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
--android_platforms=<a build target label>
默认值:“”-
设置 android_binary 目标使用的平台。如果指定了多个平台,则二进制文件为胖 APK,其中包含每个指定目标平台的原生二进制文件。
标签:changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_sdk=<a build target label>
默认值:“@bazel_tools//tools/android:sdk”-
指定用于构建 Android 应用的 Android SDK/平台。
标签:changes_inputs
、loading_and_analysis
、loses_incremental_state
--apple_crosstool_top=<a build target label>
默认值:“@bazel_tools//tools/cpp:toolchain"-
要在 Apple 和 Objc 规则及其依赖项中使用的 crosstool 软件包标签。
标签:loses_incremental_state
、changes_inputs
--cc_output_directory_tag=<a string>
默认值:“”-
指定要添加到配置目录的后缀。
标签:affects_outputs
--compiler=<a string>
默认值:请参阅说明-
用于编译目标的 C++ 编译器。
标签:loading_and_analysis
、execution
--coverage_output_generator=<a build target label>
默认值:“@bazel_tools//tools/test:lcov_merger”-
用于对原始覆盖率报表进行后处理的二进制文件的位置。目前,它必须是包含一个文件(即二进制文件)的文件组。默认值为“//tools/test:lcov_merger”。
标签:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_report_generator=<a build target label>
默认值:“@bazel_tools//tools/test:coverage_report_generator”-
用于生成覆盖率报告的二进制文件的位置。目前,它必须是包含一个文件(即二进制文件)的文件组。默认值为“//tools/test:coverage_report_generator”。
标签:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_support=<a build target label>
默认值:“@bazel_tools//tools/test:coverage_support”-
收集代码覆盖率的每个测试操作的输入中所需的支持文件的位置。默认值为“//tools/test:coverage_support”。
标签:changes_inputs
、affects_outputs
、loading_and_analysis
--custom_malloc=<a build target label>
默认值:请参阅说明-
指定自定义 malloc 实现。此设置会覆盖构建规则中的 malloc 属性。
标签:changes_inputs
、affects_outputs
- 累计使用了
--experimental_add_exec_constraints_to_targets=<a '<RegexFilter>=<label1>[,<label2>,...]' assignment>
次 -
以英文逗号分隔的正则表达式列表,每个可选表达式前缀为 -(负表达式),为以英文逗号分隔的限制条件值目标列表分配 (=)。如果某个目标与任何负表达式或至少一个正表达式匹配,系统将执行其工具链解析,就像它将约束值声明为执行约束一样。示例://demo,-test=@platforms//cpus:x86_64 will add 'x86_64'//demo 下除名称中包含“test”的目标之外的任何目标。
标签:loading_and_analysis
--[no]experimental_include_xcode_execution_requirements
默认值:“false”-
如果设置了“requires-xcode:{version}”,则添加一个执行要求如果 Xcode 版本有带连字符的标签,请同时添加“requires-xcode-label:{version_label}”执行要求。
标签:loses_incremental_state
、loading_and_analysis
、execution
--[no]experimental_prefer_mutual_xcode
默认值:“true”-
如果为 true,请使用本地和远程均可使用的最新 Xcode。如果为 false,或者没有相互可用的版本,则使用通过 xcode-select 选择的本地 Xcode 版本。
标签:loses_incremental_state
--extra_execution_platforms=<comma-separated list of options>
默认值:“”-
可作为执行平台来执行操作的平台。平台可以按确切目标指定,也可以指定为目标模式。这些平台将优先于 register_execution_platforms() 在 WORKSPACE 文件中声明的平台得到考虑。此选项只能设置一次;较晚的实例将覆盖较早的标志设置。
标签:execution
- 累计使用了
--extra_toolchains=<comma-separated list of options>
次 -
工具链解析期间要考虑的工具链规则。工具链可以按确切目标指定,也可以指定为目标模式。系统将优先考虑这些工具链,然后再考虑 register_toolchains() 在 WORKSPACE 文件中声明的工具链。
标签:affects_outputs
、changes_inputs
、loading_and_analysis
--grte_top=<a label>
默认值:请参阅说明-
指向已检入的 libc 库的标签。默认值由 Crosstool 工具链选择,您几乎永远不需要替换它。
标签:action_command_lines
、affects_outputs
--host_compiler=<a string>
默认值:请参阅说明-
空操作标志。将在未来的版本中移除。
标签:loading_and_analysis
、execution
--host_grte_top=<a label>
默认值:请参阅说明-
如果指定,此设置将覆盖 exec 配置的 libc 顶级目录 (--grte_top)。
标签:action_command_lines
、affects_outputs
--host_platform=<a build target label>
默认值:“@bazel_tools//tools:host_platform”-
描述主机系统的平台规则的标签。
标签:affects_outputs
、changes_inputs
、loading_and_analysis
--[no]incompatible_bazel_test_exec_run_under
默认值:“false”-
启用后,系统会显示“bazel test --run_under=//:runner”构建 "//:runner"在 exec 配置中指定。如果停用,它将构建“//:runner”。Bazel 在执行机器上执行测试,因此前者更加正确。这不会影响“bazel run”,后者始终会构建“`--run_under=//foo”。
标签:affects_outputs
、incompatible_change
--[no]incompatible_dont_enable_host_nonhost_crosstool_features
默认值:“true”-
如果为 true,Bazel 将不会启用“主机”和“非主机”功能(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7407)。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_enable_apple_toolchain_resolution
默认值:“false”-
使用工具链解析为 Apple 规则选择 Apple SDK(Starlark 和原生)
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_remove_legacy_whole_archive
默认值:“true”-
如果为 true,默认情况下,Bazel 不会将库依赖项关联为整个归档(有关迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/7362)。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_strip_executable_safely
默认值:“false”-
如果为 true,针对可执行文件的剥离操作将使用标志 -x,这不会破坏动态符号解析。
标签:action_command_lines
、incompatible_change
-
使用接口共享对象(如果工具链支持)。目前,所有 ELF 工具链都支持此设置。
标签:loading_and_analysis
、affects_outputs
、affects_outputs
--ios_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
指定用于构建 iOS 应用的 iOS SDK 版本。如果未指定,系统会使用“xcode_version”的默认 iOS SDK 版本。
标签:loses_incremental_state
--macos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
指定用于构建 macOS 应用的 macOS SDK 版本。如果未指定,系统会使用“xcode_version”中的默认 macOS SDK 版本。
标签:loses_incremental_state
--minimum_os_version=<a string>
默认值:请参阅说明-
编译针对的最低操作系统版本。
标签:loading_and_analysis
、affects_outputs
--platform_mappings=<a relative path>
默认值:“”-
映射文件的位置,用于描述未设置任何平台时要使用的平台,或在平台已存在时设置哪些标志。必须相对于主工作区根目录。默认值为“platform_mappings”(工作区根目录下的文件)。
标签:affects_outputs
、changes_inputs
、loading_and_analysis
、immutable
--platforms=<a build target label>
默认值:“”-
描述当前命令目标平台的平台规则的标签。
标签:affects_outputs
、changes_inputs
、loading_and_analysis
--python_path=<a string>
默认值:请参阅说明-
为了在目标平台上运行 Python 目标而调用的 Python 解释器的绝对路径。已弃用;已被 --incompatible_use_python_toolchains 停用。
标签:loading_and_analysis
、affects_outputs
--python_top=<a build target label>
默认值:请参阅说明-
py_runtime 的标签,表示为在目标平台上运行 Python 目标而调用的 Python 解释器。已弃用;已被 --incompatible_use_python_toolchains 停用。
标签:loading_and_analysis
、affects_outputs
--tvos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
指定用于构建 tvOS 应用的 tvOS SDK 版本。如果未指定,系统会使用“xcode_version”中的默认 tvOS SDK 版本。
标签:loses_incremental_state
--watchos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
指定用于构建 watchOS 应用的 watchOS SDK 版本。如果未指定,将使用“xcode_version”中的默认 watchOS SDK 版本。
标签:loses_incremental_state
--xcode_version=<a string>
默认值:请参阅说明-
如果指定,则使用指定版本的 Xcode 执行相关构建操作。如果未指定,则使用默认执行器版本的 Xcode。
标签:loses_incremental_state
--xcode_version_config=<a build target label>
默认值:“@bazel_tools//tools/cpp:host_xcodes”-
xcode_config 规则的标签,用于在 build 配置中选择 Xcode 版本。
标签:loses_incremental_state
、loading_and_analysis
- 用于控制命令输出的选项:
--[no]apple_generate_dsym
默认值:“false”-
是否生成调试符号 (.dSYM) 文件。
标签:affects_outputs
、action_command_lines
--[no]build_runfile_links
默认值:“true”-
如果为 true,则会为所有目标构建 runfiles 符号链接林。如果为 false,则仅在本地操作、测试或运行命令需要时编写这些代码。
标签:affects_outputs
--[no]build_runfile_manifests
默认值:“true”-
如果为 true,请为所有目标编写 runfiles 清单。如果为 false,请忽略它们。如果为 false,本地测试将无法运行。
标签:affects_outputs
--[no]build_test_dwp
默认值:“false”-
启用后,在采用 fission 静态构建 C++ 测试时,测试二进制文件的 .dwp 文件也会自动构建。
标签:loading_and_analysis
、affects_outputs
--cc_proto_library_header_suffixes=<comma-separated set of options>
默认值:“.pb.h”-
设置 cc_proto_library 创建的头文件的后缀。
标签:affects_outputs
、loading_and_analysis
--cc_proto_library_source_suffixes=<comma-separated set of options>
默认值:“.pb.cc”-
设置 cc_proto_library 创建的源文件的后缀。
标签:affects_outputs
、loading_and_analysis
--[no]experimental_proto_descriptor_sets_include_source_info
默认值:“false”-
针对 proto_library 中的备用 Java API 版本运行额外操作。
标签:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_save_feature_state
默认值:“false”-
将已启用和已请求功能的状态保存为编译输出。
标签:affects_outputs
、experimental
--fission=<a set of compilation modes>
默认值:“no”-
指定哪些编译模式对 C++ 编译和链接使用 fission。可以是 {'Fastbuild', 'dbg', 'opt'} 或特殊值“yes”的任意组合启用所有模式,选择“no”来停用所有模式。
标签:loading_and_analysis
、action_command_lines
、affects_outputs
--[no]incompatible_always_include_files_in_data
默认值:“true”-
如果为 true,原生规则会添加 <code>DefaultInfo.files</code>数据依赖项映射到其 runfile,这与 Starlark 规则 (https://bazel.build/extending/rules#runfiles_features_to_avoid) 的建议行为一致。
标签:affects_outputs
、incompatible_change
--[no]legacy_external_runfiles
默认值:“true”-
如果为 true,则除了 .runfiles/repo 之外,还可以在 .runfiles/wsname/external/repo 下为外部代码库构建 runfiles 符号链接林。
标签:affects_outputs
--[no]objc_generate_linkmap
默认值:“false”-
指定是否生成链接映射文件。
标签:affects_outputs
--[no]save_temps
默认值:“false”-
如果设置,则会保存 gcc 的临时输出。包括 .s 文件(汇编代码)、.i 文件(预处理的 C 语言)和 .ii 文件(预处理的 C++)。
标签:affects_outputs
- 可让用户配置预期输出并影响输出值(而不是其存在性)的选项:
- 累计使用了
--action_env=<a 'name=value' assignment with an optional value part>
次 -
指定可用于具有目标配置的操作的一组环境变量。变量可以按名称指定,在这种情况下,值将从调用环境中获取;也可以按 name=value 对指定,该值独立于调用环境设置。此选项可以多次使用;对于同一变量给出的选项,最近的胜出者、不同变量的选项累计。
标签:action_command_lines
--[no]android_databinding_use_androidx
默认值:“true”-
生成与 AndroidX 兼容的数据绑定文件。这仅适用于数据绑定 v2。此标志是一个空操作。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]android_databinding_use_v3_4_args
默认值:“true”-
使用带有 3.4.0 参数的 Android 数据绑定 v2。此标志是一个空操作。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--android_dynamic_mode=<off, default or fully>
默认值:“关闭”-
确定当 cc_binary 未明确创建共享库时,Android 规则的 C++ 依赖项是否会动态关联。“default”表示 bazel 将选择是否进行动态关联。“full”表示所有库都将动态关联。“关闭”表示在大多静态模式下链接所有库。
标签:affects_outputs
、loading_and_analysis
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency>
默认值:“alphabetical”-
设置传递给 Android 二进制文件的清单合并程序的清单的顺序。ALPHABETical 表示清单按相对于 execroot 的路径进行排序。ALPHABETical_BY_CONFIGURATION 表示清单按相对于输出目录中配置目录的路径进行排序。“DEPENDENCY(依赖项)”表示对清单进行排序,使每个库的清单排在其依赖项清单之前。
标签:action_command_lines
、execution
--[no]android_resource_shrinking
默认值:“false”-
为使用 ProGuard 的 android_binary APK 启用资源压缩。
标签:affects_outputs
、loading_and_analysis
--[no]build_python_zip
默认值:“auto”-
构建 Python 可执行 zip;在其他平台上关闭
标签:affects_outputs
- 累计使用了
--catalyst_cpus=<comma-separated list of options>
次 -
用于构建 Apple Catalyst 二进制文件的架构的逗号分隔列表。
标签:loses_incremental_state
、loading_and_analysis
--[no]collect_code_coverage
默认值:“false”-
如果指定,Bazel 将对代码进行插桩(尽可能使用离线插桩),并在测试期间收集覆盖率信息。只有与 --instrument_filter 匹配的目标会受到影响。通常,不应直接指定此选项 - 'bazel reach'命令。
标签:affects_outputs
--compilation_mode=<fastbuild, dbg or opt>
[-c
] 默认值:“Fastbuild”-
指定构建二进制文件的模式。值:“Fastbuild”“dbg”“opt”。
标签:affects_outputs
、action_command_lines
- 累计使用了
--conlyopt=<a string>
次 -
这是在编译 C 源文件时传递给 gcc 的附加选项。
标签:action_command_lines
、affects_outputs
- 累计使用了
--copt=<a string>
次 -
传递给 gcc 的其他选项。
标签:action_command_lines
、affects_outputs
--cpu=<a string>
默认值:“”-
目标 CPU。
标签:changes_inputs
、affects_outputs
--cs_fdo_absolute_path=<a string>
默认值:请参阅说明-
使用 CSFDO 配置文件信息优化编译。指定包含配置文件、原始或已编入索引的 LLVM 配置文件的 ZIP 文件的绝对路径名。
标签:affects_outputs
--cs_fdo_instrument=<a string>
默认值:请参阅说明-
使用上下文敏感 FDO 插桩生成二进制文件。使用 Clang/LLVM 编译器,它还接受将在运行时转储原始配置文件的目录名称。
标签:affects_outputs
--cs_fdo_profile=<a build target label>
默认值:请参阅说明-
cs_fdo_profile,表示要用于优化的上下文敏感配置文件。
标签:affects_outputs
- 累计使用了
--cxxopt=<a string>
次 -
编译 C++ 源文件时传递给 gcc 的附加选项。
标签:action_command_lines
、affects_outputs
- 累计使用了
--define=<a 'name=value' assignment>
次 -
每个 --define 选项都会指定对 build 变量的赋值。如果一个变量有多个值,以最后一个值为准。
标签:changes_inputs
、affects_outputs
--dynamic_mode=<off, default or fully>
默认值:“默认”-
确定是否会动态链接 C++ 二进制文件。“default”这意味着 Bazel 将选择是否进行动态关联。“full”表示所有库都将动态关联。“关闭”表示在大多静态模式下链接所有库。
标签:loading_and_analysis
、affects_outputs
--[no]enable_propeller_optimize_absolute_paths
默认值:“true”-
如果已设置,任何对推进器优化的绝对路径使用都会引发错误。
标签:affects_outputs
--[no]enable_remaining_fdo_absolute_paths
默认值:“true”-
如果已设置,任何对 FDO 使用绝对路径都会引发错误。
标签:affects_outputs
--[no]enable_runfiles
默认值:“auto”-
启用 runfiles 符号链接树;在 Windows 和其他平台上,此设置默认处于关闭状态。
标签:affects_outputs
- 累计使用了
--experimental_action_listener=<a build target label>
次 -
已弃用,取而代之的是切面。使用 action_listener 将 extra_action 附加到现有构建操作。
标签:execution
、experimental
--[no]experimental_android_compress_java_resources
默认值:“false”-
压缩 APK 中的 Java 资源
标签:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_android_databinding_v2
默认值:“true”-
使用 Android Databinding v2。此标志是一个空操作。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]experimental_android_resource_shrinking
默认值:“false”-
为使用 ProGuard 的 android_binary APK 启用资源压缩。
标签:affects_outputs
、loading_and_analysis
--[no]experimental_android_rewrite_dexes_with_rex
默认值:“false”-
使用 rex 工具重写 dex 文件
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]experimental_collect_code_coverage_for_generated_files
默认值:“false”-
如果已指定,Bazel 还会为生成的文件生成收集覆盖率信息。
标签:affects_outputs
--experimental_objc_fastbuild_options=<comma-separated list of options>
默认值:“-O0,-DDEBUG=1”-
将这些字符串用作 objc fastbuild 编译器选项。
标签:action_command_lines
--[no]experimental_omitfp
默认值:“false”-
如果为 true,则使用 libunwind 进行堆栈展开,并使用 -fomit-frame-pointer 和 -fasynchronous-unwind-tables 进行编译。
标签:action_command_lines
、affects_outputs
、experimental
--experimental_output_paths=<off, content or strip>
默认值:“关闭”-
使用哪种模型来确定在输出树规则中的什么位置写入输出,尤其是对于多平台 / 多配置 build。这是一项实验性功能。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/6526。Starlark 操作可以通过添加键“supports-path-mapping”来选择启用路径映射对“Execution_requirements”字典。
标签:loses_incremental_state
、bazel_internal_configuration
、affects_outputs
、execution
- 累计使用了
--experimental_override_name_platform_in_output_dir=<a 'label=value' assignment>
次 -
每个条目都应采用 label=value 格式,其中 label 代表平台, values 是要在输出路径中使用的所需简称。仅在 --experimental_platform_in_output_dir 为 true 时使用。具有最高命名优先级。
标签:affects_outputs
、experimental
--[no]experimental_platform_in_output_dir
默认值:“false”-
如果为 true,则输出目录名称(而非 CPU)将使用目标平台的简称。确切方案是实验性的,并且可能会发生变化:首先,在极少数情况下,--platforms 选项不只有一个值,而是使用 platform 选项的哈希值。接下来,如果-experimental_override_name_platform_in_output_dir 注册了当前平台的任何简称,则会使用该简称。然后,如果设置了 --experimental_use_platforms_in_output_dir_legacy_heuristic,使用基于当前平台标签的简称。最后,在万不得已时才使用平台选项的哈希值。
标签:affects_outputs
、experimental
--[no]experimental_use_llvm_covmap
默认值:“false”-
如果指定,则启用 collect_code_coverage 时,Bazel 将生成 llvm-cov 覆盖率地图信息,而不是 gcov。
标签:changes_inputs
、affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_use_platforms_in_output_dir_legacy_heuristic
默认值:“true”-
只有在建议的迁移或测试策略中使用此标志,请注意,启发法存在一些已知缺陷,建议改用仅依赖于 --experimental_override_name_platform_in_output_dir。
标签:affects_outputs
、experimental
--fat_apk_cpu=<comma-separated set of options>
默认值:“armeabi-v7a”-
设置此选项会启用胖 APK,其中包含所有指定目标架构的原生二进制文件,例如--fat_apk_cpu=x86,armeabi-v7a.如果指定了此标志,则对于 android_binary 规则的依赖项,--android_cpu 会被忽略。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
--fdo_instrument=<a string>
默认值:请参阅说明-
使用 FDO 插桩生成二进制文件。使用 Clang/LLVM 编译器,它还接受将在运行时转储原始配置文件的目录名称。
标签:affects_outputs
--fdo_optimize=<a string>
默认值:请参阅说明-
使用 FDO 配置文件信息来优化编译。指定包含 .gcda 文件树的 ZIP 文件、包含自动配置文件的 afdo 文件或 LLVM 配置文件的名称。此标志还接受指定为标签的文件(例如 `//foo/bar:file.afdo`,您可能需要向相应的软件包添加 `exports_files` 指令)和指向 `fdo_profile` 目标的标签。此标志将被“fdo_profile”规则取代。
标签:affects_outputs
--fdo_prefetch_hints=<a build target label>
默认值:请参阅说明-
使用缓存预提取提示。
标签:affects_outputs
--fdo_profile=<a build target label>
默认值:请参阅说明-
fdo_profile 表示要用于优化的配置文件。
标签:affects_outputs
- 累计使用了
--features=<a string>
次 -
默认情况下,将为目标配置中构建的目标启用或停用指定功能。指定 -<feature>即可停用此功能排除性功能始终会覆盖肯定功能。另请参阅 --host_features
标签:changes_inputs
、affects_outputs
--[no]force_pic
默认值:“false”-
启用后,所有 C++ 编译都会生成位置无关代码(“-fPIC”),链接会优先生成 PIC 预构建库而不是非 PIC 库,链接会生成与位置无关的可执行文件(“-pie”)。
标签:loading_and_analysis
、affects_outputs
- 累计使用了
--host_action_env=<a 'name=value' assignment with an optional value part>
次 -
指定一组环境变量,供具有执行配置的操作使用。变量可以按名称指定,在这种情况下,值将从调用环境中获取;也可以按 name=value 对指定,该值独立于调用环境设置。此选项可以多次使用;对于同一变量给出的选项,最近的胜出者、不同变量的选项累计。
标签:action_command_lines
--host_compilation_mode=<fastbuild, dbg or opt>
默认值:“opt”-
指定构建期间使用的工具将采用的模式。值:“Fastbuild”“dbg”“opt”。
标签:affects_outputs
、action_command_lines
- 累计使用了
--host_conlyopt=<a string>
次 -
在 exec 配置中编译 C(而非 C++)源文件时要传递到 C 编译器的附加选项。
标签:action_command_lines
、affects_outputs
- 累计使用了
--host_copt=<a string>
次 -
对于在 exec 配置中构建的工具,要传递给 C 编译器的其他选项。
标签:action_command_lines
、affects_outputs
--host_cpu=<a string>
默认值:“”-
主机 CPU。
标签:changes_inputs
、affects_outputs
- 累计使用了
--host_cxxopt=<a string>
次 -
对于在 exec 配置中构建的工具,要传递给 C++ 编译器的其他选项。
标签:action_command_lines
、affects_outputs
- 累计使用了
--host_features=<a string>
次 -
对于在 exec 配置中构建的目标,将默认启用或停用给定功能。指定 -<feature>即可停用此功能排除性功能始终会覆盖肯定功能。
标签:changes_inputs
、affects_outputs
--host_force_python=<PY2 or PY3>
默认值:请参阅说明-
替换 exec 配置的 Python 版本。可以是“PY2”或“PY3”
标签:loading_and_analysis
、affects_outputs
- 累计使用了
--host_linkopt=<a string>
次 -
链接 exec 配置中的工具时要传递给链接器的附加选项。
标签:action_command_lines
、affects_outputs
--host_macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
主机目标的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
标签:loses_incremental_state
- 累计使用了
--host_per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>
次 -
在 exec 配置中编译某些文件时,有选择地传递给 C/C++ 编译器的附加选项。此选项可以多次传递。语法: regex_filter@option_1,option_2,...,option_n。其中 regex_filter 代表包含和排除正则表达式模式的列表(另请参阅 --instrument_filter)。option_1 到 option_n 代表任意命令行选项。如果选项包含英文逗号,则必须使用反斜杠将其括住。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--host_per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 可将 -O0 命令行选项添加到 //foo/ 中除 bar.cc 之外的所有 cc 文件的 gcc 命令行中。
标签:action_command_lines
、affects_outputs
--[no]incompatible_auto_exec_groups
默认值:“false”-
启用后,系统会自动为规则使用的每个工具链创建执行组。为此,规则需要在其操作中指定“toolchain”参数。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/17134。
标签:affects_outputs
、incompatible_change
--[no]incompatible_merge_genfiles_directory
默认值:“true”-
如果为 true,则 genfiles 目录将放入 bin 目录。
标签:affects_outputs
、incompatible_change
--[no]instrument_test_targets
默认值:“false”-
启用覆盖率后,指定是否考虑检测测试规则。设置后,系统将对 --instrument_filter 包含的测试规则进行插桩测试。否则,始终会从覆盖率插桩中排除测试规则。
标签:affects_outputs
--instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>
默认值:“-/javatests[/:],-/test/java[/:]”-
启用覆盖率后,系统只会对名称包含在指定的基于正则表达式的过滤条件中的规则进行插桩。带有“-”前缀的规则排除。请注意,除非启用 --instrument_test_targets,否则只会对非测试规则进行插桩。
标签:affects_outputs
--ios_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
目标模拟器和设备的最低兼容 iOS 版本。如果未指定,则使用“ios_sdk_version”。
标签:loses_incremental_state
- 累计使用了
--ios_multi_cpus=<comma-separated list of options>
次 -
构建 ios_application 时要使用的架构列表(以英文逗号分隔)。最终会生成包含所有指定架构的通用二进制文件。
标签:loses_incremental_state
、loading_and_analysis
--[no]legacy_whole_archive
默认值:“true”-
已弃用,由 --incompatible_remove_legacy_whole_archive 取代(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7362)。开启此设置后,对具有 linkshared=True 且 linkstatic=True 或“-static”的 cc_binary 规则使用 --whole-archive在 linkopts 中设置这仅用于实现向后兼容性。更好的替代方案是,根据需要使用 alwayslink=1。
标签:action_command_lines
、affects_outputs
、deprecated
- 累计使用了
--linkopt=<a string>
次 -
链接时传递给 gcc 的其他选项。
标签:action_command_lines
、affects_outputs
- 累计使用了
--ltobackendopt=<a string>
次 -
传递给 LTO 后端步骤的附加选项(在 --features=thin_lto 下)。
标签:action_command_lines
、affects_outputs
- 累计使用了
--ltoindexopt=<a string>
次 -
传递给 LTO 索引步骤的附加选项(在 --features=thin_lto 下)。
标签:action_command_lines
、affects_outputs
- 累计使用了
--macos_cpus=<comma-separated list of options>
次 -
用于构建 Apple macOS 二进制文件的架构列表(以英文逗号分隔)。
标签:loses_incremental_state
、loading_and_analysis
--macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
目标的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
标签:loses_incremental_state
--memprof_profile=<a build target label>
默认值:请参阅说明-
使用 memprof 配置文件。
标签:affects_outputs
--[no]objc_debug_with_GLIBCXX
默认值:“false”-
如果已设置,并且编译模式设置为“dbg”,则定义 GLIBCXX_DEBUG、GLIBCXX_DEBUG_PEDANTIC 和 GLIBCPP_CONCEPT_CHECKS。
标签:action_command_lines
--[no]objc_enable_binary_stripping
默认值:“false”-
是否对链接的二进制文件执行符号和死代码剥离。如果同时指定了此标志和 --compile_mode=opt,将执行二进制文件剥离。
标签:action_command_lines
- 累计使用了
--objccopt=<a string>
次 -
编译 Objective-C/C++ 源文件时要传递给 gcc 的其他选项。
标签:action_command_lines
- 累计使用了
--per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>
次 -
其他选项,可在编译特定文件时有选择地传递给 gcc。此选项可以多次传递。语法: regex_filter@option_1,option_2,...,option_n。其中 regex_filter 代表包含和排除正则表达式模式的列表(另请参阅 --instrument_filter)。option_1 到 option_n 代表任意命令行选项。如果选项包含英文逗号,则必须使用反斜杠将其括住。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 将 -O0 命令行选项添加到 //foo/ 中除 bar.cc 之外的所有 cc 文件的 gcc 命令行中。
标签:action_command_lines
、affects_outputs
- 累计使用了
--per_file_ltobackendopt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>
次 -
在编译某些后端对象时,有选择地传递到 LTO 后端(在 --features=thin_lto 下)的其他选项。此选项可以多次传递。语法: regex_filter@option_1,option_2,...,option_n。其中,regex_filter 代表包含和排除正则表达式模式的列表。option_1 到 option_n 代表任意命令行选项。如果选项包含英文逗号,则必须使用反斜杠将其括住。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--per_file_ltobackendopt=//foo/.*\.o,-//foo/bar\.o@-O0 将 -O0 命令行选项添加到 //foo/ 中除 bar.o 之外的所有 o 文件的 LTO 后端命令行。
标签:action_command_lines
、affects_outputs
--platform_suffix=<a string>
默认值:请参阅说明-
指定要添加到配置目录的后缀。
标签:loses_incremental_state
、affects_outputs
、loading_and_analysis
--propeller_optimize=<a build target label>
默认值:请参阅说明-
使用 Propeller 配置文件信息来优化构建目标。一个推进器配置文件必须至少包含两个文件(一个 cc 配置文件和一个 ld 配置文件)中的一个。此标志接受 build 标签,该标签必须引用推进器配置文件输入文件。例如,在 a/b/BUILD:propeller_optimize( name = "propeller_profile", cc_profile = "propeller_cc_profile.txt", ld_profile = "propeller_ld_profile.txt",) 中,定义标签的 BUILD 文件必须添加到相应的软件包中,才能使这些文件对 Bazel 可见。选项必须按以下格式使用:--propeller_optimize=//a/b:propeller_profile
标签:action_command_lines
、affects_outputs
--propeller_optimize_absolute_cc_profile=<a string>
默认值:请参阅说明-
针对 Propeller 优化 build 的 cc_profile 文件的绝对路径名。
标签:affects_outputs
--propeller_optimize_absolute_ld_profile=<a string>
默认值:请参阅说明-
针对 Propeller 优化 build 的 ld_profile 文件的绝对路径名。
标签:affects_outputs
--run_under=<a prefix in front of command>
默认值:请参阅说明-
要在“test”的可执行文件之前插入的前缀和“run”命令。如果值为“foo -bar”,执行命令行为“test_binary -baz”,则最终命令行为“foo -bar test_binary -baz”。它也可以是可执行目标的标签。例如:'valgrind'、'strace'、'strace -c'、'valgrind --quiet --num-callers=20'、'//package:target'、'//package:target --options'。
标签:action_command_lines
-
如果为 true,包含相同功能的原生库将在不同目标之间共享
标签:loading_and_analysis
、affects_outputs
--[no]stamp
默认值:“false”-
使用日期、用户名、主机名、工作区信息等标记二进制文件。
标签:affects_outputs
--strip=<always, sometimes or never>
默认值:“有时”-
指定是否删除二进制文件和共享库(使用“-Wl,--strip-debug”)。“sometimes”的默认值表示在 iff --compile_mode=fastbuild 时进行剥离。
标签:affects_outputs
- 累计使用了
--stripopt=<a string>
次 -
生成“<name>.stripped”时传递给标签的其他选项二进制文件
标签:action_command_lines
、affects_outputs
- 累计使用了
--tvos_cpus=<comma-separated list of options>
次 -
用于构建 Apple tvOS 二进制文件的架构列表(以英文逗号分隔)。
标签:loses_incremental_state
、loading_and_analysis
--tvos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
目标模拟器和设备的最低兼容 tvOS 版本。如果未指定,则使用“tvos_sdk_version”。
标签:loses_incremental_state
- 累计使用了
--visionos_cpus=<comma-separated list of options>
次 -
用于构建 Apple visionOS 二进制文件的架构列表(以英文逗号分隔)。
标签:loses_incremental_state
、loading_and_analysis
- 累计使用了
--watchos_cpus=<comma-separated list of options>
次 -
一系列以英文逗号分隔的架构构建了 Apple WatchOS 二进制文件。
标签:loses_incremental_state
、loading_and_analysis
--watchos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
目标模拟器和设备的最低兼容 watchOS 版本。如果未指定,则使用“watchos_sdk_version”。
标签:loses_incremental_state
--xbinary_fdo=<a build target label>
默认值:请参阅说明-
使用 XbinaryFDO 配置文件信息优化编译。指定默认跨二进制配置文件的名称。当该选项与 --fdo_instrument/--fdo_optimize/--fdo_profile 一起使用时,这些选项将始终适用,就像从未指定 xbinary_fdo 一样。
标签:affects_outputs
- 影响 Bazel 强制执行有效构建输入的严格程度的选项(规则定义、标志组合等):
--[no]check_licenses
默认值:“false”-
检查并确保依赖软件包施加的许可限制与正在构建的目标的分发模式不冲突。默认情况下,系统不会检查许可。
标签:build_file_semantics
--[no]check_visibility
默认值:“true”-
如果此政策已停用,目标依赖项中的可见性错误会降级为警告。
标签:build_file_semantics
--[no]desugar_for_android
默认值:“true”-
是否在 dex 处理之前对 Java 8 字节码进行脱糖。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]desugar_java8_libs
默认值:“false”-
是否在旧版设备应用中包含支持的 Java 8 库。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]enforce_constraints
默认值:“true”-
检查每个目标兼容的环境,并报告错误(如有任何目标的依赖项不支持相同环境)
标签:build_file_semantics
--[no]experimental_check_desugar_deps
默认值:“true”-
是否在 Android 二进制文件级别仔细检查正确的脱糖。
标签:eagerness_to_exit
、loading_and_analysis
、experimental
--experimental_import_deps_checking=<a string>
默认值:请参阅说明-
空操作,仅为实现向后兼容而保留
标签:loading_and_analysis
--experimental_one_version_enforcement=<off, warning or error>
默认值:“关闭”-
启用后,强制规定 java_binary 规则在类路径上不能包含同一类文件的多个版本。此强制执行可能会破坏构建,或者导致警告。
标签:loading_and_analysis
--experimental_strict_java_deps=<off, warn, error, strict or default>
默认值:“默认”-
如果为 true,则检查 Java 目标是否明确将所有直接使用的目标声明为依赖项。
标签:build_file_semantics
、eagerness_to_exit
--[no]incompatible_check_testonly_for_output_files
默认值:“false”-
启用后,通过查询所生成的规则的 testonly 检查,检查 testonly 是否为输出文件的前提条件目标。这与可见性检查一致。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_check_visibility_for_toolchains
默认值:“false”-
如果启用,可见性检查也会应用于工具链实现。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_disable_native_android_rules
默认值:“false”-
启用后,系统将禁止直接使用原生 Android 规则。请使用 https://github.com/bazelbuild/rules_android 中的 Starlark Android 规则
标签:eagerness_to_exit
、incompatible_change
--[no]incompatible_disable_native_apple_binary_rule
默认值:“false”-
无运维。为了实现向后兼容性而保留在此处。
标签:eagerness_to_exit
、incompatible_change
--[no]incompatible_python_disable_py2
默认值:“true”-
如果为 true,使用 Python 2 设置会导致错误。这包括 python_version=PY2、srcs_version=PY2 和 srcs_version=PY2ONLY。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/15684。
标签:loading_and_analysis
、incompatible_change
--[no]one_version_enforcement_on_java_tests
默认值:“true”-
启用后,如果 experiment_one_version_enforcement 设置为非 NONE 值,则对 java_test 目标强制执行一个版本。您可以停用此标志,以提升增量测试性能,但代价是可能会遗漏潜在的单个版本违规行为。
标签:loading_and_analysis
--python_native_rules_allowlist=<a build target label>
默认值:请参阅说明-
强制执行 --incompatible_python_disallow_native_rules 时使用的许可名单(package_group 目标)。
标签:loading_and_analysis
--[no]strict_filesets
默认值:“false”-
如果启用此选项,系统会将跨越软件包边界的文件集报告为错误。
标签:build_file_semantics
、eagerness_to_exit
--strict_proto_deps=<off, warn, error, strict or default>
默认值:“error”-
除非 OFF,否则检查 proto_library 目标是否将所有直接使用的目标明确声明为依赖项。
标签:build_file_semantics
、eagerness_to_exit
、incompatible_change
--strict_public_imports=<off, warn, error, strict or default>
默认值:“关闭”-
除非 OFF,否则检查 proto_library 目标是否明确声明了“导入公共”中使用的所有目标导出的数据。
标签:build_file_semantics
、eagerness_to_exit
、incompatible_change
--[no]strict_system_includes
默认值:“false”-
如果为 true,则还需要声明通过系统包含路径 (-isystem) 找到的标头。
标签:loading_and_analysis
、eagerness_to_exit
- 累计使用了
--target_environment=<a build target label>
次 -
声明此构建的目标环境。必须是对“环境”的标签引用规则。如果指定,则所有顶级目标都必须与此环境兼容。
标签:changes_inputs
- 影响 build 签名输出的选项:
--apk_signing_method=<v1, v2, v1_v2 or v4>
默认值:“v1_v2”-
用于为 APK 签名的实现
标签:action_command_lines
、affects_outputs
、loading_and_analysis
--[no]device_debug_entitlements
默认值:“true”-
如果已设置,并且编译模式不是“opt”,则 objc 应用在签名时将包含调试权限。
标签:changes_inputs
--ios_signing_cert_name=<a string>
默认值:请参阅说明-
用于 iOS 签名的证书名称。如果未设置,系统将回退到使用配置文件。根据代码签名的手册页面 (SIGNING IDENTITIES),可以是证书的密钥链标识偏好设置或证书常用名的(子字符串)。
标签:action_command_lines
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_disallow_legacy_py_provider
默认值:“true”-
免运维,即将被移除。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_disallow_sdk_frameworks_attributes
默认值:“false”-
如果为 true,则禁止在 objc_library 和 objc_import 中使用 sdk_frameworks 和 weak_sdk_frameworks 属性。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_objc_alwayslink_by_default
默认值:“false”-
如果为 true,则将 objc_library 和 objc_import 中的始终链接属性的默认值设为 true。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_python_disallow_native_rules
默认值:“false”-
如果为 true,使用内置的 py_* 规则时会出错;应改用 rule_python 规则。如需了解详情和迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/17773。
标签:loading_and_analysis
、incompatible_change
- 用于控制测试环境或测试运行程序行为的选项:
--[no]allow_analysis_failures
默认值:“false”-
如果为 true,规则目标的分析失败将导致目标传播包含错误说明的 AnalysisFailureInfo 实例,而不是导致构建失败。
标签:loading_and_analysis
、experimental
--analysis_testing_deps_limit=<an integer>
默认值:“2000”-
通过具有 for_analysis_testing 配置转换的规则属性设置传递依赖项的数量上限。超出此限制将导致规则错误。
标签:loading_and_analysis
--[no]break_build_on_parallel_dex2oat_failure
默认值:“false”-
如果 dex2oat 操作失败,则会导致构建中断,而不是在测试运行时执行 dex2oat。
标签:loading_and_analysis
、experimental
- 累计使用了
--default_test_resources=<a resource name followed by equal and 1 float or 4 float, e.g memory=10,30,60,100>
次 - 替换测试的默认资源量。预期格式为 <resource>=<value>。如果将 <value> 指定为单个正数它会覆盖所有测试尺寸的默认资源如果指定了 4 个以英文逗号分隔的数字,它们将分别覆盖小测试、中测试、大测试大小的资源量。值也可以是 HOST_RAM/HOST_CPU,可以选择后跟 [-|*]<float>(例如 memory=HOST_RAM*.1,HOST_RAM*.2,HOST_RAM*.3,HOST_RAM*.4)。此标志指定的默认测试资源会被标记中指定的显式资源替换。
--[no]experimental_android_use_parallel_dex2oat
默认值:“false”-
同时使用 dex2oat 来可能加快 android_test。
标签:loading_and_analysis
、host_machine_resource_optimizations
、experimental
--[no]ios_memleaks
默认值:“false”-
在 ios_test 目标中启用内存泄漏检查功能。
标签:action_command_lines
--ios_simulator_device=<a string>
默认值:请参阅说明-
在模拟器中运行 iOS 应用时要模拟的设备,例如“iPhone 6”。您可以通过运行“xcrun simctl list devicetypes”来获取设备列表运行模拟器的机器上。
标签:test_runner
--ios_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
运行或测试时要在模拟器上运行的 iOS 版本。对于 ios_test 规则,如果在规则中指定了目标设备,系统会忽略此字段。
标签:test_runner
- 累计使用了
--runs_per_test=<a positive integer or test_regex@runs. This flag may be passed more than once>
次 - 指定每个测试的运行次数。如果其中任何一个尝试由于任何原因失败,则整个测试都被视为失败。通常,指定的值只是一个整数。示例:--runs_per_test=3 将运行所有测试 3 次。备用语法:regex_filter@runs_per_test。其中,runs_per_test 代表整数值,regex_filter 代表包含和排除正则表达式模式的列表(另请参阅 --instrument_filter)。示例:--runs_per_test=//foo/.*,-//foo/bar/.*@3 运行 //foo/ 中的所有测试(foo/bar 下的测试除外)运行三次。此选项可以多次传递。最近传递的匹配的参数优先。如果没有任何匹配项,则测试仅运行一次。
- 累计使用了
--test_env=<a 'name=value' assignment with an optional value part>
次 -
指定要注入测试运行程序环境的其他环境变量。变量可以按名称指定,在这种情况下,其值将从 Bazel 客户端环境中读取,也可以通过“名称=值”对读取。此选项可以多次用于指定多个变量。仅供“bazel 测试”使用命令。
标签:test_runner
--test_timeout=<a single integer or comma-separated list of 4 integers>
默认值:“-1”- 覆盖测试超时的默认测试超时值(以秒为单位)。如果指定单个正整数值,它将覆盖所有类别。如果指定了 4 个以英文逗号分隔的整数,它们将替换短时、中等长度、长时和永恒(按此顺序)的超时。在这两种形式中,值为 -1 都会指示 blaze 针对该类别使用默认超时。
--[no]zip_undeclared_test_outputs
默认值:“true”-
如果值为 true,则未声明的测试输出将归档为一个 ZIP 文件。
标签:test_runner
- 触发构建时间优化的选项:
--[no]experimental_filter_library_jar_with_program_jar
默认值:“false”-
过滤 ProGuard ProgramJar,移除 LibraryJar 中也存在的任何类。
标签:action_command_lines
--[no]experimental_inmemory_dotd_files
默认值:“true”-
启用后,C++ .d 文件将直接从远程构建节点在内存中传递,而不是写入磁盘。
标签:loading_and_analysis
、execution
、affects_outputs
、experimental
--[no]experimental_inmemory_jdeps_files
默认值:“true”-
启用后,通过 Java 编译生成的依赖项 (.jdeps) 文件将直接从远程构建节点在内存中传递,而不是写入磁盘。
标签:loading_and_analysis
、execution
、affects_outputs
、experimental
--[no]experimental_retain_test_configuration_across_testonly
默认值:“false”-
启用后,--trim_test_configuration 不会修剪标记为 testonly=1 的规则的测试配置。这是为了在非测试规则依赖于 cc_test 规则时减少操作冲突问题。如果 --trim_test_configuration 为 false,则不会产生任何影响。
标签:loading_and_analysis
、loses_incremental_state
--[no]experimental_starlark_cc_import
默认值:“false”-
启用后,即可使用 Starlark 版本的 cc_import。
标签:loading_and_analysis
、experimental
--[no]experimental_unsupported_and_brittle_include_scanning
默认值:“false”-
是否通过解析输入文件中的 #include 行将输入范围缩小到 C/C++ 编译。这可以通过减小编译输入树的大小来提升性能和增量。不过,这也可能会导致构建中断,因为 include 扫描程序未完全实现 C 预处理器语义。具体来说,它不理解动态 #include 指令,并且会忽略预处理器条件逻辑。使用时需自行承担风险。用户提交的与此标志相关的所有问题都将被关闭。
标签:loading_and_analysis
、execution
、changes_inputs
--[no]incremental_dexing
默认值:“true”-
为每个 Jar 文件单独执行 dex 处理的大部分工作。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]objc_use_dotd_pruning
默认值:“true”-
如果已设置,Clang 发出的 .d 文件将用于剪除传递到 objc 编译的输入集。
标签:changes_inputs
、loading_and_analysis
--[no]process_headers_in_dependencies
默认值:“false”-
构建目标 //a:a 时,处理 //a:a 所依赖的所有目标中的标头(如果为工具链启用了标头处理)。
标签:execution
--[no]trim_test_configuration
默认值:“true”-
启用后,与测试相关的选项将会被清除,位于 build 顶层下方。当此标志处于启用状态时,无法将测试构建为非测试规则的依赖项,但对测试相关选项的更改不会导致系统重新分析非测试规则。
标签:loading_and_analysis
、loses_incremental_state
- 影响日志记录的详细程度、格式或位置的选项:
--toolchain_resolution_debug=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>
默认值:“-.*”-
在工具链解析期间输出调试信息。该标志采用正则表达式,而正则表达式会针对工具链类型和特定目标进行检查,以判断要调试哪个目标。可以使用逗号分隔多个正则表达式,然后分别检查每个正则表达式。注意:此标志的输出非常复杂,可能只对熟练掌握工具链解决方案的专家有用。
标签:terminal_output
- 用于为 Bazel 命令指定或更改常规输入(不属于其他类别)的选项:
- 累计使用了
--flag_alias=<a 'name=value' flag alias>
次 -
设置 Starlark 标志的简写名称。它需要一个格式为“<键>=<值>”的键值对作为参数。
标签:changes_inputs
--[no]incompatible_default_to_explicit_init_py
默认值:“false”-
此标志会更改默认行为,以便系统不再在 Python 目标的 runfile 中自动创建 __init__.py 文件。确切地说,是在 py_binary 或 py_test 目标将 legacy_create_init 设置为“auto”时(默认值),当且仅当设置了此标志时,才会被视为 false。请参阅 https://github.com/bazelbuild/bazel/issues/10076。
标签:affects_outputs
、incompatible_change
--[no]incompatible_py2_outputs_are_suffixed
默认值:“true”-
如果为 true,则在 Python 2 配置中构建的目标将出现在包含后缀“-py2”的输出根下,而为 Python 3 构建的目标将显示在没有 Python 相关后缀的根中。这意味着 `bazel-bin` 便捷符号链接将指向 Python 3 目标,而不是 Python 2。如果您启用此选项,也建议启用 `--incompatible_py3_is_default`。
标签:affects_outputs
、incompatible_change
--[no]incompatible_py3_is_default
默认值:“true”-
如果为 true,则未设置其 `python_version`(或 `default_python_version`)属性的 `py_binary` 和 `py_test` 目标将默认为 PY3,而不是 PY2。如果您设置了此标志,也建议设置 `--incompatible_py2_outputs_are_suffixed`。
标签:loading_and_analysis
、affects_outputs
、incompatible_change
--[no]incompatible_use_python_toolchains
默认值:“true”-
如果设置为 true,可执行原生 Python 规则将使用 Python 工具链指定的 Python 运行时,而不是由旧版标志(如 --python_top)指定的运行时。
标签:loading_and_analysis
、incompatible_change
--python_version=<PY2 or PY3>
默认值:请参阅说明-
Python 主要版本模式,即“PY2”或“PY3”。请注意,这会被“py_binary”和“py_test”目标替换(即使它们未明确指定版本),因此通常没有太多理由提供此标志。
标签:loading_and_analysis
、affects_outputs
- 未以其他方式分类的其他选项:
--[no]cache_test_results
[-t
] 默认值:“自动”- 如果设置为“auto”,则当且仅当满足以下条件时,Bazel 才会重新运行测试:(1) Bazel 检测到了测试或其依赖项的变化,(2) 测试已被标记为外部,(3) 使用 --runs_per_test 请求了多次测试运行,或(4) 之前测试失败。如果设置为“yes”,则 Bazel 会缓存所有测试结果,但标记为外部的测试除外。如果设置为“no”,则 Bazel 不会缓存任何测试结果。
--[no]experimental_cancel_concurrent_tests
默认值:“false”-
如果为 true,Blaze 将在第一次成功运行时取消同时运行的测试。这只能与 --runs_per_test_detects_flakes 结合使用。
标签:affects_outputs
、loading_and_analysis
--[no]experimental_fetch_all_coverage_outputs
默认值:“false”-
如果为 true,则 Bazel 会在覆盖率运行期间为每次测试提取整个覆盖率数据目录。
标签:affects_outputs
、loading_and_analysis
--[no]experimental_generate_llvm_lcov
默认值:“false”-
如果值为 true,则针对 Clang 的覆盖率将生成 LCOV 报告。
标签:affects_outputs
、loading_and_analysis
--[no]experimental_j2objc_header_map
默认值:“true”- 是否在 J2ObjC 转译的同时生成 J2ObjC 标头映射。
--[no]experimental_j2objc_shorter_header_path
默认值:“false”-
是否使用更短的标头路径(使用“_ios”而不是“_j2objc”)生成。
标签:affects_outputs
--experimental_java_classpath=<off, javabuilder or bazel>
默认值:“javabuilder”- 为 Java 编译启用缩减类路径。
--[no]experimental_limit_android_lint_to_android_constrained_java
默认值:“false”-
空操作,仅为实现向后兼容而保留
标签:affects_outputs
--[no]experimental_run_android_lint_on_java_rules
默认值:“false”-
是否验证 java_* 来源。
标签:affects_outputs
--[no]explicit_java_test_deps
默认值:“false”- 在 java_test 中明确指定对 JUnit 或 Hamcrest 的依赖项,而不是从 TestRunner 的依赖项意外获取。目前仅适用于 bazel。
--host_java_launcher=<a build target label>
默认值:请参阅说明- 在构建期间执行的工具使用的 Java 启动器。
- 累计使用了
--host_javacopt=<a string>
次 - 在构建在构建期间执行的工具时要传递给 javac 的其他选项。
- 累计使用了
--host_jvmopt=<a string>
次 - 构建在构建期间执行的工具时要传递给 Java 虚拟机的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--[no]incompatible_check_sharding_support
默认值:“true”-
如果为 true,则如果测试运行程序未通过触摸 TEST_SHARD_STATUS_FILE 中的路径下的文件来表明支持分片,则 Bazel 会使分片测试失败。如果为 false,不支持分片的测试运行程序将导致所有测试在每个分片中运行。
标签:incompatible_change
--[no]incompatible_exclusive_test_sandboxed
默认值:“true”-
如果为 true,系统将采用沙盒化策略运行专属测试。添加“本地”用于强制在本地运行独占测试的标记
标签:incompatible_change
--[no]incompatible_strict_action_env
默认值:“false”-
如果为 true,则 Bazel 会使用具有静态 PATH 值的环境,并且不会继承 LD_LIBRARY_PATH。如果您希望从客户端继承特定的环境变量,请使用 --action_env=ENV_VARIABLE,但请注意,如果使用了共享缓存,这样做可能会阻止跨用户缓存。
标签:loading_and_analysis
、incompatible_change
- 累计使用了
--j2objc_translation_flags=<comma-separated list of options>
次 - 要传递给 J2ObjC 工具的其他选项。
--java_debug
-
使 Java 测试的 Java 虚拟机在开始测试之前等待来自兼容 JDWP 的调试程序(例如 jdb)的连接。隐含 -test_output=streamed。
扩展为:
--test_arg=--wrapper_script_flag=--debug
--test_output=streamed
--test_strategy=exclusive
--test_timeout=9999
--nocache_test_results
--[no]java_deps
默认值:“true”- 按 Java 目标生成依赖项信息(目前为编译时类路径)。
--[no]java_header_compilation
默认值:“true”- 直接从源代码编译 ijar。
--java_language_version=<a string>
默认值:“”- Java 语言版本
--java_launcher=<a build target label>
默认值:请参阅说明- 构建 Java 二进制文件时使用的 Java 启动器。如果此标志设置为空字符串,则使用 JDK 启动器。“启动器”属性将覆盖此标志。
--java_runtime_version=<a string>
默认值:“local_jdk”- Java 运行时版本
- 累计使用了
--javacopt=<a string>
次 - 传递给 javac 的其他选项。
- 累计使用了
--jvmopt=<a string>
次 - 要传递给 Java 虚拟机的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--legacy_main_dex_list_generator=<a build target label>
默认值:请参阅说明- 指定一个二进制文件,用于生成编译旧版 MultiDex 时必须在主 dex 中的类的列表。
--optimizing_dexer=<a build target label>
默认值:请参阅说明- 指定用于在不分片的情况下执行 dex 处理的二进制文件。
- 累计使用了
--plugin=<a build target label>
次 - 要在构建中使用的插件。目前支持 java_plugin。
--proguard_top=<a build target label>
默认值:请参阅说明- 指定在构建 Java 二进制文件时用于移除代码的 ProGuard 版本。
--proto_compiler=<a build target label>
默认值:“@bazel_tools//tools/proto:protoc”-
proto 编译器的标签。
标签:affects_outputs
、loading_and_analysis
--[no]proto_profile
默认值:“true”-
是否将 profile_path 传递给 proto 编译器。
标签:affects_outputs
、loading_and_analysis
--proto_profile_path=<a build target label>
默认值:请参阅说明-
要作为 profile_path 传递给 proto 编译器的配置文件。如果未设置,但 --proto_profile 为 true(默认值),则通过 --fdo_optimize 推断路径。
标签:affects_outputs
、loading_and_analysis
--proto_toolchain_for_cc=<a build target label>
默认值:“@bazel_tools//tools/proto:cc_toolchain"-
proto_lang_toolchain() 的标签,用于描述如何编译 C++ proto
标签:affects_outputs
、loading_and_analysis
--proto_toolchain_for_j2objc=<a build target label>
默认值:“@bazel_tools//tools/j2objc:j2objc_proto_toolchain”-
proto_lang_toolchain() 的标签,用于描述如何编译 j2objc proto
标签:affects_outputs
、loading_and_analysis
--proto_toolchain_for_java=<a build target label>
默认值:“@bazel_tools//tools/proto:java_toolchain"-
proto_lang_toolchain() 的标签,用于描述如何编译 Java proto
标签:affects_outputs
、loading_and_analysis
--proto_toolchain_for_javalite=<a build target label>
默认值:“@bazel_tools//tools/proto:javalite_toolchain"-
proto_lang_toolchain() 的标签,用于描述如何编译 JavaLite proto
标签:affects_outputs
、loading_and_analysis
- 累计使用了
--protocopt=<a string>
次 -
要传递给 protobuf 编译器的其他选项。
标签:affects_outputs
--[no]runs_per_test_detects_flakes
默认值:“false”- 如果为 true,则至少有一次运行/尝试通过且至少一次运行/尝试失败的任何分片都将获得 FLAKY 状态。
--shell_executable=<a path>
默认值:请参阅说明-
Bazel 要使用的 shell 可执行文件的绝对路径。如果未设置,但 BAZEL_SH 环境变量是在第一次 Bazel 调用(启动 Bazel 服务器)时设置的,则 Bazel 会使用该环境变量。如果二者都未设置,Bazel 会使用硬编码的默认路径,具体取决于运行它的操作系统(Windows:c:/msys64/usr/bin/bash.exe,FreeBSD:/usr/local/bin/bash,所有其他路径为:/bin/bash)。请注意,使用与 bash 不兼容的 shell 可能会导致生成的二进制文件出现构建失败或运行时失败。
标签:loading_and_analysis
- 累计使用了
--test_arg=<a string>
次 - 指定应传递给测试可执行文件的其他选项和参数。可以多次用于指定多个实参。如果执行多个测试,每个测试都将收到相同的参数。仅供“bazel 测试”使用命令。
--test_filter=<a string>
默认值:请参阅说明- 指定要转发到测试框架的过滤器。用于限制运行的测试。请注意,这不会影响构建哪些目标。
--test_result_expiration=<an integer>
默认值:“-1”- 此选项已被弃用,因此没有任何作用。
--[no]test_runner_fail_fast
默认值:“false”- 将快速失败选项转发到测试运行程序。测试运行程序应在第一次失败时停止执行。
--test_sharding_strategy=<explicit, disabled or forced=k where k is the number of shards to enforce>
默认值:“露骨内容”- 指定测试分片策略:“显式”“shard_count”值存在 BUILD 属性。“已停用”绝不使用测试分片“forced=k”强制执行“k”用于测试的分片(无论“shard_count”值如何)BUILD 属性。
--tool_java_language_version=<a string>
默认值:“”- 用于执行构建期间所需工具的 Java 语言版本
--tool_java_runtime_version=<a string>
默认值:“remotejdk_11”- 用于在构建期间执行工具的 Java 运行时版本
--[no]use_ijars
默认值:“true”- 启用后,此选项会使 Java 编译使用接口 JAR。这样可以提高增量编译的速度,但错误消息可能会有所不同。
转储选项
- 用于控制命令输出的选项:
--[no]action_cache
默认值:“false”-
转储操作缓存内容。
标签:bazel_monitoring
--memory=<memory mode>
默认值:请参阅说明-
转储指定 Skyframe 节点的内存用量。
标签:bazel_monitoring
--[no]packages
默认值:“false”-
转储软件包缓存内容。
标签:bazel_monitoring
--[no]rule_classes
默认值:“false”-
转储规则类。
标签:bazel_monitoring
--[no]rules
默认值:“false”-
转储规则,包括计数和内存用量(如果跟踪内存)。
标签:bazel_monitoring
--serialized_frontier_profile=<a string>
默认值:“”-
转储序列化边界字节的配置文件。指定输出路径。
标签:bazel_monitoring
--skyframe=<off, summary, count, value, deps, rdeps, function_graph, working_set or working_set_frontier_deps>
默认值:“关闭”-
转储 Skyframe 图。
标签:bazel_monitoring
--skykey_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>
默认值:“.*”-
要输出的 SkyKey 名称的正则表达式过滤器。只能与 --skyframe=deps、rdeps、function_graph 一起使用。
标签:bazel_monitoring
--skylark_memory=<a string>
默认值:请参阅说明-
将与 pprof 兼容的内存配置文件转储到指定路径。如需了解详情,请访问 https://github.com/google/pprof。
标签:bazel_monitoring
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names
默认值:“true”-
无运维。
标签:loading_and_analysis
提取选项
沿用 test 的所有选项。
- 用于控制构建执行的选项:
--[no]all
默认值:“false”-
获取构建任何目标或代码库所需的所有外部代码库。仅在启用 --enable_bzlmod 时有效。
标签:changes_inputs
--[no]keep_going
[-k
] 默认值:“false”-
在出现错误后尽可能继续。虽然无法分析失败的目标以及依赖于它的目标,但可以分析这些目标的其他前提条件。
标签:eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">
默认值:“auto”-
用于加载/分析阶段的并行线程数。接受整数或关键字(“auto”、“HOST_CPUS”和“HOST_RAM”),可视需要后跟操作 ([-|*]<float>),例如:“auto”、“HOST_CPUS*.5”。“auto”根据主机资源设置合理的默认值。必须至少为 1。
标签:bazel_internal_configuration
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_config_setting_private_default_visibility
默认值:“false”-
如果 incompatible_enforce_config_setting_visibility=false,则是 noop。否则,如果此标志为 false,则任何没有显式可见性属性的 config_setting 都是 //visibility:public。如果此标志为 true,config_setting 遵循与所有其他规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_enforce_config_setting_visibility
默认值:“true”-
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对所有目标都可见。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_use_plus_in_repo_names
默认值:“true”-
无运维。
标签:loading_and_analysis
- 与 Bzlmod 输出和语义相关的选项:
--[no]configure
默认值:“false”-
仅提取标记为“configure”的代码库用于系统配置目的仅在启用 --enable_bzlmod 时有效。
标签:changes_inputs
--[no]force
默认值:“false”-
忽略现有代码库(如果有),并强制重新提取代码库。仅在启用 --enable_bzlmod 时有效。
标签:changes_inputs
- 累计使用了
--repo=<a string>
次 -
仅提取指定的代码库,可以是 {@apparent_repo_name} 或 {@@canonical_repo_name}。仅在启用 --enable_bzlmod 时有效。
标签:changes_inputs
- 影响日志记录的详细程度、格式或位置的选项:
--experimental_repository_resolved_file=<a string>
默认值:“”-
如果非空,请使用已执行的所有 Starlark 代码库规则的解析信息写入 Starlark 值。
标签:affects_outputs
- 未以其他方式分类的其他选项:
- 累计使用了
--deleted_packages=<comma-separated list of package names>
次 - 以逗号分隔的软件包名称列表,构建系统认为不存在这些软件包,即使它们在软件包路径上的某处可见。 删除子包“x/y”时使用此选项现有软件包“x”的一个名称例如,在客户端中删除 x/y/BUILD 后,构建系统可能会指出如果遇到标签“//x:y/z”(如果仍由另一个 package_path 条目提供)。指定 --deleted_packages x/y 可以避免此问题。
--[no]fetch
默认值:“true”- 允许该命令提取外部依赖项。如果设为 false,该命令将使用依赖项的任何缓存版本;如果不存在,该命令将导致失败。
--package_path=<colon-separated list of options>
默认值:“%workspace%”- 以英文冒号分隔的列表,用于列出查找软件包的位置。以“%workspace%”开头的元素相对于外围工作区如果省略或为空,则默认为“bazel info default-package-path”的输出。
--[no]show_loading_progress
默认值:“true”- 如果启用,则会导致 Bazel 输出“正在加载软件包:”。消息。 。
- 用于控制构建执行的选项:
--[no]experimental_inprocess_symlink_creation
默认值:“false”-
是否发起直接文件系统调用以创建符号链接树
标签:loading_and_analysis
、execution
、experimental
--[no]experimental_persistent_aar_extractor
默认值:“false”-
使用工作器启用永久性 aar 提取器。
标签:execution
--[no]experimental_remotable_source_manifests
默认值:“false”-
是否将源清单操作设为远程
标签:loading_and_analysis
、execution
、experimental
--[no]experimental_split_coverage_postprocessing
默认值:“false”-
如果为 true,则 Bazel 将在新的生成对象中运行覆盖率后处理以进行测试。
标签:execution
--[no]experimental_strict_fileset_output
默认值:“false”-
如果启用此选项,文件集会将所有输出制品视为常规文件。它们不会遍历目录,也不会对符号链接敏感。
标签:execution
--[no]incompatible_modify_execution_info_additive
默认值:“false”-
启用后,传递多个 --modify_execution_info 标志是累加的。停用后,系统只会考虑最后一个标志。
标签:execution
、affects_outputs
、loading_and_analysis
、incompatible_change
- 累计使用了
--modify_execution_info=<regex=[+-]key,regex=[+-]key,...>
次 -
根据操作助记符在操作的执行信息中添加或移除键。仅适用于支持执行信息的操作。许多常见操作都支持执行信息,例如Genrule、CppCompile、Javac、StarlarkAction、TestRunner。指定多个值时,顺序很重要,因为许多正则表达式可能适用于同一个助记符。
语法:“regex=[+-]key,regex=[+-]key,...”。
示例:
'.*=+x,.*=-y,.*=+z'添加“x”和“z”并移除“y”from - 所有操作的执行信息。
“Genrule=+requires-x”添加“requires-x”所有 Genrule 操作的执行信息。
'(?!Genrule).*=-requires-x'移除了“requires-x”。
标签:execution
、affects_outputs
、loading_and_analysis
--persistent_android_dex_desugar
-
使用 worker 启用持久性 Android dex 和脱糖操作。
扩展为:
--internal_persistent_android_dex_desugar
--strategy=Desugar=worker
--strategy=DexBuilder=worker
标签:host_machine_resource_optimizations
、execution
--persistent_android_resource_processor
-
使用工作器启用永久性 Android 资源处理器。
扩展为:
--internal_persistent_busybox_tools
--strategy=AaptPackage=worker
--strategy=AndroidResourceParser=worker
--strategy=AndroidResourceValidator=worker
--strategy=AndroidResourceCompiler=worker
--strategy=RClassGenerator=worker
--strategy=AndroidResourceLink=worker
--strategy=AndroidAapt2=worker
--strategy=AndroidAssetMerger=worker
--strategy=AndroidResourceMerger=worker
--strategy=AndroidCompiledResourceMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker
--strategy=Aapt2Optimize=worker
--strategy=AARGenerator=worker
--strategy=ProcessDatabinding=worker
--strategy=GenerateDataBindingBaseClasses=worker
{17/
标签:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_dex_desugar
-
使用 worker 启用持久性多路复用 Android dex 和脱糖操作。
扩展为:
--persistent_android_dex_desugar
--internal_persistent_multiplex_android_dex_desugar
标签:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_resource_processor
-
使用工作器启用永久性多路复用 Android 资源处理器。
扩展为:
--persistent_android_resource_processor
--modify_execution_info=AaptPackage=+supports-multiplex-workers
--modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
--modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceCompiler=+supports-multiplex-workers
--modify_execution_info=RClassGenerator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceLink=+supports-multiplex-workers
--modify_execution_info=AndroidAapt2=+supports-multiplex-workers
--modify_execution_info=AndroidAssetMerger=+supports-multiplex-workers
--modify_execution_info=AndroidResourceMerger=+supports-multiplex-workers
--modify_execution_info=AndroidCompiledResourceMerger=+supports-multiplex-workers
--modify_execution_info=ManifestMerger=+supports-multiplex-workers
--modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=AARGenerator=+supports-multiplex-workers
标签:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_tools
-
启用持久性和多路复用 Android 工具(dex 处理、脱糖、资源处理)。
扩展为:
--internal_persistent_multiplex_busybox_tools
--persistent_multiplex_android_resource_processor
--persistent_multiplex_android_dex_desugar
标签:host_machine_resource_optimizations
、execution
--[no]use_target_platform_for_tests
默认值:“false”-
如果为 true,则 Bazel 将使用目标平台(而不是测试执行组)来运行测试。
标签:execution
- 用于配置用于执行操作执行的工具链的选项:
--android_compiler=<a string>
默认值:请参阅说明-
Android 目标编译器。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
--android_manifest_merger=<legacy, android or force_android>
默认值:“android”-
选择要用于 android_binary 规则的清单合并程序。用于帮助从旧版合并转换为 Android 清单合并的标志。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
--android_platforms=<a build target label>
默认值:“”-
设置 android_binary 目标使用的平台。如果指定了多个平台,则二进制文件为胖 APK,其中包含每个指定目标平台的原生二进制文件。
标签:changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_sdk=<a build target label>
默认值:“@bazel_tools//tools/android:sdk”-
指定用于构建 Android 应用的 Android SDK/平台。
标签:changes_inputs
、loading_and_analysis
、loses_incremental_state
--apple_crosstool_top=<a build target label>
默认值:“@bazel_tools//tools/cpp:toolchain"-
要在 Apple 和 Objc 规则及其依赖项中使用的 crosstool 软件包标签。
标签:loses_incremental_state
、changes_inputs
--cc_output_directory_tag=<a string>
默认值:“”-
指定要添加到配置目录的后缀。
标签:affects_outputs
--compiler=<a string>
默认值:请参阅说明-
用于编译目标的 C++ 编译器。
标签:loading_and_analysis
、execution
--coverage_output_generator=<a build target label>
默认值:“@bazel_tools//tools/test:lcov_merger”-
用于对原始覆盖率报表进行后处理的二进制文件的位置。目前,它必须是包含一个文件(即二进制文件)的文件组。默认值为“//tools/test:lcov_merger”。
标签:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_report_generator=<a build target label>
默认值:“@bazel_tools//tools/test:coverage_report_generator”-
用于生成覆盖率报告的二进制文件的位置。目前,它必须是包含一个文件(即二进制文件)的文件组。默认值为“//tools/test:coverage_report_generator”。
标签:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_support=<a build target label>
默认值:“@bazel_tools//tools/test:coverage_support”-
收集代码覆盖率的每个测试操作的输入中所需的支持文件的位置。默认值为“//tools/test:coverage_support”。
标签:changes_inputs
、affects_outputs
、loading_and_analysis
--custom_malloc=<a build target label>
默认值:请参阅说明-
指定自定义 malloc 实现。此设置会覆盖构建规则中的 malloc 属性。
标签:changes_inputs
、affects_outputs
- 累计使用了
--experimental_add_exec_constraints_to_targets=<a '<RegexFilter>=<label1>[,<label2>,...]' assignment>
次 -
以英文逗号分隔的正则表达式列表,每个可选表达式前缀为 -(负表达式),为以英文逗号分隔的限制条件值目标列表分配 (=)。如果某个目标与任何负表达式或至少一个正表达式匹配,系统将执行其工具链解析,就像它将约束值声明为执行约束一样。示例://demo,-test=@platforms//cpus:x86_64 will add 'x86_64'//demo 下除名称中包含“test”的目标之外的任何目标。
标签:loading_and_analysis
--[no]experimental_include_xcode_execution_requirements
默认值:“false”-
如果设置了“requires-xcode:{version}”,则添加一个执行要求如果 Xcode 版本有带连字符的标签,请同时添加“requires-xcode-label:{version_label}”执行要求。
标签:loses_incremental_state
、loading_and_analysis
、execution
--[no]experimental_prefer_mutual_xcode
默认值:“true”-
如果为 true,请使用本地和远程均可使用的最新 Xcode。如果为 false,或者没有相互可用的版本,则使用通过 xcode-select 选择的本地 Xcode 版本。
标签:loses_incremental_state
--extra_execution_platforms=<comma-separated list of options>
默认值:“”-
可作为执行平台来执行操作的平台。平台可以按确切目标指定,也可以指定为目标模式。这些平台将优先于 register_execution_platforms() 在 WORKSPACE 文件中声明的平台得到考虑。此选项只能设置一次;较晚的实例将覆盖较早的标志设置。
标签:execution
- 累计使用了
--extra_toolchains=<comma-separated list of options>
次 -
工具链解析期间要考虑的工具链规则。工具链可以按确切目标指定,也可以指定为目标模式。系统将优先考虑这些工具链,然后再考虑 register_toolchains() 在 WORKSPACE 文件中声明的工具链。
标签:affects_outputs
、changes_inputs
、loading_and_analysis
--grte_top=<a label>
默认值:请参阅说明-
指向已检入的 libc 库的标签。默认值由 Crosstool 工具链选择,您几乎永远不需要替换它。
标签:action_command_lines
、affects_outputs
--host_compiler=<a string>
默认值:请参阅说明-
空操作标志。将在未来的版本中移除。
标签:loading_and_analysis
、execution
--host_grte_top=<a label>
默认值:请参阅说明-
如果指定,此设置将覆盖 exec 配置的 libc 顶级目录 (--grte_top)。
标签:action_command_lines
、affects_outputs
--host_platform=<a build target label>
默认值:“@bazel_tools//tools:host_platform”-
描述主机系统的平台规则的标签。
标签:affects_outputs
、changes_inputs
、loading_and_analysis
--[no]incompatible_bazel_test_exec_run_under
默认值:“false”-
启用后,系统会显示“bazel test --run_under=//:runner”构建 "//:runner"在 exec 配置中指定。如果停用,它将构建“//:runner”。Bazel 在执行机器上执行测试,因此前者更加正确。这不会影响“bazel run”,后者始终会构建“`--run_under=//foo”。
标签:affects_outputs
、incompatible_change
--[no]incompatible_dont_enable_host_nonhost_crosstool_features
默认值:“true”-
如果为 true,Bazel 将不会启用“主机”和“非主机”功能(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7407)。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_enable_apple_toolchain_resolution
默认值:“false”-
使用工具链解析为 Apple 规则选择 Apple SDK(Starlark 和原生)
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_remove_legacy_whole_archive
默认值:“true”-
如果为 true,默认情况下,Bazel 不会将库依赖项关联为整个归档(有关迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/7362)。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_strip_executable_safely
默认值:“false”-
如果为 true,针对可执行文件的剥离操作将使用标志 -x,这不会破坏动态符号解析。
标签:action_command_lines
、incompatible_change
-
使用接口共享对象(如果工具链支持)。目前,所有 ELF 工具链都支持此设置。
标签:loading_and_analysis
、affects_outputs
、affects_outputs
--ios_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
指定用于构建 iOS 应用的 iOS SDK 版本。如果未指定,系统会使用“xcode_version”的默认 iOS SDK 版本。
标签:loses_incremental_state
--macos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
指定用于构建 macOS 应用的 macOS SDK 版本。如果未指定,系统会使用“xcode_version”中的默认 macOS SDK 版本。
标签:loses_incremental_state
--minimum_os_version=<a string>
默认值:请参阅说明-
编译针对的最低操作系统版本。
标签:loading_and_analysis
、affects_outputs
--platform_mappings=<a relative path>
默认值:“”-
映射文件的位置,用于描述未设置任何平台时要使用的平台,或在平台已存在时设置哪些标志。必须相对于主工作区根目录。默认值为“platform_mappings”(工作区根目录下的文件)。
标签:affects_outputs
、changes_inputs
、loading_and_analysis
、immutable
--platforms=<a build target label>
默认值:“”-
描述当前命令目标平台的平台规则的标签。
标签:affects_outputs
、changes_inputs
、loading_and_analysis
--python_path=<a string>
默认值:请参阅说明-
为了在目标平台上运行 Python 目标而调用的 Python 解释器的绝对路径。已弃用;已被 --incompatible_use_python_toolchains 停用。
标签:loading_and_analysis
、affects_outputs
--python_top=<a build target label>
默认值:请参阅说明-
py_runtime 的标签,表示为在目标平台上运行 Python 目标而调用的 Python 解释器。已弃用;已被 --incompatible_use_python_toolchains 停用。
标签:loading_and_analysis
、affects_outputs
--tvos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
指定用于构建 tvOS 应用的 tvOS SDK 版本。如果未指定,系统会使用“xcode_version”中的默认 tvOS SDK 版本。
标签:loses_incremental_state
--watchos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
指定用于构建 watchOS 应用的 watchOS SDK 版本。如果未指定,将使用“xcode_version”中的默认 watchOS SDK 版本。
标签:loses_incremental_state
--xcode_version=<a string>
默认值:请参阅说明-
如果指定,则使用指定版本的 Xcode 执行相关构建操作。如果未指定,则使用默认执行器版本的 Xcode。
标签:loses_incremental_state
--xcode_version_config=<a build target label>
默认值:“@bazel_tools//tools/cpp:host_xcodes”-
xcode_config 规则的标签,用于在 build 配置中选择 Xcode 版本。
标签:loses_incremental_state
、loading_and_analysis
- 用于控制命令输出的选项:
--[no]apple_generate_dsym
默认值:“false”-
是否生成调试符号 (.dSYM) 文件。
标签:affects_outputs
、action_command_lines
--[no]build_runfile_links
默认值:“true”-
如果为 true,则会为所有目标构建 runfiles 符号链接林。如果为 false,则仅在本地操作、测试或运行命令需要时编写这些代码。
标签:affects_outputs
--[no]build_runfile_manifests
默认值:“true”-
如果为 true,请为所有目标编写 runfiles 清单。如果为 false,请忽略它们。如果为 false,本地测试将无法运行。
标签:affects_outputs
--[no]build_test_dwp
默认值:“false”-
启用后,在采用 fission 静态构建 C++ 测试时,测试二进制文件的 .dwp 文件也会自动构建。
标签:loading_and_analysis
、affects_outputs
--cc_proto_library_header_suffixes=<comma-separated set of options>
默认值:“.pb.h”-
设置 cc_proto_library 创建的头文件的后缀。
标签:affects_outputs
、loading_and_analysis
--cc_proto_library_source_suffixes=<comma-separated set of options>
默认值:“.pb.cc”-
设置 cc_proto_library 创建的源文件的后缀。
标签:affects_outputs
、loading_and_analysis
--[no]experimental_proto_descriptor_sets_include_source_info
默认值:“false”-
针对 proto_library 中的备用 Java API 版本运行额外操作。
标签:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_save_feature_state
默认值:“false”-
将已启用和已请求功能的状态保存为编译输出。
标签:affects_outputs
、experimental
--fission=<a set of compilation modes>
默认值:“no”-
指定哪些编译模式对 C++ 编译和链接使用 fission。可以是 {'Fastbuild', 'dbg', 'opt'} 或特殊值“yes”的任意组合启用所有模式,选择“no”来停用所有模式。
标签:loading_and_analysis
、action_command_lines
、affects_outputs
--[no]incompatible_always_include_files_in_data
默认值:“true”-
如果为 true,原生规则会添加 <code>DefaultInfo.files</code>数据依赖项映射到其 runfile,这与 Starlark 规则 (https://bazel.build/extending/rules#runfiles_features_to_avoid) 的建议行为一致。
标签:affects_outputs
、incompatible_change
--[no]legacy_external_runfiles
默认值:“true”-
如果为 true,则除了 .runfiles/repo 之外,还可以在 .runfiles/wsname/external/repo 下为外部代码库构建 runfiles 符号链接林。
标签:affects_outputs
--[no]objc_generate_linkmap
默认值:“false”-
指定是否生成链接映射文件。
标签:affects_outputs
--[no]save_temps
默认值:“false”-
如果设置,则会保存 gcc 的临时输出。包括 .s 文件(汇编代码)、.i 文件(预处理的 C 语言)和 .ii 文件(预处理的 C++)。
标签:affects_outputs
- 可让用户配置预期输出并影响输出值(而不是其存在性)的选项:
- 累计使用了
--action_env=<a 'name=value' assignment with an optional value part>
次 -
指定可用于具有目标配置的操作的一组环境变量。变量可以按名称指定,在这种情况下,值将从调用环境中获取;也可以按 name=value 对指定,该值独立于调用环境设置。此选项可以多次使用;对于同一变量给出的选项,最近的胜出者、不同变量的选项累计。
标签:action_command_lines
--[no]android_databinding_use_androidx
默认值:“true”-
生成与 AndroidX 兼容的数据绑定文件。这仅适用于数据绑定 v2。此标志是一个空操作。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]android_databinding_use_v3_4_args
默认值:“true”-
使用带有 3.4.0 参数的 Android 数据绑定 v2。此标志是一个空操作。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--android_dynamic_mode=<off, default or fully>
默认值:“关闭”-
确定当 cc_binary 未明确创建共享库时,Android 规则的 C++ 依赖项是否会动态关联。“default”表示 bazel 将选择是否进行动态关联。“full”表示所有库都将动态关联。“关闭”表示在大多静态模式下链接所有库。
标签:affects_outputs
、loading_and_analysis
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency>
默认值:“alphabetical”-
设置传递给 Android 二进制文件的清单合并程序的清单的顺序。ALPHABETical 表示清单按相对于 execroot 的路径进行排序。ALPHABETical_BY_CONFIGURATION 表示清单按相对于输出目录中配置目录的路径进行排序。“DEPENDENCY(依赖项)”表示对清单进行排序,使每个库的清单排在其依赖项清单之前。
标签:action_command_lines
、execution
--[no]android_resource_shrinking
默认值:“false”-
为使用 ProGuard 的 android_binary APK 启用资源压缩。
标签:affects_outputs
、loading_and_analysis
--[no]build_python_zip
默认值:“auto”-
构建 Python 可执行 zip;在其他平台上关闭
标签:affects_outputs
- 累计使用了
--catalyst_cpus=<comma-separated list of options>
次 -
用于构建 Apple Catalyst 二进制文件的架构的逗号分隔列表。
标签:loses_incremental_state
、loading_and_analysis
--[no]collect_code_coverage
默认值:“false”-
如果指定,Bazel 将对代码进行插桩(尽可能使用离线插桩),并在测试期间收集覆盖率信息。只有与 --instrument_filter 匹配的目标会受到影响。通常,不应直接指定此选项 - 'bazel reach'命令。
标签:affects_outputs
--compilation_mode=<fastbuild, dbg or opt>
[-c
] 默认值:“Fastbuild”-
指定构建二进制文件的模式。值:“Fastbuild”“dbg”“opt”。
标签:affects_outputs
、action_command_lines
- 累计使用了
--conlyopt=<a string>
次 -
这是在编译 C 源文件时传递给 gcc 的附加选项。
标签:action_command_lines
、affects_outputs
- 累计使用了
--copt=<a string>
次 -
传递给 gcc 的其他选项。
标签:action_command_lines
、affects_outputs
--cpu=<a string>
默认值:“”-
目标 CPU。
标签:changes_inputs
、affects_outputs
--cs_fdo_absolute_path=<a string>
默认值:请参阅说明-
使用 CSFDO 配置文件信息优化编译。指定包含配置文件、原始或已编入索引的 LLVM 配置文件的 ZIP 文件的绝对路径名。
标签:affects_outputs
--cs_fdo_instrument=<a string>
默认值:请参阅说明-
使用上下文敏感 FDO 插桩生成二进制文件。使用 Clang/LLVM 编译器,它还接受将在运行时转储原始配置文件的目录名称。
标签:affects_outputs
--cs_fdo_profile=<a build target label>
默认值:请参阅说明-
cs_fdo_profile,表示要用于优化的上下文敏感配置文件。
标签:affects_outputs
- 累计使用了
--cxxopt=<a string>
次 -
编译 C++ 源文件时传递给 gcc 的附加选项。
标签:action_command_lines
、affects_outputs
- 累计使用了
--define=<a 'name=value' assignment>
次 -
每个 --define 选项都会指定对 build 变量的赋值。如果一个变量有多个值,以最后一个值为准。
标签:changes_inputs
、affects_outputs
--dynamic_mode=<off, default or fully>
默认值:“默认”-
确定是否会动态链接 C++ 二进制文件。“default”这意味着 Bazel 将选择是否进行动态关联。“full”表示所有库都将动态关联。“关闭”表示在大多静态模式下链接所有库。
标签:loading_and_analysis
、affects_outputs
--[no]enable_propeller_optimize_absolute_paths
默认值:“true”-
如果已设置,任何对推进器优化的绝对路径使用都会引发错误。
标签:affects_outputs
--[no]enable_remaining_fdo_absolute_paths
默认值:“true”-
如果已设置,任何对 FDO 使用绝对路径都会引发错误。
标签:affects_outputs
--[no]enable_runfiles
默认值:“auto”-
启用 runfiles 符号链接树;在 Windows 和其他平台上,此设置默认处于关闭状态。
标签:affects_outputs
- 累计使用了
--experimental_action_listener=<a build target label>
次 -
已弃用,取而代之的是切面。使用 action_listener 将 extra_action 附加到现有构建操作。
标签:execution
、experimental
--[no]experimental_android_compress_java_resources
默认值:“false”-
压缩 APK 中的 Java 资源
标签:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_android_databinding_v2
默认值:“true”-
使用 Android Databinding v2。此标志是一个空操作。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]experimental_android_resource_shrinking
默认值:“false”-
为使用 ProGuard 的 android_binary APK 启用资源压缩。
标签:affects_outputs
、loading_and_analysis
--[no]experimental_android_rewrite_dexes_with_rex
默认值:“false”-
使用 rex 工具重写 dex 文件
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]experimental_collect_code_coverage_for_generated_files
默认值:“false”-
如果已指定,Bazel 还会为生成的文件生成收集覆盖率信息。
标签:affects_outputs
--experimental_objc_fastbuild_options=<comma-separated list of options>
默认值:“-O0,-DDEBUG=1”-
将这些字符串用作 objc fastbuild 编译器选项。
标签:action_command_lines
--[no]experimental_omitfp
默认值:“false”-
如果为 true,则使用 libunwind 进行堆栈展开,并使用 -fomit-frame-pointer 和 -fasynchronous-unwind-tables 进行编译。
标签:action_command_lines
、affects_outputs
、experimental
--experimental_output_paths=<off, content or strip>
默认值:“关闭”-
使用哪种模型来确定在输出树规则中的什么位置写入输出,尤其是对于多平台 / 多配置 build。这是一项实验性功能。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/6526。Starlark 操作可以通过添加键“supports-path-mapping”来选择启用路径映射对“Execution_requirements”字典。
标签:loses_incremental_state
、bazel_internal_configuration
、affects_outputs
、execution
- 累计使用了
--experimental_override_name_platform_in_output_dir=<a 'label=value' assignment>
次 -
每个条目都应采用 label=value 格式,其中 label 代表平台, values 是要在输出路径中使用的所需简称。仅在 --experimental_platform_in_output_dir 为 true 时使用。具有最高命名优先级。
标签:affects_outputs
、experimental
--[no]experimental_platform_in_output_dir
默认值:“false”-
如果为 true,则输出目录名称(而非 CPU)将使用目标平台的简称。确切方案是实验性的,并且可能会发生变化:首先,在极少数情况下,--platforms 选项不只有一个值,而是使用 platform 选项的哈希值。接下来,如果-experimental_override_name_platform_in_output_dir 注册了当前平台的任何简称,则会使用该简称。然后,如果设置了 --experimental_use_platforms_in_output_dir_legacy_heuristic,使用基于当前平台标签的简称。最后,在万不得已时才使用平台选项的哈希值。
标签:affects_outputs
、experimental
--[no]experimental_use_llvm_covmap
默认值:“false”-
如果指定,则启用 collect_code_coverage 时,Bazel 将生成 llvm-cov 覆盖率地图信息,而不是 gcov。
标签:changes_inputs
、affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_use_platforms_in_output_dir_legacy_heuristic
默认值:“true”-
只有在建议的迁移或测试策略中使用此标志,请注意,启发法存在一些已知缺陷,建议改用仅依赖于 --experimental_override_name_platform_in_output_dir。
标签:affects_outputs
、experimental
--fat_apk_cpu=<comma-separated set of options>
默认值:“armeabi-v7a”-
设置此选项会启用胖 APK,其中包含所有指定目标架构的原生二进制文件,例如--fat_apk_cpu=x86,armeabi-v7a.如果指定了此标志,则对于 android_binary 规则的依赖项,--android_cpu 会被忽略。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
--fdo_instrument=<a string>
默认值:请参阅说明-
使用 FDO 插桩生成二进制文件。使用 Clang/LLVM 编译器,它还接受将在运行时转储原始配置文件的目录名称。
标签:affects_outputs
--fdo_optimize=<a string>
默认值:请参阅说明-
使用 FDO 配置文件信息来优化编译。指定包含 .gcda 文件树的 ZIP 文件、包含自动配置文件的 afdo 文件或 LLVM 配置文件的名称。此标志还接受指定为标签的文件(例如 `//foo/bar:file.afdo`,您可能需要向相应的软件包添加 `exports_files` 指令)和指向 `fdo_profile` 目标的标签。此标志将被“fdo_profile”规则取代。
标签:affects_outputs
--fdo_prefetch_hints=<a build target label>
默认值:请参阅说明-
使用缓存预提取提示。
标签:affects_outputs
--fdo_profile=<a build target label>
默认值:请参阅说明-
fdo_profile 表示要用于优化的配置文件。
标签:affects_outputs
- 累计使用了
--features=<a string>
次 -
默认情况下,将为目标配置中构建的目标启用或停用指定功能。指定 -<feature>即可停用此功能排除性功能始终会覆盖肯定功能。另请参阅 --host_features
标签:changes_inputs
、affects_outputs
--[no]force_pic
默认值:“false”-
启用后,所有 C++ 编译都会生成位置无关代码(“-fPIC”),链接会优先生成 PIC 预构建库而不是非 PIC 库,链接会生成与位置无关的可执行文件(“-pie”)。
标签:loading_and_analysis
、affects_outputs
- 累计使用了
--host_action_env=<a 'name=value' assignment with an optional value part>
次 -
指定一组环境变量,供具有执行配置的操作使用。变量可以按名称指定,在这种情况下,值将从调用环境中获取;也可以按 name=value 对指定,该值独立于调用环境设置。此选项可以多次使用;对于同一变量给出的选项,最近的胜出者、不同变量的选项累计。
标签:action_command_lines
--host_compilation_mode=<fastbuild, dbg or opt>
默认值:“opt”-
指定构建期间使用的工具将采用的模式。值:“Fastbuild”“dbg”“opt”。
标签:affects_outputs
、action_command_lines
- 累计使用了
--host_conlyopt=<a string>
次 -
在 exec 配置中编译 C(而非 C++)源文件时要传递到 C 编译器的附加选项。
标签:action_command_lines
、affects_outputs
- 累计使用了
--host_copt=<a string>
次 -
对于在 exec 配置中构建的工具,要传递给 C 编译器的其他选项。
标签:action_command_lines
、affects_outputs
--host_cpu=<a string>
默认值:“”-
主机 CPU。
标签:changes_inputs
、affects_outputs
- 累计使用了
--host_cxxopt=<a string>
次 -
对于在 exec 配置中构建的工具,要传递给 C++ 编译器的其他选项。
标签:action_command_lines
、affects_outputs
- 累计使用了
--host_features=<a string>
次 -
对于在 exec 配置中构建的目标,将默认启用或停用给定功能。指定 -<feature>即可停用此功能排除性功能始终会覆盖肯定功能。
标签:changes_inputs
、affects_outputs
--host_force_python=<PY2 or PY3>
默认值:请参阅说明-
替换 exec 配置的 Python 版本。可以是“PY2”或“PY3”
标签:loading_and_analysis
、affects_outputs
- 累计使用了
--host_linkopt=<a string>
次 -
链接 exec 配置中的工具时要传递给链接器的附加选项。
标签:action_command_lines
、affects_outputs
--host_macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
主机目标的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
标签:loses_incremental_state
- 累计使用了
--host_per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>
次 -
在 exec 配置中编译某些文件时,有选择地传递给 C/C++ 编译器的附加选项。此选项可以多次传递。语法: regex_filter@option_1,option_2,...,option_n。其中 regex_filter 代表包含和排除正则表达式模式的列表(另请参阅 --instrument_filter)。option_1 到 option_n 代表任意命令行选项。如果选项包含英文逗号,则必须使用反斜杠将其括住。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--host_per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 可将 -O0 命令行选项添加到 //foo/ 中除 bar.cc 之外的所有 cc 文件的 gcc 命令行中。
标签:action_command_lines
、affects_outputs
--[no]incompatible_auto_exec_groups
默认值:“false”-
启用后,系统会自动为规则使用的每个工具链创建执行组。为此,规则需要在其操作中指定“toolchain”参数。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/17134。
标签:affects_outputs
、incompatible_change
--[no]incompatible_merge_genfiles_directory
默认值:“true”-
如果为 true,则 genfiles 目录将放入 bin 目录。
标签:affects_outputs
、incompatible_change
--[no]instrument_test_targets
默认值:“false”-
启用覆盖率后,指定是否考虑检测测试规则。设置后,系统将对 --instrument_filter 包含的测试规则进行插桩测试。否则,始终会从覆盖率插桩中排除测试规则。
标签:affects_outputs
--instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>
默认值:“-/javatests[/:],-/test/java[/:]”-
启用覆盖率后,系统只会对名称包含在指定的基于正则表达式的过滤条件中的规则进行插桩。带有“-”前缀的规则排除。请注意,除非启用 --instrument_test_targets,否则只会对非测试规则进行插桩。
标签:affects_outputs
--ios_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
目标模拟器和设备的最低兼容 iOS 版本。如果未指定,则使用“ios_sdk_version”。
标签:loses_incremental_state
- 累计使用了
--ios_multi_cpus=<comma-separated list of options>
次 -
构建 ios_application 时要使用的架构列表(以英文逗号分隔)。最终会生成包含所有指定架构的通用二进制文件。
标签:loses_incremental_state
、loading_and_analysis
--[no]legacy_whole_archive
默认值:“true”-
已弃用,由 --incompatible_remove_legacy_whole_archive 取代(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7362)。开启此设置后,对具有 linkshared=True 且 linkstatic=True 或“-static”的 cc_binary 规则使用 --whole-archive在 linkopts 中设置这仅用于实现向后兼容性。更好的替代方案是,根据需要使用 alwayslink=1。
标签:action_command_lines
、affects_outputs
、deprecated
- 累计使用了
--linkopt=<a string>
次 -
链接时传递给 gcc 的其他选项。
标签:action_command_lines
、affects_outputs
- 累计使用了
--ltobackendopt=<a string>
次 -
传递给 LTO 后端步骤的附加选项(在 --features=thin_lto 下)。
标签:action_command_lines
、affects_outputs
- 累计使用了
--ltoindexopt=<a string>
次 -
传递给 LTO 索引步骤的附加选项(在 --features=thin_lto 下)。
标签:action_command_lines
、affects_outputs
- 累计使用了
--macos_cpus=<comma-separated list of options>
次 -
用于构建 Apple macOS 二进制文件的架构列表(以英文逗号分隔)。
标签:loses_incremental_state
、loading_and_analysis
--macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
目标的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
标签:loses_incremental_state
--memprof_profile=<a build target label>
默认值:请参阅说明-
使用 memprof 配置文件。
标签:affects_outputs
--[no]objc_debug_with_GLIBCXX
默认值:“false”-
如果已设置,并且编译模式设置为“dbg”,则定义 GLIBCXX_DEBUG、GLIBCXX_DEBUG_PEDANTIC 和 GLIBCPP_CONCEPT_CHECKS。
标签:action_command_lines
--[no]objc_enable_binary_stripping
默认值:“false”-
是否对链接的二进制文件执行符号和死代码剥离。如果同时指定了此标志和 --compile_mode=opt,将执行二进制文件剥离。
标签:action_command_lines
- 累计使用了
--objccopt=<a string>
次 -
编译 Objective-C/C++ 源文件时要传递给 gcc 的其他选项。
标签:action_command_lines
- 累计使用了
--per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>
次 -
其他选项,可在编译特定文件时有选择地传递给 gcc。此选项可以多次传递。语法: regex_filter@option_1,option_2,...,option_n。其中 regex_filter 代表包含和排除正则表达式模式的列表(另请参阅 --instrument_filter)。option_1 到 option_n 代表任意命令行选项。如果选项包含英文逗号,则必须使用反斜杠将其括住。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 将 -O0 命令行选项添加到 //foo/ 中除 bar.cc 之外的所有 cc 文件的 gcc 命令行中。
标签:action_command_lines
、affects_outputs
- 累计使用了
--per_file_ltobackendopt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>
次 -
在编译某些后端对象时,有选择地传递到 LTO 后端(在 --features=thin_lto 下)的其他选项。此选项可以多次传递。语法: regex_filter@option_1,option_2,...,option_n。其中,regex_filter 代表包含和排除正则表达式模式的列表。option_1 到 option_n 代表任意命令行选项。如果选项包含英文逗号,则必须使用反斜杠将其括住。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--per_file_ltobackendopt=//foo/.*\.o,-//foo/bar\.o@-O0 将 -O0 命令行选项添加到 //foo/ 中除 bar.o 之外的所有 o 文件的 LTO 后端命令行。
标签:action_command_lines
、affects_outputs
--platform_suffix=<a string>
默认值:请参阅说明-
指定要添加到配置目录的后缀。
标签:loses_incremental_state
、affects_outputs
、loading_and_analysis
--propeller_optimize=<a build target label>
默认值:请参阅说明-
使用 Propeller 配置文件信息来优化构建目标。一个推进器配置文件必须至少包含两个文件(一个 cc 配置文件和一个 ld 配置文件)中的一个。此标志接受 build 标签,该标签必须引用推进器配置文件输入文件。例如,在 a/b/BUILD:propeller_optimize( name = "propeller_profile", cc_profile = "propeller_cc_profile.txt", ld_profile = "propeller_ld_profile.txt",) 中,定义标签的 BUILD 文件必须添加到相应的软件包中,才能使这些文件对 Bazel 可见。选项必须按以下格式使用:--propeller_optimize=//a/b:propeller_profile
标签:action_command_lines
、affects_outputs
--propeller_optimize_absolute_cc_profile=<a string>
默认值:请参阅说明-
针对 Propeller 优化 build 的 cc_profile 文件的绝对路径名。
标签:affects_outputs
--propeller_optimize_absolute_ld_profile=<a string>
默认值:请参阅说明-
针对 Propeller 优化 build 的 ld_profile 文件的绝对路径名。
标签:affects_outputs
--run_under=<a prefix in front of command>
默认值:请参阅说明-
要在“test”的可执行文件之前插入的前缀和“run”命令。如果值为“foo -bar”,执行命令行为“test_binary -baz”,则最终命令行为“foo -bar test_binary -baz”。它也可以是可执行目标的标签。例如:'valgrind'、'strace'、'strace -c'、'valgrind --quiet --num-callers=20'、'//package:target'、'//package:target --options'。
标签:action_command_lines
-
如果为 true,包含相同功能的原生库将在不同目标之间共享
标签:loading_and_analysis
、affects_outputs
--[no]stamp
默认值:“false”-
使用日期、用户名、主机名、工作区信息等标记二进制文件。
标签:affects_outputs
--strip=<always, sometimes or never>
默认值:“有时”-
指定是否删除二进制文件和共享库(使用“-Wl,--strip-debug”)。“sometimes”的默认值表示在 iff --compile_mode=fastbuild 时进行剥离。
标签:affects_outputs
- 累计使用了
--stripopt=<a string>
次 -
生成“<name>.stripped”时传递给标签的其他选项二进制文件
标签:action_command_lines
、affects_outputs
- 累计使用了
--tvos_cpus=<comma-separated list of options>
次 -
用于构建 Apple tvOS 二进制文件的架构列表(以英文逗号分隔)。
标签:loses_incremental_state
、loading_and_analysis
--tvos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
目标模拟器和设备的最低兼容 tvOS 版本。如果未指定,则使用“tvos_sdk_version”。
标签:loses_incremental_state
- 累计使用了
--visionos_cpus=<comma-separated list of options>
次 -
用于构建 Apple visionOS 二进制文件的架构列表(以英文逗号分隔)。
标签:loses_incremental_state
、loading_and_analysis
- 累计使用了
--watchos_cpus=<comma-separated list of options>
次 -
一系列以英文逗号分隔的架构构建了 Apple WatchOS 二进制文件。
标签:loses_incremental_state
、loading_and_analysis
--watchos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
目标模拟器和设备的最低兼容 watchOS 版本。如果未指定,则使用“watchos_sdk_version”。
标签:loses_incremental_state
--xbinary_fdo=<a build target label>
默认值:请参阅说明-
使用 XbinaryFDO 配置文件信息优化编译。指定默认跨二进制配置文件的名称。当该选项与 --fdo_instrument/--fdo_optimize/--fdo_profile 一起使用时,这些选项将始终适用,就像从未指定 xbinary_fdo 一样。
标签:affects_outputs
- 影响 Bazel 强制执行有效构建输入的严格程度的选项(规则定义、标志组合等):
--[no]check_licenses
默认值:“false”-
检查并确保依赖软件包施加的许可限制与正在构建的目标的分发模式不冲突。默认情况下,系统不会检查许可。
标签:build_file_semantics
--[no]check_visibility
默认值:“true”-
如果此政策已停用,目标依赖项中的可见性错误会降级为警告。
标签:build_file_semantics
--[no]desugar_for_android
默认值:“true”-
是否在 dex 处理之前对 Java 8 字节码进行脱糖。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]desugar_java8_libs
默认值:“false”-
是否在旧版设备应用中包含支持的 Java 8 库。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]enforce_constraints
默认值:“true”-
检查每个目标兼容的环境,并报告错误(如有任何目标的依赖项不支持相同环境)
标签:build_file_semantics
--[no]experimental_check_desugar_deps
默认值:“true”-
是否在 Android 二进制文件级别仔细检查正确的脱糖。
标签:eagerness_to_exit
、loading_and_analysis
、experimental
--experimental_import_deps_checking=<a string>
默认值:请参阅说明-
空操作,仅为实现向后兼容而保留
标签:loading_and_analysis
--experimental_one_version_enforcement=<off, warning or error>
默认值:“关闭”-
启用后,强制规定 java_binary 规则在类路径上不能包含同一类文件的多个版本。此强制执行可能会破坏构建,或者导致警告。
标签:loading_and_analysis
--experimental_strict_java_deps=<off, warn, error, strict or default>
默认值:“默认”-
如果为 true,则检查 Java 目标是否明确将所有直接使用的目标声明为依赖项。
标签:build_file_semantics
、eagerness_to_exit
--[no]incompatible_check_testonly_for_output_files
默认值:“false”-
启用后,通过查询所生成的规则的 testonly 检查,检查 testonly 是否为输出文件的前提条件目标。这与可见性检查一致。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_check_visibility_for_toolchains
默认值:“false”-
如果启用,可见性检查也会应用于工具链实现。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_disable_native_android_rules
默认值:“false”-
启用后,系统将禁止直接使用原生 Android 规则。请使用 https://github.com/bazelbuild/rules_android 中的 Starlark Android 规则
标签:eagerness_to_exit
、incompatible_change
--[no]incompatible_disable_native_apple_binary_rule
默认值:“false”-
无运维。为了实现向后兼容性而保留在此处。
标签:eagerness_to_exit
、incompatible_change
--[no]incompatible_python_disable_py2
默认值:“true”-
如果为 true,使用 Python 2 设置会导致错误。这包括 python_version=PY2、srcs_version=PY2 和 srcs_version=PY2ONLY。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/15684。
标签:loading_and_analysis
、incompatible_change
--[no]one_version_enforcement_on_java_tests
默认值:“true”-
启用后,如果 experiment_one_version_enforcement 设置为非 NONE 值,则对 java_test 目标强制执行一个版本。您可以停用此标志,以提升增量测试性能,但代价是可能会遗漏潜在的单个版本违规行为。
标签:loading_and_analysis
--python_native_rules_allowlist=<a build target label>
默认值:请参阅说明-
强制执行 --incompatible_python_disallow_native_rules 时使用的许可名单(package_group 目标)。
标签:loading_and_analysis
--[no]strict_filesets
默认值:“false”-
如果启用此选项,系统会将跨越软件包边界的文件集报告为错误。
标签:build_file_semantics
、eagerness_to_exit
--strict_proto_deps=<off, warn, error, strict or default>
默认值:“error”-
除非 OFF,否则检查 proto_library 目标是否将所有直接使用的目标明确声明为依赖项。
标签:build_file_semantics
、eagerness_to_exit
、incompatible_change
--strict_public_imports=<off, warn, error, strict or default>
默认值:“关闭”-
除非 OFF,否则检查 proto_library 目标是否明确声明了“导入公共”中使用的所有目标导出的数据。
标签:build_file_semantics
、eagerness_to_exit
、incompatible_change
--[no]strict_system_includes
默认值:“false”-
如果为 true,则还需要声明通过系统包含路径 (-isystem) 找到的标头。
标签:loading_and_analysis
、eagerness_to_exit
- 累计使用了
--target_environment=<a build target label>
次 -
声明此构建的目标环境。必须是对“环境”的标签引用规则。如果指定,则所有顶级目标都必须与此环境兼容。
标签:changes_inputs
- 影响 build 签名输出的选项:
--apk_signing_method=<v1, v2, v1_v2 or v4>
默认值:“v1_v2”-
用于为 APK 签名的实现
标签:action_command_lines
、affects_outputs
、loading_and_analysis
--[no]device_debug_entitlements
默认值:“true”-
如果已设置,并且编译模式不是“opt”,则 objc 应用在签名时将包含调试权限。
标签:changes_inputs
--ios_signing_cert_name=<a string>
默认值:请参阅说明-
用于 iOS 签名的证书名称。如果未设置,系统将回退到使用配置文件。根据代码签名的手册页面 (SIGNING IDENTITIES),可以是证书的密钥链标识偏好设置或证书常用名的(子字符串)。
标签:action_command_lines
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_disallow_legacy_py_provider
默认值:“true”-
免运维,即将被移除。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_disallow_sdk_frameworks_attributes
默认值:“false”-
如果为 true,则禁止在 objc_library 和 objc_import 中使用 sdk_frameworks 和 weak_sdk_frameworks 属性。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_objc_alwayslink_by_default
默认值:“false”-
如果为 true,则将 objc_library 和 objc_import 中的始终链接属性的默认值设为 true。
标签:build_file_semantics
、incompatible_change
--[no]incompatible_python_disallow_native_rules
默认值:“false”-
如果为 true,使用内置的 py_* 规则时会出错;应改用 rule_python 规则。如需了解详情和迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/17773。
标签:loading_and_analysis
、incompatible_change
- 用于控制测试环境或测试运行程序行为的选项:
--[no]allow_analysis_failures
默认值:“false”-
如果为 true,规则目标的分析失败将导致目标传播包含错误说明的 AnalysisFailureInfo 实例,而不是导致构建失败。
标签:loading_and_analysis
、experimental
--analysis_testing_deps_limit=<an integer>
默认值:“2000”-
通过具有 for_analysis_testing 配置转换的规则属性设置传递依赖项的数量上限。超出此限制将导致规则错误。
标签:loading_and_analysis
--[no]break_build_on_parallel_dex2oat_failure
默认值:“false”-
如果 dex2oat 操作失败,则会导致构建中断,而不是在测试运行时执行 dex2oat。
标签:loading_and_analysis
、experimental
- 累计使用了
--default_test_resources=<a resource name followed by equal and 1 float or 4 float, e.g memory=10,30,60,100>
次 - 替换测试的默认资源量。预期格式为 <resource>=<value>。如果将 <value> 指定为单个正数它会覆盖所有测试尺寸的默认资源如果指定了 4 个以英文逗号分隔的数字,它们将分别覆盖小测试、中测试、大测试大小的资源量。值也可以是 HOST_RAM/HOST_CPU,可以选择后跟 [-|*]<float>(例如 memory=HOST_RAM*.1,HOST_RAM*.2,HOST_RAM*.3,HOST_RAM*.4)。此标志指定的默认测试资源会被标记中指定的显式资源替换。
--[no]experimental_android_use_parallel_dex2oat
默认值:“false”-
同时使用 dex2oat 来可能加快 android_test。
标签:loading_and_analysis
、host_machine_resource_optimizations
、experimental
--[no]ios_memleaks
默认值:“false”-
在 ios_test 目标中启用内存泄漏检查功能。
标签:action_command_lines
--ios_simulator_device=<a string>
默认值:请参阅说明-
在模拟器中运行 iOS 应用时要模拟的设备,例如“iPhone 6”。您可以通过运行“xcrun simctl list devicetypes”来获取设备列表运行模拟器的机器上。
标签:test_runner
--ios_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
运行或测试时要在模拟器上运行的 iOS 版本。对于 ios_test 规则,如果在规则中指定了目标设备,系统会忽略此字段。
标签:test_runner
- 累计使用了
--runs_per_test=<a positive integer or test_regex@runs. This flag may be passed more than once>
次 - 指定每个测试的运行次数。如果其中任何一个尝试由于任何原因失败,则整个测试都被视为失败。通常,指定的值只是一个整数。示例:--runs_per_test=3 将运行所有测试 3 次。备用语法:regex_filter@runs_per_test。其中,runs_per_test 代表整数值,regex_filter 代表包含和排除正则表达式模式的列表(另请参阅 --instrument_filter)。示例:--runs_per_test=//foo/.*,-//foo/bar/.*@3 运行 //foo/ 中的所有测试(foo/bar 下的测试除外)运行三次。此选项可以多次传递。最近传递的匹配的参数优先。如果没有任何匹配项,则测试仅运行一次。
- 累计使用了
--test_env=<a 'name=value' assignment with an optional value part>
次 -
指定要注入测试运行程序环境的其他环境变量。变量可以按名称指定,在这种情况下,其值将从 Bazel 客户端环境中读取,也可以通过“名称=值”对读取。此选项可以多次用于指定多个变量。仅供“bazel 测试”使用命令。
标签:test_runner
--test_timeout=<a single integer or comma-separated list of 4 integers>
默认值:“-1”- 覆盖测试超时的默认测试超时值(以秒为单位)。如果指定单个正整数值,它将覆盖所有类别。如果指定了 4 个以英文逗号分隔的整数,它们将替换短时、中等长度、长时和永恒(按此顺序)的超时。在这两种形式中,值为 -1 都会指示 blaze 针对该类别使用默认超时。
--[no]zip_undeclared_test_outputs
默认值:“true”-
如果值为 true,则未声明的测试输出将归档为一个 ZIP 文件。
标签:test_runner
- 触发构建时间优化的选项:
--[no]experimental_filter_library_jar_with_program_jar
默认值:“false”-
过滤 ProGuard ProgramJar,移除 LibraryJar 中也存在的任何类。
标签:action_command_lines
--[no]experimental_inmemory_dotd_files
默认值:“true”-
启用后,C++ .d 文件将直接从远程构建节点在内存中传递,而不是写入磁盘。
标签:loading_and_analysis
、execution
、affects_outputs
、experimental
--[no]experimental_inmemory_jdeps_files
默认值:“true”-
启用后,通过 Java 编译生成的依赖项 (.jdeps) 文件将直接从远程构建节点在内存中传递,而不是写入磁盘。
标签:loading_and_analysis
、execution
、affects_outputs
、experimental
--[no]experimental_retain_test_configuration_across_testonly
默认值:“false”-
启用后,--trim_test_configuration 不会修剪标记为 testonly=1 的规则的测试配置。这是为了在非测试规则依赖于 cc_test 规则时减少操作冲突问题。如果 --trim_test_configuration 为 false,则不会产生任何影响。
标签:loading_and_analysis
、loses_incremental_state
--[no]experimental_starlark_cc_import
默认值:“false”-
启用后,即可使用 Starlark 版本的 cc_import。
标签:loading_and_analysis
、experimental
--[no]experimental_unsupported_and_brittle_include_scanning
默认值:“false”-
是否通过解析输入文件中的 #include 行将输入范围缩小到 C/C++ 编译。这可以通过减小编译输入树的大小来提升性能和增量。不过,这也可能会导致构建中断,因为 include 扫描程序未完全实现 C 预处理器语义。具体来说,它不理解动态 #include 指令,并且会忽略预处理器条件逻辑。使用时需自行承担风险。用户提交的与此标志相关的所有问题都将被关闭。
标签:loading_and_analysis
、execution
、changes_inputs
--[no]incremental_dexing
默认值:“true”-
为每个 Jar 文件单独执行 dex 处理的大部分工作。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]objc_use_dotd_pruning
默认值:“true”-
如果已设置,Clang 发出的 .d 文件将用于剪除传递到 objc 编译的输入集。
标签:changes_inputs
、loading_and_analysis
--[no]process_headers_in_dependencies
默认值:“false”-
构建目标 //a:a 时,处理 //a:a 所依赖的所有目标中的标头(如果为工具链启用了标头处理)。
标签:execution
--[no]trim_test_configuration
默认值:“true”-
启用后,与测试相关的选项将会被清除,位于 build 顶层下方。当此标志处于启用状态时,无法将测试构建为非测试规则的依赖项,但对测试相关选项的更改不会导致系统重新分析非测试规则。
标签:loading_and_analysis
、loses_incremental_state
- 影响日志记录的详细程度、格式或位置的选项:
--toolchain_resolution_debug=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>
默认值:“-.*”-
在工具链解析期间输出调试信息。该标志采用正则表达式,而正则表达式会针对工具链类型和特定目标进行检查,以判断要调试哪个目标。可以使用逗号分隔多个正则表达式,然后分别检查每个正则表达式。注意:此标志的输出非常复杂,可能只对熟练掌握工具链解决方案的专家有用。
标签:terminal_output
- 用于为 Bazel 命令指定或更改常规输入(不属于其他类别)的选项:
- 累计使用了
--flag_alias=<a 'name=value' flag alias>
次 -
设置 Starlark 标志的简写名称。它需要一个格式为“<键>=<值>”的键值对作为参数。
标签:changes_inputs
--[no]incompatible_default_to_explicit_init_py
默认值:“false”-
此标志会更改默认行为,以便系统不再在 Python 目标的 runfile 中自动创建 __init__.py 文件。确切地说,是在 py_binary 或 py_test 目标将 legacy_create_init 设置为“auto”时(默认值),当且仅当设置了此标志时,才会被视为 false。请参阅 https://github.com/bazelbuild/bazel/issues/10076。
标签:affects_outputs
、incompatible_change
--[no]incompatible_py2_outputs_are_suffixed
默认值:“true”-
如果为 true,则在 Python 2 配置中构建的目标将出现在包含后缀“-py2”的输出根下,而为 Python 3 构建的目标将显示在没有 Python 相关后缀的根中。这意味着 `bazel-bin` 便捷符号链接将指向 Python 3 目标,而不是 Python 2。如果您启用此选项,也建议启用 `--incompatible_py3_is_default`。
标签:affects_outputs
、incompatible_change
--[no]incompatible_py3_is_default
默认值:“true”-
如果为 true,则未设置其 `python_version`(或 `default_python_version`)属性的 `py_binary` 和 `py_test` 目标将默认为 PY3,而不是 PY2。如果您设置了此标志,也建议设置 `--incompatible_py2_outputs_are_suffixed`。
标签:loading_and_analysis
、affects_outputs
、incompatible_change
--[no]incompatible_use_python_toolchains
默认值:“true”-
如果设置为 true,可执行原生 Python 规则将使用 Python 工具链指定的 Python 运行时,而不是由旧版标志(如 --python_top)指定的运行时。
标签:loading_and_analysis
、incompatible_change
--python_version=<PY2 or PY3>
默认值:请参阅说明-
Python 主要版本模式,即“PY2”或“PY3”。请注意,这会被“py_binary”和“py_test”目标替换(即使它们未明确指定版本),因此通常没有太多理由提供此标志。
标签:loading_and_analysis
、affects_outputs
- 未以其他方式分类的其他选项:
--[no]cache_test_results
[-t
] 默认值:“自动”- 如果设置为“auto”,则当且仅当满足以下条件时,Bazel 才会重新运行测试:(1) Bazel 检测到了测试或其依赖项的变化,(2) 测试已被标记为外部,(3) 使用 --runs_per_test 请求了多次测试运行,或(4) 之前测试失败。如果设置为“yes”,则 Bazel 会缓存所有测试结果,但标记为外部的测试除外。如果设置为“no”,则 Bazel 不会缓存任何测试结果。
--[no]experimental_cancel_concurrent_tests
默认值:“false”-
如果为 true,Blaze 将在第一次成功运行时取消同时运行的测试。这只能与 --runs_per_test_detects_flakes 结合使用。
标签:affects_outputs
、loading_and_analysis
--[no]experimental_fetch_all_coverage_outputs
默认值:“false”-
如果为 true,则 Bazel 会在覆盖率运行期间为每次测试提取整个覆盖率数据目录。
标签:affects_outputs
、loading_and_analysis
--[no]experimental_generate_llvm_lcov
默认值:“false”-
如果值为 true,则针对 Clang 的覆盖率将生成 LCOV 报告。
标签:affects_outputs
、loading_and_analysis
--[no]experimental_j2objc_header_map
默认值:“true”- 是否在 J2ObjC 转译的同时生成 J2ObjC 标头映射。
--[no]experimental_j2objc_shorter_header_path
默认值:“false”-
是否使用更短的标头路径(使用“_ios”而不是“_j2objc”)生成。
标签:affects_outputs
--experimental_java_classpath=<off, javabuilder or bazel>
默认值:“javabuilder”- 为 Java 编译启用缩减类路径。
--[no]experimental_limit_android_lint_to_android_constrained_java
默认值:“false”-
空操作,仅为实现向后兼容而保留
标签:affects_outputs
--[no]experimental_run_android_lint_on_java_rules
默认值:“false”-
是否验证 java_* 来源。
标签:affects_outputs
--[no]explicit_java_test_deps
默认值:“false”- 在 java_test 中明确指定对 JUnit 或 Hamcrest 的依赖项,而不是从 TestRunner 的依赖项意外获取。目前仅适用于 bazel。
--host_java_launcher=<a build target label>
默认值:请参阅说明- 在构建期间执行的工具使用的 Java 启动器。
- 累计使用了
--host_javacopt=<a string>
次 - 在构建在构建期间执行的工具时要传递给 javac 的其他选项。
- 累计使用了
--host_jvmopt=<a string>
次 - 构建在构建期间执行的工具时要传递给 Java 虚拟机的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--[no]incompatible_check_sharding_support
默认值:“true”-
如果为 true,则如果测试运行程序未通过触摸 TEST_SHARD_STATUS_FILE 中的路径下的文件来表明支持分片,则 Bazel 会使分片测试失败。如果为 false,不支持分片的测试运行程序将导致所有测试在每个分片中运行。
标签:incompatible_change
--[no]incompatible_exclusive_test_sandboxed
默认值:“true”-
如果为 true,系统将采用沙盒化策略运行专属测试。添加“本地”用于强制在本地运行独占测试的标记
标签:incompatible_change
--[no]incompatible_strict_action_env
默认值:“false”-
如果为 true,则 Bazel 会使用具有静态 PATH 值的环境,并且不会继承 LD_LIBRARY_PATH。如果您希望从客户端继承特定的环境变量,请使用 --action_env=ENV_VARIABLE,但请注意,如果使用了共享缓存,这样做可能会阻止跨用户缓存。
标签:loading_and_analysis
、incompatible_change
- 累计使用了
--j2objc_translation_flags=<comma-separated list of options>
次 - 要传递给 J2ObjC 工具的其他选项。
--java_debug
-
使 Java 测试的 Java 虚拟机在开始测试之前等待来自兼容 JDWP 的调试程序(例如 jdb)的连接。隐含 -test_output=streamed。
扩展为:
--test_arg=--wrapper_script_flag=--debug
--test_output=streamed
--test_strategy=exclusive
--test_timeout=9999
--nocache_test_results
--[no]java_deps
默认值:“true”- 按 Java 目标生成依赖项信息(目前为编译时类路径)。
--[no]java_header_compilation
默认值:“true”- 直接从源代码编译 ijar。
--java_language_version=<a string>
默认值:“”- Java 语言版本
--java_launcher=<a build target label>
默认值:请参阅说明- 构建 Java 二进制文件时使用的 Java 启动器。如果此标志设置为空字符串,则使用 JDK 启动器。“启动器”属性将覆盖此标志。
--java_runtime_version=<a string>
默认值:“local_jdk”- Java 运行时版本
- 累计使用了
--javacopt=<a string>
次 - 传递给 javac 的其他选项。
- 累计使用了
--jvmopt=<a string>
次 - 要传递给 Java 虚拟机的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--legacy_main_dex_list_generator=<a build target label>
默认值:请参阅说明- 指定一个二进制文件,用于生成编译旧版 MultiDex 时必须在主 dex 中的类的列表。
--optimizing_dexer=<a build target label>
默认值:请参阅说明- 指定用于在不分片的情况下执行 dex 处理的二进制文件。
- 累计使用了
--plugin=<a build target label>
次 - 要在构建中使用的插件。目前支持 java_plugin。
--proguard_top=<a build target label>
默认值:请参阅说明- 指定在构建 Java 二进制文件时用于移除代码的 ProGuard 版本。
--proto_compiler=<a build target label>
默认值:“@bazel_tools//tools/proto:protoc”-
proto 编译器的标签。
标签:affects_outputs
、loading_and_analysis
--[no]proto_profile
默认值:“true”-
是否将 profile_path 传递给 proto 编译器。
标签:affects_outputs
、loading_and_analysis
--proto_profile_path=<a build target label>
默认值:请参阅说明-
要作为 profile_path 传递给 proto 编译器的配置文件。如果未设置,但 --proto_profile 为 true(默认值),则通过 --fdo_optimize 推断路径。
标签:affects_outputs
、loading_and_analysis
--proto_toolchain_for_cc=<a build target label>
默认值:“@bazel_tools//tools/proto:cc_toolchain"-
proto_lang_toolchain() 的标签,用于描述如何编译 C++ proto
标签:affects_outputs
、loading_and_analysis
--proto_toolchain_for_j2objc=<a build target label>
默认值:“@bazel_tools//tools/j2objc:j2objc_proto_toolchain”-
proto_lang_toolchain() 的标签,用于描述如何编译 j2objc proto
标签:affects_outputs
、loading_and_analysis
--proto_toolchain_for_java=<a build target label>
默认值:“@bazel_tools//tools/proto:java_toolchain"-
proto_lang_toolchain() 的标签,用于描述如何编译 Java proto
标签:affects_outputs
、loading_and_analysis
--proto_toolchain_for_javalite=<a build target label>
默认值:“@bazel_tools//tools/proto:javalite_toolchain"-
proto_lang_toolchain() 的标签,用于描述如何编译 JavaLite proto
标签:affects_outputs
、loading_and_analysis
- 累计使用了
--protocopt=<a string>
次 -
要传递给 protobuf 编译器的其他选项。
标签:affects_outputs
--[no]runs_per_test_detects_flakes
默认值:“false”- 如果为 true,则至少有一次运行/尝试通过且至少一次运行/尝试失败的任何分片都将获得 FLAKY 状态。
--shell_executable=<a path>
默认值:请参阅说明-
Bazel 要使用的 shell 可执行文件的绝对路径。如果未设置,但 BAZEL_SH 环境变量是在第一次 Bazel 调用(启动 Bazel 服务器)时设置的,则 Bazel 会使用该环境变量。如果二者都未设置,Bazel 会使用硬编码的默认路径,具体取决于运行它的操作系统(Windows:c:/msys64/usr/bin/bash.exe,FreeBSD:/usr/local/bin/bash,所有其他路径为:/bin/bash)。请注意,使用与 bash 不兼容的 shell 可能会导致生成的二进制文件出现构建失败或运行时失败。
标签:loading_and_analysis
- 累计使用了
--test_arg=<a string>
次 - 指定应传递给测试可执行文件的其他选项和参数。可以多次用于指定多个实参。如果执行多个测试,每个测试都将收到相同的参数。仅供“bazel 测试”使用命令。
--test_filter=<a string>
默认值:请参阅说明- 指定要转发到测试框架的过滤器。用于限制运行的测试。请注意,这不会影响构建哪些目标。
--test_result_expiration=<an integer>
默认值:“-1”- 此选项已被弃用,因此没有任何作用。
--[no]test_runner_fail_fast
默认值:“false”- 将快速失败选项转发到测试运行程序。测试运行程序应在第一次失败时停止执行。
--test_sharding_strategy=<explicit, disabled or forced=k where k is the number of shards to enforce>
默认值:“露骨内容”- 指定测试分片策略:“显式”“shard_count”值存在 BUILD 属性。“已停用”绝不使用测试分片“forced=k”强制执行“k”用于测试的分片(无论“shard_count”值如何)BUILD 属性。
--tool_java_language_version=<a string>
默认值:“”- 用于执行构建期间所需工具的 Java 语言版本
--tool_java_runtime_version=<a string>
默认值:“remotejdk_11”- 用于在构建期间执行工具的 Java 运行时版本
--[no]use_ijars
默认值:“true”- 启用后,此选项会使 Java 编译使用接口 JAR。这样可以提高增量编译的速度,但错误消息可能会有所不同。
帮助选项
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names
默认值:“true”-
无运维。
标签:loading_and_analysis
- 影响日志记录的详细程度、格式或位置的选项:
--help_verbosity=<long, medium or short>
默认值:“medium”-
选择 help 命令的详细程度。
标签:terminal_output
--long
[-l
]-
显示每个选项的完整说明,而不仅仅是其名称。
扩展为:
--help_verbosity=long
标签:terminal_output
--short
-
仅显示选项的名称,不显示选项的类型或含义。
扩展为:
--help_verbosity=short
标签:terminal_output
信息选项
从 build 继承所有选项。
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names
默认值:“true”-
无运维。
标签:loading_and_analysis
- 影响日志记录的详细程度、格式或位置的选项:
--[no]show_make_env
默认值:“false”-
添加“品牌”环境。
标签:affects_outputs
、terminal_output
许可选项
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names
默认值:“true”-
无运维。
标签:loading_and_analysis
移动设备安装选项
从 build 继承所有选项。
- 用于控制构建执行的选项:
--mode=<classic, classic_internal_test_do_not_use or skylark>
默认值:“skylark”-
已废弃无影响标志。仍支持 skylark 模式。
标签:loading_and_analysis
、execution
、incompatible_change
- 用于配置用于执行操作的工具链的选项:
--adb=<a string>
默认值:“”-
用于“mobile-install”的 adb 二进制文件命令。如果未指定,则使用 Android SDK 中通过 --android_sdk 命令行选项指定的 SDK(如果未指定 --android_sdk,则使用默认 SDK)。
标签:changes_inputs
- 用于控制命令输出的选项:
--[no]incremental
默认值:“false”-
是否执行增量安装。如果为 true,请尝试通过读取要安装代码的设备的状态并使用该信息来避免不必要的额外工作。如果为 false(默认值),则始终执行完整安装。
标签:loading_and_analysis
--[no]split_apks
默认值:“false”-
是否使用拆分 APK 在设备上安装和更新应用。仅适用于搭载 Marshmallow 或更高版本的设备
标签:loading_and_analysis
、affects_outputs
- 可让用户配置预期输出并影响输出值(而不是其存在性)的选项:
- 累计使用了
--adb_arg=<a string>
次 -
要传递给 adb 的额外参数。通常用于指定要安装到的设备。
标签:action_command_lines
--debug_app
-
是否在启动应用前等待调试程序。
扩展为:
--start=DEBUG
标签:execution
--device=<a string>
默认值:“”-
adb 设备序列号。如果未指定,系统会使用第一个设备。
标签:action_command_lines
--start=<no, cold, warm or debug>
默认值:“NO”-
安装应用后应如何启动应用。设为 WARM 可在增量安装时保留和恢复应用状态。
标签:execution
--start_app
-
是否在安装应用后启动应用。
扩展为:
--start=COLD
标签:execution
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names
默认值:“true”-
无运维。
标签:loading_and_analysis
- 影响日志记录的详细程度、格式或位置的选项:
--incremental_install_verbosity=<a string>
默认值:“”-
增量安装的详细程度。对于调试日志记录,设置为 1。
标签:bazel_monitoring
加强包选项
- 用于控制构建执行的选项:
--[no]keep_going
[-k
] 默认值:“false”-
在出现错误后尽可能继续。虽然无法分析失败的目标以及依赖于它的目标,但可以分析这些目标的其他前提条件。
标签:eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">
默认值:“auto”-
用于加载/分析阶段的并行线程数。接受整数或关键字(“auto”、“HOST_CPUS”和“HOST_RAM”),可视需要后跟操作 ([-|*]<float>),例如:“auto”、“HOST_CPUS*.5”。“auto”根据主机资源设置合理的默认值。必须至少为 1。
标签:bazel_internal_configuration
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_config_setting_private_default_visibility
默认值:“false”-
如果 incompatible_enforce_config_setting_visibility=false,则是 noop。否则,如果此标志为 false,则任何没有显式可见性属性的 config_setting 都是 //visibility:public。如果此标志为 true,config_setting 遵循与所有其他规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_enforce_config_setting_visibility
默认值:“true”-
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对所有目标都可见。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_use_plus_in_repo_names
默认值:“true”-
无运维。
标签:loading_and_analysis
- 与 `mod` 子命令的输出和语义相关的选项:
--base_module=<"<root>" for the root module; <module>@<version> for a specific version of a module; <module> for all versions of a module; @<name> for a repo with the given apparent name; or @@<name> for a repo with the given canonical name>
默认值:“<root>”-
指定要解读指定目标代码库的相对模块。
标签:terminal_output
--charset=<utf8 or ascii>
默认值:“utf8”-
选择要用于树的字符集。仅影响文本输出。有效值为“utf8”或“ascii”默认值为“utf8”
标签:terminal_output
--[no]cycles
默认值:“false”-
指出所显示树内的依赖项循环,默认情况下通常会被忽略。
标签:terminal_output
--depth=<an integer>
默认值:“-1”-
依赖关系树的最大显示深度。例如,深度为 1 表示直接依赖项。对于树、路径和 all_paths,它默认为 Integer.MAX_VALUE;而对于依赖项和说明,默认为 1(除了目标叶及其父项之外,仅显示根的直接依赖项)。
标签:terminal_output
--extension_filter=<a comma-separated list of <extension>s>
默认值:请参阅说明-
仅显示这些模块扩展及其生成的代码库(如果已设置各自的标志)的用法。如果设置了此字段,则结果图将仅包含包含使用指定扩展名的模块的路径。空列表会停用过滤器,从而有效地指定所有可能的扩展名。
标签:terminal_output
--extension_info=<hidden, usages, repos or all>
默认值:“已隐藏”-
指定要包含在查询结果中的扩展程序使用情况详细信息。"用法"将仅显示扩展程序名称“repos”还将包含使用 use_repo 导入的代码库,以及“all”还会显示扩展程序生成的其他代码库。
标签:terminal_output
--extension_usages=<a comma-separated list of <module>s>
默认值:“”-
指定哪些模块会在 show_extension 查询中显示其扩展程序使用情况。
标签:terminal_output
--from=<a comma-separated list of <module>s>
默认值:“<root>”-
用于显示依赖关系图查询的起始模块。请检查每个查询的说明,了解确切的语义。默认为 <root>。
标签:terminal_output
--[no]include_builtin
默认值:“false”-
在依赖关系图中添加内置模块。默认处于停用状态,因为它非常嘈杂。
标签:terminal_output
--[no]include_unused
默认值:“false”-
这些查询还会考虑并显示未使用的模块,这些模块在选择后不存在于模块解析图中(由于最低版本选择或替换规则的原因)。这可能会对每种查询类型产生不同的影响,例如,在 all_paths 命令中包含新路径,或者在 Explain 命令中包含额外的依赖项。
标签:terminal_output
--output=<text, json or graph>
默认值:“text”-
输出查询结果时应采用的格式。允许的查询值包括:text、json、graph
标签:terminal_output
--[no]verbose
默认值:“false”-
这些查询还会显示模块解析为当前版本(如果已更改)的原因。仅对于说明查询默认设置为 true。
标签:terminal_output
- 未以其他方式分类的其他选项:
- 累计使用了
--deleted_packages=<comma-separated list of package names>
次 - 以逗号分隔的软件包名称列表,构建系统认为不存在这些软件包,即使它们在软件包路径上的某处可见。 删除子包“x/y”时使用此选项现有软件包“x”的一个名称例如,在客户端中删除 x/y/BUILD 后,构建系统可能会指出如果遇到标签“//x:y/z”(如果仍由另一个 package_path 条目提供)。指定 --deleted_packages x/y 可以避免此问题。
--[no]fetch
默认值:“true”- 允许该命令提取外部依赖项。如果设为 false,该命令将使用依赖项的任何缓存版本;如果不存在,该命令将导致失败。
--package_path=<colon-separated list of options>
默认值:“%workspace%”- 以英文冒号分隔的列表,用于列出查找软件包的位置。以“%workspace%”开头的元素相对于外围工作区如果省略或为空,则默认为“bazel info default-package-path”的输出。
--[no]show_loading_progress
默认值:“true”- 如果启用,则会导致 Bazel 输出“正在加载软件包:”。消息。
Print_action 选项
从 build 继承所有选项。
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names
默认值:“true”-
无运维。
标签:loading_and_analysis
- 未以其他方式分类的其他选项:
- 累计使用了
--print_action_mnemonics=<a string>
次 - 列出过滤 print_action 数据时使用的助记符,留空时不会执行过滤。
查询选项
- 用于控制构建执行的选项:
--[no]keep_going
[-k
] 默认值:“false”-
在出现错误后尽可能继续。虽然无法分析失败的目标以及依赖于它的目标,但可以分析这些目标的其他前提条件。
标签:eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">
默认值:“auto”-
用于加载/分析阶段的并行线程数。接受整数或关键字(“auto”、“HOST_CPUS”和“HOST_RAM”),可视需要后跟操作 ([-|*]<float>),例如:“auto”、“HOST_CPUS*.5”。“auto”根据主机资源设置合理的默认值。必须至少为 1。
标签:bazel_internal_configuration
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_config_setting_private_default_visibility
默认值:“false”-
如果 incompatible_enforce_config_setting_visibility=false,则是 noop。否则,如果此标志为 false,则任何没有显式可见性属性的 config_setting 都是 //visibility:public。如果此标志为 true,config_setting 遵循与所有其他规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_enforce_config_setting_visibility
默认值:“true”-
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对所有目标都可见。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_use_plus_in_repo_names
默认值:“true”-
无运维。
标签:loading_and_analysis
- 与查询输出和语义相关的选项:
--aspect_deps=<off, conservative or precise>
默认值:“保守”-
当输出格式为 {xml,proto,record} 之一时,如何解析切面依赖项。“关闭”表示没有解析切面依赖项,“保守型”(默认值)表示添加所有声明的切面依赖项,无论是否为它们提供直接依赖项规则类“确切”表示在给定直接依赖项的规则类的情况下,仅添加可能处于活动状态的切面。请注意,精确模式需要加载其他软件包才能评估单个目标,因此其速度比其他模式慢。另请注意,即使是精确模式,也不是完全精确:是否计算切面的决定是在分析阶段确定的,分析阶段不会在“bazel 查询”期间运行。
标签:build_file_semantics
--[no]consistent_labels
默认值:“false”-
启用后,每个查询命令都会发出标签,就像 Starlark <code>str</code> 发出的标签一样。函数应用于某个<code>标签</code>实例。这对于需要匹配不同查询命令的输出和/或规则发出的标签匹配的工具非常有用。如果未启用,输出格式化程序可以自由发出明显的代码库名称(相对于主代码库),使输出更易于阅读。
标签:terminal_output
--[no]experimental_explicit_aspects
默认值:“false”-
aquery、cquery:是否在输出中包含切面生成的操作。query: no-op(始终遵循各方面)。
标签:terminal_output
--[no]experimental_graphless_query
默认值:“auto”-
如果为 true,则使用不会创建图副本的 Query 实现。新实现仅支持 --order_output=no,并且仅支持一部分输出格式化程序。
标签:build_file_semantics
、eagerness_to_exit
--graph:conditional_edges_limit=<an integer>
默认值:“4”-
可显示的条件标签数量上限。-1 表示不截断,0 表示没有注释。此选项仅适用于 --output=graph。
标签:terminal_output
--[no]graph:factored
默认值:“true”-
如果为 true,则图表将发出“因式分解”,即拓扑等价节点将合并在一起,其标签将串联。此选项仅适用于 --output=graph。
标签:terminal_output
--graph:node_limit=<an integer>
默认值:“512”-
输出中图表节点的标签字符串的最大长度。较长的标签将被截断;-1 表示不截断。此选项仅适用于 --output=graph。
标签:terminal_output
--[no]implicit_deps
默认值:“true”-
启用后,隐式依赖项将包含在执行查询的依赖关系图中。隐式依赖项是指未在 BUILD 文件中明确指定但通过 bazel 添加的依赖项。对于 cquery,此选项控制对已解析的工具链的过滤。
标签:build_file_semantics
--[no]include_aspects
默认值:“true”-
aquery、cquery:是否在输出中包含切面生成的操作。query: no-op(始终遵循各方面)。
标签:terminal_output
--[no]incompatible_lexicographical_output
默认值:“true”-
如果设置了此选项,则按字典顺序对 --order_output=auto output 进行排序。
标签:terminal_output
、incompatible_change
--[no]incompatible_package_group_includes_double_slash
默认值:“true”-
启用后,在输出 package_group 的 `packages` 属性时,前导 `//` 将不会省略。
标签:terminal_output
、incompatible_change
--[no]infer_universe_scope
默认值:“false”-
如果设置了“--universe_scope”,则系统会将“--universe_scope”的值推断为查询表达式中的唯一目标模式列表。请注意,为使用 universe 作用域函数(例如“allrdeps”)的查询表达式推断出的 --universe_scope 值可能不是您想要的,因此仅当您知道自己在做什么时,才应该使用此选项。如需了解详情和示例,请参阅 https://bazel.build/reference/query#sky-query。如果设置了 --universe_scope,则系统会忽略此选项的值。注意:此选项仅适用于 `query`(即 `cquery`)。
标签:loading_and_analysis
--[no]line_terminator_null
默认值:“false”-
每种格式是否以 \0 而非换行符结尾。
标签:terminal_output
--[no]nodep_deps
默认值:“true”-
如果启用,则依赖于“nodep”属性将包含到运行查询的依赖关系图中。“nodep”的一个常见示例属性为“visibility”。运行并解析“info build-language”的输出,以了解所有“nodep”所有属性
标签:build_file_semantics
--noorder_results
-
以依赖项有序(默认)或无序方式输出结果。无序输出速度更快,但只有在 --output 不是 minrank、maxrank 或图时才受支持。
扩展为:
--order_output=no
标签:terminal_output
--null
-
每种格式是否以 \0 而非换行符结尾。
扩展为:
--line_terminator_null=true
标签:terminal_output
--order_output=<no, deps, auto or full>
默认值:“auto”-
输出无序 (no)、依赖项排序 (deps) 或完全排序 (full) 的结果。默认值为“auto”,表示结果是按依赖项有序还是完全排序的,具体取决于输出格式设置工具(对 proto、minrank、maxrank 和图进行 Dependency-ordered,对于所有其他格式则完全排序)。当输出完全有序时,节点将按完全确定性(总计)顺序输出。首先,所有节点均按字母顺序排序。然后,列表中的每个节点都用作后序深度优先搜索的起点,其中,未访问节点的传出边按后继节点的字母顺序遍历。最后,按照与节点的访问顺序相反的方式输出节点。
标签:terminal_output
--order_results
-
以依赖项有序(默认)或无序方式输出结果。无序输出速度更快,但只有在 --output 不是 minrank、maxrank 或图时才受支持。
扩展为:
--order_output=auto
标签:terminal_output
--output=<a string>
默认值:“label”-
输出查询结果时应采用的格式。允许的查询值包括:build、graph、streamed_jsonproto、label、label_kind、location、maxrank、minrank、package、proto、streamed_proto 和 xml。
标签:terminal_output
--[no]proto:default_values
默认值:“true”-
如果为 true,则会包含 BUILD 文件中未明确指定值的属性;否则会被省略。此选项适用于 --output=proto
标签:terminal_output
--[no]proto:definition_stack
默认值:“false”-
填充 definition_stack proto 字段,该字段会在定义规则类时为每个规则实例记录 Starlark 调用堆栈。
标签:terminal_output
--[no]proto:flatten_selects
默认值:“true”-
启用后,select() 创建的可配置属性会扁平化。对于列表类型,展平表示是一个正好包含选择映射的每个值一次的列表。标量类型会扁平化为 null。
标签:build_file_semantics
--[no]proto:include_attribute_source_aspects
默认值:“false”-
使用属性的来源方面填充每个属性的 source_aspect_name proto 字段(如果不是,则为空字符串)。
标签:terminal_output
--[no]proto:include_synthetic_attribute_hash
默认值:“false”-
是否计算和填充 $internal_attr_hash 属性。
标签:terminal_output
--[no]proto:instantiation_stack
默认值:“false”-
填充每条规则的实例化调用堆栈。请注意,这需要堆栈存在
标签:terminal_output
--[no]proto:locations
默认值:“true”-
是否在 proto 输出中输出位置信息。
标签:terminal_output
--proto:output_rule_attrs=<comma-separated list of options>
默认值:“全部”-
要包含在输出中的属性的列表(以英文逗号分隔)。默认值为所有属性。设置为空字符串即可不输出任何属性。此选项适用于 --output=proto。
标签:terminal_output
--[no]proto:rule_inputs_and_outputs
默认值:“true”-
是否填充 rule_input 和 rule_output 字段。
标签:terminal_output
--query_file=<a string>
默认值:“”-
如果已设置,查询将从此处命名的文件(而不是命令行)中读取查询。在此处指定文件和命令行查询都是错误的。
标签:changes_inputs
--[no]relative_locations
默认值:“false”-
如果为 true,BUILD 文件在 xml 和 proto 输出中的位置是相对的。默认情况下,位置输出为绝对路径,并且不同机器之间不会保持一致。您可以将此选项设置为 true,以便在不同机器上获得一致的结果。
标签:terminal_output
--[no]strict_test_suite
默认值:“false”-
如果为 true,则 test_suite 表达式会在遇到包含非测试目标的 test_suite 时给出错误。
标签:build_file_semantics
、eagerness_to_exit
--[no]tool_deps
默认值:“true”-
查询:如果停用,则依赖于“exec configuration”不会包含在运行查询的依赖关系图中。“exec configuration”依赖项边缘,例如来自任何“proto_library”的依赖项将规则应用于 Protocol Compiler,通常指向构建期间执行的工具,而不是同一“目标”的一部分计划。
Cquery:如果停用,则会从发现此已配置目标的顶级目标中过滤出跨执行转换的所有已配置目标。这意味着,如果顶级目标包含在目标配置中,则系统将仅返回同时在目标配置中已配置的目标。如果顶级目标采用 exec 配置,则只会返回 exec 配置的目标。此选项不会排除已解析的工具链。
标签:build_file_semantics
--universe_scope=<comma-separated list of options>
默认值:“”-
一组以英文逗号分隔的目标格式(加法和减法)。该查询可以在由指定目标的传递闭包定义的范围内执行。此选项用于 query 和 cquery 命令。
对于 cquery,此选项的输入是构建所有答案的目标,因此此选项可能会影响配置和转换。如果未指定此选项,则假定顶级目标是从查询表达式中解析的目标。注意:对于 cquery,如果无法使用顶级选项构建从查询表达式中解析的目标,则不指定此选项可能会导致构建中断。
标签:loading_and_analysis
--[no]xml:default_values
默认值:“false”-
如果为 true,则输出 BUILD 文件中未明确指定值的规则属性;否则会被省略。
标签:terminal_output
--[no]xml:line_numbers
默认值:“true”-
如果为 true,XML 输出将包含行号。停用此选项可能会使差异内容更易于阅读。此选项仅适用于 --output=xml。
标签:terminal_output
- 影响日志记录的详细程度、格式或位置的选项:
--experimental_repository_resolved_file=<a string>
默认值:“”-
如果非空,请使用已执行的所有 Starlark 代码库规则的解析信息写入 Starlark 值。
标签:affects_outputs
- 未以其他方式分类的其他选项:
- 累计使用了
--deleted_packages=<comma-separated list of package names>
次 - 以逗号分隔的软件包名称列表,构建系统认为不存在这些软件包,即使它们在软件包路径上的某处可见。 删除子包“x/y”时使用此选项现有软件包“x”的一个名称例如,在客户端中删除 x/y/BUILD 后,构建系统可能会指出如果遇到标签“//x:y/z”(如果仍由另一个 package_path 条目提供)。指定 --deleted_packages x/y 可以避免此问题。
--[no]fetch
默认值:“true”- 允许该命令提取外部依赖项。如果设为 false,该命令将使用依赖项的任何缓存版本;如果不存在,该命令将导致失败。
--package_path=<colon-separated list of options>
默认值:“%workspace%”- 以英文冒号分隔的列表,用于列出查找软件包的位置。以“%workspace%”开头的元素相对于外围工作区如果省略或为空,则默认为“bazel info default-package-path”的输出。
--[no]show_loading_progress
默认值:“true”- 如果启用,则会导致 Bazel 输出“正在加载软件包:”。消息。
运行选项
从 build 继承所有选项。
- 在命令之前显示并由客户端解析的选项:
--[no]portable_paths
默认值:“false”-
如果为 true,则在 ExecRequest 中包含要替换的路径,以使生成的路径可移植。
标签:affects_outputs
--[no]run
默认值:“true”-
如果为 false,则跳过运行为已构建目标构建的命令行。请注意,对于所有 --script_path 构建,此标志会被忽略。
标签:affects_outputs
- 可让用户配置预期输出并影响输出值(而不是其存在性)的选项:
--script_path=<a path>
默认值:请参阅说明-
如果设置了此字段,则将 Shell 脚本写入调用目标的指定文件。如果设置了此选项,则目标不会从 bazel 运行。使用“bazel run --script_path=foo //foo &&”./foo”以调用目标“//foo”这与“bazel run //foo”不同其中 bazel 锁会被释放,并且可执行文件已连接到终端的 stdin。
标签:affects_outputs
、execution
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names
默认值:“true”-
无运维。
标签:loading_and_analysis
关闭选项
- 用于控制命令输出的选项:
--iff_heap_size_greater_than=<an integer>
默认值:“0”-
如果为非零值,则只有在 JVM 消耗的总内存 (MB) 超过该值时,关闭服务器才会关闭服务器。
标签:loses_incremental_state
、eagerness_to_exit
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names
默认值:“true”-
无运维。
标签:loading_and_analysis
同步选项
- 用于控制构建执行的选项:
--[no]configure
默认值:“False”-
仅同步标记为“configure”的代码库用于系统配置目的
标签:changes_inputs
--[no]keep_going
[-k
] 默认值:“false”-
在出现错误后尽可能继续。虽然无法分析失败的目标以及依赖于它的目标,但可以分析这些目标的其他前提条件。
标签:eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">
默认值:“auto”-
用于加载/分析阶段的并行线程数。接受整数或关键字(“auto”、“HOST_CPUS”和“HOST_RAM”),可视需要后跟操作 ([-|*]<float>),例如:“auto”、“HOST_CPUS*.5”。“auto”根据主机资源设置合理的默认值。必须至少为 1。
标签:bazel_internal_configuration
- 累计使用了
--only=<a string>
次 -
如果提供此选项,则仅同步使用此选项指定的代码库。仍然认为所有(或所有类似于配置的 --configure )已过时。
标签:changes_inputs
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_config_setting_private_default_visibility
默认值:“false”-
如果 incompatible_enforce_config_setting_visibility=false,则是 noop。否则,如果此标志为 false,则任何没有显式可见性属性的 config_setting 都是 //visibility:public。如果此标志为 true,config_setting 遵循与所有其他规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_enforce_config_setting_visibility
默认值:“true”-
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对所有目标都可见。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_use_plus_in_repo_names
默认值:“true”-
无运维。
标签:loading_and_analysis
- 影响日志记录的详细程度、格式或位置的选项:
--experimental_repository_resolved_file=<a string>
默认值:“”-
如果非空,请使用已执行的所有 Starlark 代码库规则的解析信息写入 Starlark 值。
标签:affects_outputs
- 未以其他方式分类的其他选项:
- 累计使用了
--deleted_packages=<comma-separated list of package names>
次 - 以逗号分隔的软件包名称列表,构建系统认为不存在这些软件包,即使它们在软件包路径上的某处可见。 删除子包“x/y”时使用此选项现有软件包“x”的一个名称例如,在客户端中删除 x/y/BUILD 后,构建系统可能会指出如果遇到标签“//x:y/z”(如果仍由另一个 package_path 条目提供)。指定 --deleted_packages x/y 可以避免此问题。
--[no]fetch
默认值:“true”- 允许该命令提取外部依赖项。如果设为 false,该命令将使用依赖项的任何缓存版本;如果不存在,该命令将导致失败。
--package_path=<colon-separated list of options>
默认值:“%workspace%”- 以英文冒号分隔的列表,用于列出查找软件包的位置。以“%workspace%”开头的元素相对于外围工作区如果省略或为空,则默认为“bazel info default-package-path”的输出。
--[no]show_loading_progress
默认值:“true”- 如果启用,则会导致 Bazel 输出“正在加载软件包:”。消息。
测试选项
从 build 继承所有选项。
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names
默认值:“true”-
无运维。
标签:loading_and_analysis
- 影响日志记录的详细程度、格式或位置的选项:
--[no]print_relative_test_log_paths
默认值:“false”-
如果为 true,则在输出测试日志的路径时,使用利用“testlogs”的相对路径便利符号链接。注意- 后续使用不同配置进行的“build”/“test”/etc 调用可能会导致此符号链接的目标发生变化,使之前输出的路径不再有用。
标签:affects_outputs
--[no]test_verbose_timeout_warnings
默认值:“false”-
如果为 true,则当实际测试执行时间与测试定义的超时时间不匹配(无论是隐式还是显式)时,输出其他警告。
标签:affects_outputs
--[no]verbose_test_summary
默认值:“true”-
如果为 true,则会在测试摘要中输出其他信息(时间、失败的运行次数等)。
标签:affects_outputs
供应商选项
沿用 test 的所有选项。
- 用于控制构建执行的选项:
--[no]keep_going
[-k
] 默认值:“false”-
在出现错误后尽可能继续。虽然无法分析失败的目标以及依赖于它的目标,但可以分析这些目标的其他前提条件。
标签:eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">
默认值:“auto”-
用于加载/分析阶段的并行线程数。接受整数或关键字(“auto”、“HOST_CPUS”和“HOST_RAM”),可视需要后跟操作 ([-|*]<float>),例如:“auto”、“HOST_CPUS*.5”。“auto”根据主机资源设置合理的默认值。必须至少为 1。
标签:bazel_internal_configuration
- 此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_config_setting_private_default_visibility
默认值:“false”-
如果 incompatible_enforce_config_setting_visibility=false,则是 noop。否则,如果此标志为 false,则任何没有显式可见性属性的 config_setting 都是 //visibility:public。如果此标志为 true,config_setting 遵循与所有其他规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_enforce_config_setting_visibility
默认值:“true”-
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对所有目标都可见。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_use_plus_in_repo_names
默认值:“true”-
无运维。
标签:loading_and_analysis
- 与 Bzlmod 输出和语义相关的选项:
- 累计使用了
--repo=<a string>
次 -
仅供应商指定代码库,可以是“@apparent_repo_name”或“@@canonical_repo_name”。此选项可以设置多次
标签:changes_inputs
- 未以其他方式分类的其他选项:
- 累计使用了
--deleted_packages=<comma-separated list of package names>
次 - 以逗号分隔的软件包名称列表,构建系统认为不存在这些软件包,即使它们在软件包路径上的某处可见。 删除子包“x/y”时使用此选项现有软件包“x”的一个名称例如,在客户端中删除 x/y/BUILD 后,构建系统可能会指出如果遇到标签“//x:y/z”(如果仍由另一个 package_path 条目提供)。指定 --deleted_packages x/y 可以避免此问题。
--[no]fetch
默认值:“true”- 允许该命令提取外部依赖项。如果设为 false,该命令将使用依赖项的任何缓存版本;如果不存在,该命令将导致失败。
--package_path=<colon-separated list of options>
默认值:“%workspace%”- 以英文冒号分隔的列表,用于列出查找软件包的位置。以“%workspace%”开头的元素相对于外围工作区如果省略或为空,则默认为“bazel info default-package-path”的输出。
--[no]show_loading_progress
默认值:“true”- 如果启用,则会导致 Bazel 输出“正在加载软件包:”。消息。 。
- 用于控制构建执行的选项:
--[no]experimental_inprocess_symlink_creation
默认值:“false”-
是否发起直接文件系统调用以创建符号链接树
标签:loading_and_analysis
、execution
、experimental
--[no]experimental_persistent_aar_extractor
默认值:“false”-
使用工作器启用永久性 aar 提取器。
标签:execution
--[no]experimental_remotable_source_manifests
默认值:“false”-
是否将源清单操作设为远程
标签:loading_and_analysis
、execution
、experimental
--[no]experimental_split_coverage_postprocessing
默认值:“false”-
如果为 true,则 Bazel 将在新的生成对象中运行覆盖率后处理以进行测试。
标签:execution
--[no]experimental_strict_fileset_output
默认值:“false”-
如果启用此选项,文件集会将所有输出制品视为常规文件。它们不会遍历目录,也不会对符号链接敏感。
标签:execution
--[no]incompatible_modify_execution_info_additive
默认值:“false”-
启用后,传递多个 --modify_execution_info 标志是累加的。停用后,系统只会考虑最后一个标志。
标签:execution
、affects_outputs
、loading_and_analysis
、incompatible_change
- 累计使用了
--modify_execution_info=<regex=[+-]key,regex=[+-]key,...>
次 -
根据操作助记符在操作的执行信息中添加或移除键。仅适用于支持执行信息的操作。许多常见操作都支持执行信息,例如Genrule、CppCompile、Javac、StarlarkAction、TestRunner。指定多个值时,顺序很重要,因为许多正则表达式可能适用于同一个助记符。
语法:“regex=[+-]key,regex=[+-]key,...”。
示例:
'.*=+x,.*=-y,.*=+z'添加“x”和“z”并移除“y”from - 所有操作的执行信息。
“Genrule=+requires-x”添加“requires-x”所有 Genrule 操作的执行信息。
'(?!Genrule).*=-requires-x'移除了“requires-x”。
标签:execution
、affects_outputs
、loading_and_analysis
--persistent_android_dex_desugar
-
使用 worker 启用持久性 Android dex 和脱糖操作。
扩展为:
--internal_persistent_android_dex_desugar
--strategy=Desugar=worker
--strategy=DexBuilder=worker
标签:host_machine_resource_optimizations
、execution
--persistent_android_resource_processor
-
使用工作器启用永久性 Android 资源处理器。
扩展为:
--internal_persistent_busybox_tools
--strategy=AaptPackage=worker
--strategy=AndroidResourceParser=worker
--strategy=AndroidResourceValidator=worker
--strategy=AndroidResourceCompiler=worker
--strategy=RClassGenerator=worker
--strategy=AndroidResourceLink=worker
--strategy=AndroidAapt2=worker
--strategy=AndroidAssetMerger=worker
--strategy=AndroidResourceMerger=worker
--strategy=AndroidCompiledResourceMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker
--strategy=Aapt2Optimize=worker
--strategy=AARGenerator=worker
--strategy=ProcessDatabinding=worker
--strategy=GenerateDataBindingBaseClasses=worker
{17/
标签:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_dex_desugar
-
使用 worker 启用持久性多路复用 Android dex 和脱糖操作。
扩展为:
--persistent_android_dex_desugar
--internal_persistent_multiplex_android_dex_desugar
标签:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_resource_processor
-
使用工作器启用永久性多路复用 Android 资源处理器。
扩展为:
--persistent_android_resource_processor
--modify_execution_info=AaptPackage=+supports-multiplex-workers
--modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
--modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceCompiler=+supports-multiplex-workers
--modify_execution_info=RClassGenerator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceLink=+supports-multiplex-workers
--modify_execution_info=AndroidAapt2=+supports-multiplex-workers
--modify_execution_info=AndroidAssetMerger=+supports-multiplex-workers
--modify_execution_info=AndroidResourceMerger=+supports-multiplex-workers
--modify_execution_info=AndroidCompiledResourceMerger=+supports-multiplex-workers
--modify_execution_info=ManifestMerger=+supports-multiplex-workers
--modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=AARGenerator=+supports-multiplex-workers
标签:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_tools
-
启用持久性和多路复用 Android 工具(dex 处理、脱糖、资源处理)。
扩展为:
--internal_persistent_multiplex_busybox_tools
--persistent_multiplex_android_resource_processor
--persistent_multiplex_android_dex_desugar
标签:host_machine_resource_optimizations
、execution
--[no]use_target_platform_for_tests
默认值:“false”-
如果为 true,则 Bazel 将使用目标平台(而不是测试执行组)来运行测试。
标签:execution
- 用于配置用于执行操作执行的工具链的选项:
--android_compiler=<a string>
默认值:请参阅说明-
Android 目标编译器。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
--android_manifest_merger=<legacy, android or force_android>
默认值:“android”-
选择要用于 android_binary 规则的清单合并程序。用于帮助从旧版合并转换为 Android 清单合并的标志。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
--android_platforms=<a build target label>
默认值:“”-
设置 android_binary 目标使用的平台。如果指定了多个平台,则二进制文件为胖 APK,其中包含每个指定目标平台的原生二进制文件。
标签:changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_sdk=<a build target label>
默认值:“@bazel_tools//tools/android:sdk”-
指定用于构建 Android 应用的 Android SDK/平台。
标签:changes_inputs
、loading_and_analysis
、loses_incremental_state
--apple_crosstool_top=<a build target label>
默认值:“@bazel_tools//tools/cpp:toolchain"-
要在 Apple 和 Objc 规则及其依赖项中使用的 crosstool 软件包标签。
标签:loses_incremental_state
、changes_inputs
--cc_output_directory_tag=<a string>
默认值:“”-
指定要添加到配置目录的后缀。
标签:affects_outputs
--compiler=<a string>
默认值:请参阅说明-
用于编译目标的 C++ 编译器。
标签:loading_and_analysis
、execution
--coverage_output_generator=<a build target label>
默认值:“@bazel_tools//tools/test:lcov_merger”-
用于对原始覆盖率报表进行后处理的二进制文件的位置。目前,它必须是包含一个文件(即二进制文件)的文件组。默认值为“//tools/test:lcov_merger”。
标签:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_report_generator=<a build target label>
默认值:“@bazel_tools//tools/test:coverage_report_generator”-
用于生成覆盖率报告的二进制文件的位置。目前,它必须是包含一个文件(即二进制文件)的文件组。默认值为“//tools/test:coverage_report_generator”。
标签:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_support=<a build target label>
默认值:“@bazel_tools//tools/test:coverage_support”-
收集代码覆盖率的每个测试操作的输入中所需的支持文件的位置。默认值为“//tools/test:coverage_support”。
标签:changes_inputs
、affects_outputs
、loading_and_analysis
--custom_malloc=<a build target label>
默认值:请参阅说明-
指定自定义 malloc 实现。此设置会覆盖构建规则中的 malloc 属性。
标签:changes_inputs
、affects_outputs
- 累计使用了
--experimental_add_exec_constraints_to_targets=<a '<RegexFilter>=<label1>[,<label2>,...]' assignment>
次 -
以英文逗号分隔的正则表达式列表,每个可选表达式前缀为 -(负表达式),为以英文逗号分隔的限制条件值目标列表分配 (=)。如果某个目标与任何负表达式或至少一个正表达式匹配,系统将执行其工具链解析,就像它将约束值声明为执行约束一样。示例://demo,-test=@platforms//cpus:x86_64 will add 'x86_64'//demo 下除名称中包含“test”的目标之外的任何目标。
标签:loading_and_analysis
--[no]experimental_include_xcode_execution_requirements
默认值:“false”-
如果设置了“requires-xcode:{version}”,则添加一个执行要求如果 Xcode 版本有带连字符的标签,请同时添加“requires-xcode-label:{version_label}”执行要求。
标签:loses_incremental_state
、loading_and_analysis
、execution
--[no]experimental_prefer_mutual_xcode
默认值:“true”-
如果为 true,请使用本地和远程均可使用的最新 Xcode。如果为 false,或者没有相互可用的版本,则使用通过 xcode-select 选择的本地 Xcode 版本。
标签:loses_incremental_state
--extra_execution_platforms=<comma-separated list of options>
默认值:“”-
可作为执行平台来执行操作的平台。平台可以按确切目标指定,也可以指定为目标模式。这些平台将优先于 register_execution_platforms() 在 WORKSPACE 文件中声明的平台得到考虑。此选项只能设置一次;较晚的实例将覆盖较早的标志设置。
标签:execution
- 累计使用了
--extra_toolchains=<comma-separated list of options>
次 -
工具链解析期间要考虑的工具链规则。工具链可以按确切目标指定,也可以指定为目标模式。系统将优先考虑这些工具链,然后再考虑 register_toolchains() 在 WORKSPACE 文件中声明的工具链。
标签:affects_outputs
、changes_inputs
、loading_and_analysis
--grte_top=<a label>
默认值:请参阅说明-
指向已检入的 libc 库的标签。默认值由 Crosstool 工具链选择,您几乎永远不需要替换它。
标签:action_command_lines
、affects_outputs
--host_compiler=<a string>
默认值:请参阅说明-
空操作标志。将在未来的版本中移除。
标签:loading_and_analysis
、execution
--host_grte_top=<a label>
默认值:请参阅说明-
如果指定,此设置将覆盖 exec 配置的 libc 顶级目录 (--grte_top)。
标签:action_command_lines
、affects_outputs
--host_platform=<a build target label>
默认值:“@bazel_tools//tools:host_platform”-
描述主机系统的平台规则的标签。
标签:affects_outputs
、changes_inputs
、loading_and_analysis
--[no]incompatible_bazel_test_exec_run_under
默认值:“false”-
启用后,系统会显示“bazel test --run_under=//:runner”构建 "//:runner"在 exec 配置中指定。如果停用,它将构建“//:runner”。Bazel 在执行机器上执行测试,因此前者更加正确。这不会影响“bazel run”,后者始终会构建“`--run_under=//foo”。
标签:affects_outputs
、incompatible_change
--[no]incompatible_dont_enable_host_nonhost_crosstool_features
默认值:“true”-
如果为 true,Bazel 将不会启用“主机”和“非主机”功能(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7407)。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_enable_apple_toolchain_resolution
默认值:“false”-
使用工具链解析为 Apple 规则选择 Apple SDK(Starlark 和原生)
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_remove_legacy_whole_archive
默认值:“true”-
如果为 true,默认情况下,Bazel 不会将库依赖项关联为整个归档(有关迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/7362)。
标签:loading_and_analysis
、incompatible_change
--[no]incompatible_strip_executable_safely
默认值:“false”-
如果为 true,针对可执行文件的剥离操作将使用标志 -x,这不会破坏动态符号解析。
标签:action_command_lines
、incompatible_change
-
使用接口共享对象(如果工具链支持)。目前,所有 ELF 工具链都支持此设置。
标签:loading_and_analysis
、affects_outputs
、affects_outputs
--ios_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
指定用于构建 iOS 应用的 iOS SDK 版本。如果未指定,系统会使用“xcode_version”的默认 iOS SDK 版本。
标签:loses_incremental_state
--macos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
指定用于构建 macOS 应用的 macOS SDK 版本。如果未指定,系统会使用“xcode_version”中的默认 macOS SDK 版本。
标签:loses_incremental_state
--minimum_os_version=<a string>
默认值:请参阅说明-
编译针对的最低操作系统版本。
标签:loading_and_analysis
、affects_outputs
--platform_mappings=<a relative path>
默认值:“”-
映射文件的位置,用于描述未设置任何平台时要使用的平台,或在平台已存在时设置哪些标志。必须相对于主工作区根目录。默认值为“platform_mappings”(工作区根目录下的文件)。
标签:affects_outputs
、changes_inputs
、loading_and_analysis
、immutable
--platforms=<a build target label>
默认值:“”-
描述当前命令目标平台的平台规则的标签。
标签:affects_outputs
、changes_inputs
、loading_and_analysis
--python_path=<a string>
默认值:请参阅说明-
为了在目标平台上运行 Python 目标而调用的 Python 解释器的绝对路径。已弃用;已被 --incompatible_use_python_toolchains 停用。
标签:loading_and_analysis
、affects_outputs
--python_top=<a build target label>
默认值:请参阅说明-
py_runtime 的标签,表示为在目标平台上运行 Python 目标而调用的 Python 解释器。已弃用;已被 --incompatible_use_python_toolchains 停用。
标签:loading_and_analysis
、affects_outputs
--tvos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
指定用于构建 tvOS 应用的 tvOS SDK 版本。如果未指定,系统会使用“xcode_version”中的默认 tvOS SDK 版本。
标签:loses_incremental_state
--watchos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认值:请参阅说明-
指定用于构建 watchOS 应用的 watchOS SDK 版本。如果未指定,将使用“xcode_version”中的默认 watchOS SDK 版本。
标签:loses_incremental_state
--xcode_version=<a string>
默认值:请参阅说明-
如果指定,则使用指定版本的 Xcode 执行相关构建操作。如果未指定,则使用默认执行器版本的 Xcode。
标签:loses_incremental_state
--xcode_version_config=<a build target label>
默认值:“@bazel_tools//tools/cpp:host_xcodes”-
xcode_config 规则的标签,用于在 build 配置中选择 Xcode 版本。
标签:loses_incremental_state
、loading_and_analysis
- 用于控制命令输出的选项:
--[no]apple_generate_dsym
默认值:“false”-
是否生成调试符号 (.dSYM) 文件。
标签:affects_outputs
、action_command_lines
--[no]build_runfile_links
默认值:“true”-
如果为 true,则会为所有目标构建 runfiles 符号链接林。如果为 false,则仅在本地操作、测试或运行命令需要时编写这些代码。
标签:affects_outputs
--[no]build_runfile_manifests
默认值:“true”-
如果为 true,请为所有目标编写 runfiles 清单。如果为 false,请忽略它们。如果为 false,本地测试将无法运行。
标签:affects_outputs
--[no]build_test_dwp
默认值:“false”-
启用后,在采用 fission 静态构建 C++ 测试时,测试二进制文件的 .dwp 文件也会自动构建。
标签:loading_and_analysis
、affects_outputs
--cc_proto_library_header_suffixes=<comma-separated set of options>
默认值:“.pb.h”-
设置 cc_proto_library 创建的头文件的后缀。
标签:affects_outputs
、loading_and_analysis
--cc_proto_library_source_suffixes=<comma-separated set of options>
默认值:“.pb.cc”-
设置 cc_proto_library 创建的源文件的后缀。
标签:affects_outputs
、loading_and_analysis
--[no]experimental_proto_descriptor_sets_include_source_info
默认值:“false”-
针对 proto_library 中的备用 Java API 版本运行额外操作。
标签:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_save_feature_state
默认值:“false”-
将已启用和已请求功能的状态保存为编译输出。
标签:affects_outputs
、experimental
--fission=<a set of compilation modes>
默认值:“no”-
指定哪些编译模式对 C++ 编译和链接使用 fission。可以是 {'Fastbuild', 'dbg', 'opt'} 或特殊值“yes”的任意组合启用所有模式,选择“no”来停用所有模式。
标签:loading_and_analysis
、action_command_lines
、affects_outputs
--[no]incompatible_always_include_files_in_data
默认值:“true”-
如果为 true,原生规则会添加 <code>DefaultInfo.files</code>数据依赖项映射到其 runfile,这与 Starlark 规则 (https://bazel.build/extending/rules#runfiles_features_to_avoid) 的建议行为一致。
标签:affects_outputs
、incompatible_change
--[no]legacy_external_runfiles
默认值:“true”-
如果为 true,则除了 .runfiles/repo 之外,还可以在 .runfiles/wsname/external/repo 下为外部代码库构建 runfiles 符号链接林。
标签:affects_outputs
--[no]objc_generate_linkmap
默认值:“false”-
指定是否生成链接映射文件。
标签:affects_outputs
--[no]save_temps
默认值:“false”-
如果设置,则会保存 gcc 的临时输出。包括 .s 文件(汇编代码)、.i 文件(预处理的 C 语言)和 .ii 文件(预处理的 C++)。
标签:affects_outputs
- 可让用户配置预期输出并影响输出值(而不是其存在性)的选项:
- 累计使用了
--action_env=<a 'name=value' assignment with an optional value part>
次 -
指定可用于具有目标配置的操作的一组环境变量。变量可以按名称指定,在这种情况下,值将从调用环境中获取;也可以按 name=value 对指定,该值独立于调用环境设置。此选项可以多次使用;对于同一变量给出的选项,最近的胜出者、不同变量的选项累计。
标签:action_command_lines
--[no]android_databinding_use_androidx
默认值:“true”-
生成与 AndroidX 兼容的数据绑定文件。这仅适用于数据绑定 v2。此标志是一个空操作。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]android_databinding_use_v3_4_args
默认值:“true”-
使用带有 3.4.0 参数的 Android 数据绑定 v2。此标志是一个空操作。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--android_dynamic_mode=<off, default or fully>
默认值:“关闭”-
确定当 cc_binary 未明确创建共享库时,Android 规则的 C++ 依赖项是否会动态关联。“default”表示 bazel 将选择是否进行动态关联。“full”表示所有库都将动态关联。“关闭”表示在大多静态模式下链接所有库。
标签:affects_outputs
、loading_and_analysis
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency>
默认值:“alphabetical”-
设置传递给 Android 二进制文件的清单合并程序的清单的顺序。ALPHABETical 表示清单按相对于 execroot 的路径进行排序。ALPHABETical_BY_CONFIGURATION 表示清单按相对于输出目录中配置目录的路径进行排序。“DEPENDENCY(依赖项)”表示对清单进行排序,使每个库的清单排在其依赖项清单之前。
标签:action_command_lines
、execution
--[no]android_resource_shrinking
默认值:“false”-
为使用 ProGuard 的 android_binary APK 启用资源压缩。
标签:affects_outputs
、loading_and_analysis
--[no]build_python_zip
默认值:“auto”-
构建 Python 可执行 zip;在其他平台上关闭
标签:affects_outputs
- 累计使用了
--catalyst_cpus=<comma-separated list of options>
次 -
用于构建 Apple Catalyst 二进制文件的架构的逗号分隔列表。
标签:loses_incremental_state
、loading_and_analysis
--[no]collect_code_coverage
默认值:“false”-
如果指定,Bazel 将对代码进行插桩(尽可能使用离线插桩),并在测试期间收集覆盖率信息。只有与 --instrument_filter 匹配的目标会受到影响。通常,不应直接指定此选项 - 'bazel reach'命令。
标签:affects_outputs
--compilation_mode=<fastbuild, dbg or opt>
[-c
] 默认值:“Fastbuild”-
指定构建二进制文件的模式。值:“Fastbuild”“dbg”“opt”。
标签:affects_outputs
、action_command_lines
- 累计使用了
--conlyopt=<a string>
次 -
这是在编译 C 源文件时传递给 gcc 的附加选项。
标签:action_command_lines
、affects_outputs
- 累计使用了
--copt=<a string>
次 -
传递给 gcc 的其他选项。
标签:action_command_lines
、affects_outputs
--cpu=<a string>
默认值:“”-
目标 CPU。
标签:changes_inputs
、affects_outputs
--cs_fdo_absolute_path=<a string>
默认值:请参阅说明-
使用 CSFDO 配置文件信息优化编译。指定包含配置文件、原始或已编入索引的 LLVM 配置文件的 ZIP 文件的绝对路径名。
标签:affects_outputs
--cs_fdo_instrument=<a string>
默认值:请参阅说明-
使用上下文敏感 FDO 插桩生成二进制文件。使用 Clang/LLVM 编译器,它还接受将在运行时转储原始配置文件的目录名称。
标签:affects_outputs
--cs_fdo_profile=<a build target label>
默认值:请参阅说明-
cs_fdo_profile,表示要用于优化的上下文敏感配置文件。
标签:affects_outputs
- 累计使用了
--cxxopt=<a string>
次 -
编译 C++ 源文件时传递给 gcc 的附加选项。
标签:action_command_lines
、affects_outputs
- 累计使用了
--define=<a 'name=value' assignment>
次 -
每个 --define 选项都会指定对 build 变量的赋值。如果一个变量有多个值,以最后一个值为准。
标签:changes_inputs
、affects_outputs
--dynamic_mode=<off, default or fully>
默认值:“默认”-
确定是否会动态链接 C++ 二进制文件。“default”这意味着 Bazel 将选择是否进行动态关联。“full”表示所有库都将动态关联。“关闭”表示在大多静态模式下链接所有库。
标签:loading_and_analysis
、affects_outputs
--[no]enable_propeller_optimize_absolute_paths
默认值:“true”-
如果已设置,任何对推进器优化的绝对路径使用都会引发错误。
标签:affects_outputs
--[no]enable_remaining_fdo_absolute_paths
默认值:“true”-
如果已设置,任何对 FDO 使用绝对路径都会引发错误。
标签:affects_outputs
--[no]enable_runfiles
默认值:“auto”-
启用 runfiles 符号链接树;在 Windows 和其他平台上,此设置默认处于关闭状态。
标签:affects_outputs
- 累计使用了
--experimental_action_listener=<a build target label>
次 -
已弃用,取而代之的是切面。使用 action_listener 将 extra_action 附加到现有构建操作。
标签:execution
、experimental
--[no]experimental_android_compress_java_resources
默认值:“false”-
压缩 APK 中的 Java 资源
标签:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_android_databinding_v2
默认值:“true”-
使用 Android Databinding v2。此标志是一个空操作。
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]experimental_android_resource_shrinking
默认值:“false”-
为使用 ProGuard 的 android_binary APK 启用资源压缩。
标签:affects_outputs
、loading_and_analysis
--[no]experimental_android_rewrite_dexes_with_rex
默认值:“false”-
使用 rex 工具重写 dex 文件
标签:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]experimental_collect_code_coverage_for_generated_files
默认值:“false”-
如果已指定,Bazel 还会为生成的文件生成收集覆盖率信息。
标签:affects_outputs
--experimental_objc_fastbuild_options=<comma-separated list of options>
默认值:“-O0,-DDEBUG=1”-
将这些字符串用作 objc fastbuild 编译器选项。
标签:action_command_lines
--[no]experimental_omitfp
默认值:“false