<br>Please see my recent post on the cmake list about the possibility to specify library paths etc. to the cmake build that will automatically follow through into all the cmake Module paths.  In most cases, even if you configure the build for a given port (some linux variant or whatever), all the cmake Modules, like FindVTK.cmake, have hard-coded search paths for the library.  We really need a way to specify those module search paths during the porting process (ie, arguments to Cmake).<br>
<br>Regards,<br>Darren<br><br><br><br><br><div class="gmail_quote">On Tue, Oct 21, 2008 at 3:02 PM, Adam Williamson <span dir="ltr">&lt;<a href="mailto:awilliamson@mandriva.com">awilliamson@mandriva.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">On Tue, 2008-10-21 at 17:50 -0400, Sebastien BARRE wrote:<br>
<br>
&gt; Several VTK versions should be able to co-exist together, and this is<br>
&gt; much easier and user-friendly to have them self-contained in their<br>
&gt; own installation tree than mixing them all over. Granted, Linux and<br>
&gt; its various package managers support different versions of the same<br>
&gt; software, but different distributions enforce different file<br>
&gt; structure: there is no reason to pick one over the other. we also<br>
&gt; need to be somehow consistent across all our platforms (Unix, Win32,<br>
&gt; MacOSX, etc); VTK is such a large system, and we bundle so many<br>
&gt; third-party libraries that we recommend installing in a &quot;vtk&quot; subdir,<br>
&gt; not in /usr.<br>
<br>
</div>I commiserate with your position of having to support crappy platforms,<br>
then. ;) I will keep our changes in parallel. On a sane operating<br>
system, they all make sense ;)<br>
<br>
Just to note, in Linux, this does not at all compromise the possibility<br>
of having multiple VTK versions installed, as the directory where the<br>
TCL bits wind up is versioned like the others:<br>
<br>
/usr/lib/tcl8.6/vtk-5.2<br>
<br>
so, of course, there could also be a /usr/lib/tcl8.6/vtk-4.3 and<br>
a /usr/lib/tcl8.6/vtk-6.0 . If you wanted.<br>
<div class="im"><br>
&gt; We can&#39;t make changes to accommodate a single distribution<br>
&gt; (Fedora/Mandriva) which decided to force its own Tcl/Tk to look at a<br>
&gt; specific place; a fix already exists which is configuring your<br>
&gt; TCLLIBPATH to point at third-party Tcl packages (I assume they didn&#39;t<br>
&gt; break *that*). Furthermore, your changes are very extensive are were<br>
&gt; not tested on Win32 or MacOSX platforms.<br>
<br>
</div>No, of course not, you can always set TCLLIBPATH to whatever you like.<br>
This only concerns the system default.<br>
<div class="im"><br>
&gt; Thanks<br>
&gt;<br>
&gt; Quick answers to some of your questions though:<br>
&gt;<br>
&gt; &gt;VTK_INSTALL_LIB_DIR seems to lose the prefix, so you get<br>
&gt; &gt;/lib/vtk-5.2 , not /usr/lib/vtk-5.2 .<br>
&gt;<br>
&gt; Yes, this is definitely on purpose, all VTK_INSTALL_*_DIR are<br>
&gt; specified relative to the CMAKE_INSTALL_PREFIX variable, and should<br>
&gt; not be hard-coded.<br>
<br>
</div>Yes, I figured that. I don&#39;t really remember where I was in the process<br>
when I wrote that mail. I now have<br>
{@CMAKE_INSTALL_PREFIX@@VTK_INSTALL_LIB_DIR@} in the patch in question.<br>
<div class="im"><br>
&gt; &gt;That patch also does something else useful: it makes it look for<br>
&gt; &gt;         libvtkFOO.so.5.2<br>
&gt; &gt;rather than<br>
&gt; &gt;         libvtkFOO.so<br>
&gt; &gt;on Mandriva (and probably other distributions), the unversioned .so<br>
&gt; &gt;files usually go in -devel packages.<br>
&gt;<br>
&gt; We can&#39;t change that behavior either for backward compatibility reasons.<br>
&gt; Libraries are indeed versioned already, (you should have in your<br>
&gt; build tree something like libvtkCommon.so, symlink to<br>
&gt; libvtkCommon.so.5.2, symlink to libvtkCommon.so.5.2.0, etc);<br>
<br>
</div>Yes. As I said, the point of using the versioned ones rather than the<br>
unversioned ones is that on most Linux distributions, unversioned libs<br>
are considered development stuff, and whatever package you put them in<br>
winds up with a ton of development dependencies. But if there&#39;s a reason<br>
you can&#39;t do this, that&#39;s fine. Just wanted to mention it.<br>
<br>
In our packages, the unversioned .so files wind up in libvtk-devel and<br>
tcl-vtk-devel (and python-vtk-devel).<br>
<div class="im"><br>
&gt; &gt;CMakeLists.txt also assumes /(prefix)/lib for libraries:<br>
&gt; &gt;<br>
&gt; &gt;    SET(VTK_INSTALL_LIB_DIR<br>
&gt; &gt;     ${VTK_INSTALL_ROOT}/lib/vtk-${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}<br>
&gt; &gt;<br>
&gt; &gt;This isn&#39;t correct on several Linux distros, which use /usr/lib64 for<br>
&gt; &gt;the x86-64 architecture.<br>
&gt;<br>
&gt; Here you are assuming VTK_INSTALL_ROOT = /usr.<br>
&gt; This is not what we intend, again so that we don&#39;t erase other<br>
&gt; libraries in the installation process (remember, we build tons of<br>
&gt; utilities libs in VTK, like libjpeg, libtiff, libpng, ffmpeg, etc,<br>
&gt; and even though we &quot;mangle&quot; and prefix them, you never know).<br>
&gt; Again, we favor self-contained VTK installation trees, say,<br>
&gt; VTK_INSTALL_ROOT = /opt/vtk5.2<br>
<br>
</div>Still, I think it would be correct in this instance to prefix the<br>
libdir. But it&#39;s not a massively important point I guess.<br>
<div class="im"><br>
&gt; &gt;because having the shared libraries in a subdirectory of /usr/lib<br>
&gt; &gt;doesn&#39;t work by default - it&#39;s not in ldconfig&#39;s path, so ldconfig<br>
&gt; &gt;doesn&#39;t find them, so vtk doesn&#39;t run. How is this expected to work,<br>
&gt; &gt;normally?<br>
&gt;<br>
&gt; By modifying your LD_LIBRARY_PATH, or using static binaries, or<br>
&gt; creating launchers using KWSys, etc.<br>
<br>
</div>Again, it is therefore clear that we have different ideal usage<br>
scenarios :). Generally, in Mandriva, we want packages to install and<br>
work immediately, and fit into the system environment as much as<br>
possible. This is obviously not your intention upstream, so we will<br>
maintain our changes in parallel.<br>
<font color="#888888">--<br>
adamw<br>
</font><div><div></div><div class="h5"><br>
_______________________________________________<br>
This is the private VTK discussion list.<br>
Please keep messages on-topic. Check the FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
</div></div></blockquote></div><br>