[vtk-developers] VTK ExternalData default object store (was: vtk_common dashboard script)
David Cole
dlrdave at aol.com
Tue May 21 10:59:40 EDT 2013
-----Original Message-----
From: Brad King <brad.king at kitware.com>
To: David Cole <dlrdave at aol.com>
Cc: vtk-developers <vtk-developers at vtk.org>
Sent: Tue, May 21, 2013 10:48 am
Subject: Re: [vtk-developers] VTK ExternalData default object store
(was: vtk_common dashboard script)
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
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Follow this link to subscribe/unsubscribe:
http://www.vtk.org/mailman/listinfo/vtk-developers
OK.
But with your solution, *everybody* has to do work to achieve
non-duplication of very large data files when they do multiple builds
of VTK. *Everybody*.
If you would just use a default value in $HOME or %USERPROFILE%
instead, then *nobody* would have to to work to achieve non-duplication.
And I thought the whole main point of ExternalData was to download each
item needed *exactly* *once* and to enable non-duplication of each item.
So I guess I'm puzzled by the default value.
But if that's the way it is, I'll set up my machines so that at least I
don't have duplicated data files.
Thanks,
D
More information about the vtk-developers
mailing list