<div dir="ltr"><div>Since I use both ITK and VTK, I use the .bashrc approach that keeps all of my external data in one place.<br><br></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, May 21, 2013 at 10:59 AM, David Cole <span dir="ltr"><<a href="mailto:dlrdave@aol.com" target="_blank">dlrdave@aol.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">-----Original Message-----<br>
From: Brad King <<a href="mailto:brad.king@kitware.com" target="_blank">brad.king@kitware.com</a>><br>
To: David Cole <<a href="mailto:dlrdave@aol.com" target="_blank">dlrdave@aol.com</a>><br>
Cc: vtk-developers <<a href="mailto:vtk-developers@vtk.org" target="_blank">vtk-developers@vtk.org</a>><br>
Sent: Tue, May 21, 2013 10:48 am<br>
Subject: Re: [vtk-developers] VTK ExternalData default object store (was: vtk_common dashboard script)<br>
<br>
<br>
On 05/21/2013 09:35 AM, Marcus D. Hanwell wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
The expectation is also that data is persistent if we don't change<br>
the default perhaps we can at least add a warning at configure time to<br>
advise that data will be downloaded multiple times (the default is<br>
each build tree?) I would love to see a default parallel to the source<br>
tree, like VTKExternalData or something, but it seems like you are<br>
strongly opposed to that.<br>
</blockquote>
<br>
My original statement was about a general expectation of projects<br>
staying isolated in their source/build tree until "make install" time.<br>
CMake used to have tests that touched the $HOME directory and we got<br>
complaints so we changed the tests to run with a custom HOME env var<br>
pointing at the build tree.<br>
<br>
On 05/21/2013 10:34 AM, David Cole wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Additionally, in favor of a parallel sibling directory to the source<br>
tree... I think of this as a replacement for a VTKData checkout, <br>
</blockquote>
which<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
has traditionally always been recommended to be a parallel sibling<br>
directory.<br>
<br>
Wasn't VTK and VTKData in the same parent directory the recommended<br>
structure? And didn't the common script do a checkout of VTKData such<br>
that they ended up that way?<br>
</blockquote>
<br>
Yes, but both of those required the user to do something local besides<br>
checkout and build VTK: either checkout VTKData manually or write a<br>
dashboard script referencing vtk_common.cmake.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Seems completely reasonable to me to say: the default is *here*, and<br>
it's a cache setting... if you want it somewhere else, change the <br>
</blockquote>
cache<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
setting.<br>
</blockquote>
<br>
That requires reading the documentation.  A user or automatic script<br>
that is not familiar with VTK in particular may not do that.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
What I don't want is *this*:<br>
to have multiple build trees of VTK going on my laptop, and to<br>
*accidentally* get multiple copies of VTKData and VTKLargeData just<br>
because I left something at its default value.<br>
</blockquote>
<br>
Even with the sibling directory you could still end up with multiple<br>
copies if you have VTK sources in separate directories.<br>
<br>
A similar discussion a few years ago in ITK led to this feature:<br>
<br>
<a href="http://itk.org/gitweb?p=ITK.git;a=commitdiff;h=d80e341a" target="_blank">http://itk.org/gitweb?p=ITK.<u></u>git;a=commitdiff;h=d80e341a</a><br>
<br>
Just add<br>
<br>
export ExternalData_OBJECT_STORES=$<u></u>HOME/.ExternalData<br>
<br>
to your .bashrc and all your new ITK and VTK build trees will use<br>
that for persistent data.<br>
<br>
-Brad<br>
______________________________<u></u>_________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/<u></u>opensource/opensource.html</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.vtk.org/mailman/listinfo/vtk-developers" target="_blank">http://www.vtk.org/mailman/<u></u>listinfo/vtk-developers</a><br>
<br>
<br>
<br>
<br></div></div>
OK.<br>
<br>
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*.<br>
<br>
If you would just use a default value in $HOME or %USERPROFILE% instead, then *nobody* would have to to work to achieve non-duplication.<br>
<br>
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.<br>
<br>
So I guess I'm puzzled by the default value.<br>
<br>
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.<br>
<br>
<br>
Thanks,<div class="HOEnZb"><div class="h5"><br>
D<br>
<br>
______________________________<u></u>_________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/<u></u>opensource/opensource.html</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.vtk.org/mailman/listinfo/vtk-developers" target="_blank">http://www.vtk.org/mailman/<u></u>listinfo/vtk-developers</a><br>
<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Unpaid intern in BillsBasement at noware dot com<br>
</div>