Optimising yocto / bitbake build performance / time using ASSUME_PROVIDED

If you are compiling core-sato-image yocto root filesystem, then you might have observed that it compile lot of development environment ( ubuntu ) specific packages which are required to compile the filesystem. So, if you are compiling the filesystem again and again during the development, it may take lot of time to compile those native packages.

So this can be avoided by adding ASSUME_PROVIDED in the meta/conf/bitbake.conf.
For example, you want to save time on compiling git everytime, since you already have git & uboots mkimage installed on your ubuntu, then you can add an option as,

ASSUME_PROVIDED = "\
    git-native \
    u-boot-mkimage \
    "

As per Yocto project reference manual ASSUME_PROVIDED is defined as,

ASSUME_PROVIDED – Lists recipe names (PN values) BitBake does not attempt to build. Instead, BitBake assumes these recipes have already been built.

In OpenEmbedded-Core, ASSUME_PROVIDED mostly specifies native tools that should not be built. An example is git-native, which when specified, allows for the Git binary from the host to be used rather than building git-native.