工作区之间的Android ccache共享



我想共享使用一个工作区构建的ccache,以供另一个工作空间使用,这样ccache数据的一个副本就可以用于编译相同的源代码。

E.x:1) 创建了一个工作区(home/user/source_code1)。2) 从服务器同步了此处的代码。3) 使用USE_CCACHE=1 编译代码

以上内容将构建我的ccache。现在我做以下

案例1:1) 创建了一个工作区(home/user/source_code2)。2) 从服务器同步了相同的源代码。3) 进行了与我在早期工作区中所做的相同的编译。

案例2:1) 删除工作区home/user/source_code12) 重新创建早期的工作区(home/user/source_code1)。2) 从服务器重新同步此处的代码。3) 使用USE_CCACHE=1 编译代码

我希望source_code2编译使用从source_code1构建的ccache,当我删除并重新创建相同的工作区时,我需要使用已经构建的ccahe进行编译。欢迎任何实现同样目标的建议!

我现在在上述两种情况下看到的结果是,尽管ccache已经构建,但它从未使用过,或者在ccache中没有命中,每当使用新的工作空间时,它都会不断构建。如果我只是清理构建并在同一工作空间中重新编译,而不删除任何早期的源代码(home/user/source_code1),然后进行ccache编译,并且有一些命中率有助于减少构建时间。

知道为什么每当使用全新的工作空间时,我都看不到任何ccache点击量吗?

我总是增加"ccache miss",而不是"缓存命中(直接)或缓存命中(预处理)"。此外,"缓存命中(直接)"始终为0。

我设置了以下变量。

CCACHE_BASEDIR=/home/user
USE_CCACHE=1
CCACHE_DIR=/home/user/ccache
CCACHE_SLOPPINESS=time_macros,file_macro

如果我这里遗漏了什么,请告诉我。

也许您需要将ccache替换为3.x或更高版本
据我所知,android源代码树中包含的ccache是2.4版本。
CCACHE_BASEDIR在ccache3.x中工作,您可以参考下面的链接。

将CCACHE_BASDIR设置为在树之间共享对象文件

Andorid构建脚本将使用他们预先构建的工具,而不是安装在系统中的工具。

相关内容

  • 没有找到相关文章

最新更新