[vtk-developers] VTK ExternalData default object store (was: vtk_common dashboard script)

Brad King brad.king at kitware.com
Tue May 21 10:46:51 EDT 2013


On 05/21/2013 09:35 AM, Marcus D. Hanwell wrote:
> The expectation is also that data is persistent if we don't change
> the default perhaps we can at least add a warning at configure time to
> advise that data will be downloaded multiple times (the default is
> each build tree?) I would love to see a default parallel to the source
> tree, like VTKExternalData or something, but it seems like you are
> strongly opposed to that.

My original statement was about a general expectation of projects
staying isolated in their source/build tree until "make install" time.
CMake used to have tests that touched the $HOME directory and we got
complaints so we changed the tests to run with a custom HOME env var
pointing at the build tree.

On 05/21/2013 10:34 AM, David Cole wrote:
> Additionally, in favor of a parallel sibling directory to the source 
> tree... I think of this as a replacement for a VTKData checkout, which 
> has traditionally always been recommended to be a parallel sibling 
> directory.
> 
> Wasn't VTK and VTKData in the same parent directory the recommended 
> structure? And didn't the common script do a checkout of VTKData such 
> that they ended up that way?

Yes, but both of those required the user to do something local besides
checkout and build VTK: either checkout VTKData manually or write a
dashboard script referencing vtk_common.cmake.

> Seems completely reasonable to me to say: the default is *here*, and 
> it's a cache setting... if you want it somewhere else, change the cache 
> setting.

That requires reading the documentation.  A user or automatic script
that is not familiar with VTK in particular may not do that.

> What I don't want is *this*:
> to have multiple build trees of VTK going on my laptop, and to 
> *accidentally* get multiple copies of VTKData and VTKLargeData just 
> because I left something at its default value.

Even with the sibling directory you could still end up with multiple
copies if you have VTK sources in separate directories.

A similar discussion a few years ago in ITK led to this feature:

 http://itk.org/gitweb?p=ITK.git;a=commitdiff;h=d80e341a

Just add

 export ExternalData_OBJECT_STORES=$HOME/.ExternalData

to your .bashrc and all your new ITK and VTK build trees will use
that for persistent data.

-Brad



More information about the vtk-developers mailing list