[ExternalData] updating content does not trigger staging of linked content

I’m trying to use the ExternalData module. So far it works very well; with a declaration of ExternalData_LINK_CONTENT the data marked with DATA{...} in the CMakeLists.txt files gets staged for uploading by moving it to .ExternalData_%(algo)_%(hash) file. Perfect, just as advertised.

Now I’m exploring what happens when data gets updated in-place. So I have an “old” datafile.bin.sha512 file whose content is available from the data store, and put a new version of datafile.bin next to it.

I was expecting that this new file would be detected when I issue make, and converted to linked content automatically, but I need to run make rebuild_cache for that to happen. Is there any way to make the build system pick up on the new content without having to run make rebuild_cache?

No, because then there’d be dependencies to non-existent files which is usually a sign of a broken build graph. Rerunning CMake to rehash new data files is part of ExternalData’s intended workflow.

1 Like

Ok @ben.boeckel thank you for clearing that up.