Re: Python function caching question


Richard Purdie
 

On Sun, 2020-11-22 at 19:16 -0700, Michael Callahan wrote:
I am having trouble with sstate caching of my os-release.bbappend and
am stuck. The simple example file looks like something below, where
I
am setting a variable from a computed python function. What's the
magic
to make the find_version(d) always run but do_compile to only run if
VERSION changes? I basically want something like
`find_version[nostamp]="1"` but that seems to only work for tasks.

def find_version(d):
import subprocess
cmd = "git describe --long"
return subprocess.check_output(cmd).rstrip().decode('utf-8')

VERSION = "${@find_version(d)}"
# do_compile uses $VERSION
If you set BB_DONT_CACHE = "1" in the recipe, it will force the recipe
to reparse each time. That should cause it to rerun find_version and
then change hash when the value changes. Its how SRCREV = "${AUTOREV}"
works behind the scenes.

Cheers,

Richard

Join yocto@lists.yoctoproject.org to automatically receive all group messages.