编译构建 CODEARTS BUILD-对鸿蒙构建工程配置构建加速:高级选项
高级选项
高级选项均为非必填选项,在构建过程中有工程无法执行需要特殊适配或优化性能时配置,若随意配置可能会导致构建失败。
参数 |
说明 |
示例 |
---|---|---|
TB_GET_TRACE |
构建结束后获取依赖json文件文件的开关。
|
1 |
TB_NINJA_RULE_ALL |
分割规则配置,target按数量比值分组。不设置时会自动配置合适值。 |
"1:2:3:4" |
TB_TARGETS_LIST_ALL |
人工指定分发的target进行编译,每个英文逗号隔开一个worker的target。使用“*”分隔多个ninja工程的配置。不设置时会自动配置合适值。 |
"harmony_target_1 harmony_target_2,harmony_target_3 harmony_target_4" |
TB_HOOK_LOCK |
对软链接也进行文件同步。若构建过程中发生软链接文件未同步导致的报错,需要开启此选项。
|
1 |
TB_APPEND_PATH |
构建时可向PATH环境变量中追加的参数。
|
1 |
TB_SHUT_DOWN_SAME_TIME |
所有worker都等待主节点执行完毕后再结束构建释放资源。
|
1 |
TB_RSYNC_LOCK |
构建加速的同时worker向构建执行机实时传输文件。开启后效率会进一步提升,但会存在概率性编译失败的情况。
|
1 |
TB_MAKE_J |
设置构建并发数。默认为worker核数。 |
16 |
TB_REFER_NINJA_FILE |
如果存在串行执行一个一模一样的ninja工程时,可以使用此变量优化构建速度
|
1 |
CCACHE_DIR |
自定义编译缓存的本地目录。默认为/tmp/xcache目录。 |
${WORKSPACE}/TBcache |
TB_CACHE_SIZE |
使用自定义执行机自定义编译缓存的本地目录存储大小上限。默认为100G。 |
100G |
CCACHE_MAXSIZE |
自定义编译缓存的本地目录存储大小上限。默认为20G。 |
100G |
TB_ONE_WORKER |
使用自定义执行机且只使用一个worker进行构建时可以使用此变量打开编译缓存开关。
|
1 |
TB_CLIENT |
该变量在主节点client自动设置,可以通过比较此变量是否等于1判断该节点是否为主节点client。 |
不需要配置 |
TB_NET_INTERFACE_NAME |
指定获取IP时读取的网卡名,在多网卡情况下获取IP使用,默认为空,多个网卡名通过逗号分隔,配置在前的网卡名有更高的优先级。 |
eth0,eth1 |
TB_ACC_PREPARE |
使用自定义执行机时必须配置此变量。 |
false |
TB_OUTPUT_PATH |
自定义产物目录路径,默认设置为out。 |
output |
TB_SELF_ENV |
worker编译target时使用本地环境变量,不使用client传递的变量。
|
1 |
TB_RSYNC_FLAG |
增加同步文件时rsync命令的参数。 |
--ignore-existing -a |
TBUILD_PLUGIN_PKG_TYPE |
指定使用的TBuild版本为snapshot版本还是release版本。不设置时默认使用最新的release版本。 |
release |
TBUILD_PLUGIN_PKG_VERSION |
指定使用的TBuild版本号。不设置时默认使用最新的release版本。 |
1.0.1 |
参数项 |
说明 |
示例 |
---|---|---|
TB_CPU_NUM |
分发任务时,所有机器都以此值计算可分配任务量。默认为空。 |
16 |
TB_LOCAL_CONTAIN_PATTERN |
根据关键字指定必须分发在client编译的target,此target生成的产物不需要文件传输回主节点。默认为空。 |
file_contexts.bin,com.android.vndk.current.,out/soong/host/linux-x86/bin/fileslist |
TB_LOCAL_NOT_CONTAIN_PATTERN |
根据关键字指定必须不分发在client编译的target。默认为空。 |
Bluetooth.so |
TB_CAPACITY_ALL |
单台机器可分配的任务权值上限,单位是分钟,以json文件的时间为参考,此时间为单纯的构建时间,不包括cpu空闲时间,实际构建时间会大于此值。可以指定为小数。超过此上限的target会分发至client,在所有agent编译完成后在本地最后编译。不设置时会根据json文件自动设置。 |
5.5 |
TB_TASK_SIZE_ALL |
人工指定分割多少份target,可以大于机器数量,建议设置的值略大于机器数量,不建议少于机器数量,会导致机器浪费。不设置时会根据机器数量自动设置。 |
8 |
参数项 |
说明 |
示例 |
---|---|---|
TB_CACHE_SERVER_IP |
ninja文件缓存开关,和TB_CACHE_ARCHIVE_PATH同时设置时缓存才会开启。
|
172.example.example.example |
TB_CACHE_ARCHIVE_PATH |
ninja文件缓存本地归档目录,和TB_CACHE_SERVER_IP同时设置时缓存才会开启。 |
AOSP/ninja_cache |
TB_CACHE_RECACHE |
本次构建会重新生成ninja文件缓存,不会命中历史缓存。
|
1 |
TB_CACHE_REMOTE |
ninja文件缓存远端开关,命中时从远端获取缓存,生成缓存时也会归档至远端。
|
1 |
TB_CACHE_LOCAL |
ninja文件缓存本地开关,命中时从本地获取缓存,优先级高于远端缓存,生成缓存时也会归档至本地。
|
1 |
TB_CACHE_DEPENDS |
增加指定的文件作为缓存命中的依赖文件,如果该文件产生变化,会使缓存不命中。默认为空。多个文件使用逗号分隔。 |
build.sh,test.sh |
TB_CACHE_VERSION |
为缓存增加指定的版本号,如果版本号产生变化,会使缓存不命中。默认为空。 |
1.0 |
TB_CACHE_EXCLUDE_KEY |
缓存时过滤掉带关键字的文件,多个关键字用逗号分隔,默认设置为".glob",可以用空字符串重置。 |
.so,.glob |
TB_NINJA_FILE_CACHE |
设置被缓存的目录,多个目录使用逗号分隔,默认设置为"out"。 |
out,test |
TB_CACHE_NINJA_CACHE_SIZE |
ninja文件缓存本地归档目录空间上限,超过此上限会根据算法自动清理历史缓存。默认设置为50,单位是G。 |
100 |
TB_SKIP_TARGET |
归档ninja文件缓存时跳过此target,即使命中ninja文件缓存此target也会重新编译。 |
update-api |