<div class="gmail_quote">On Mon, Mar 23, 2009 at 5:47 PM, Mark Sciabica <span dir="ltr"><<a href="mailto:msciabica@itracs.com">msciabica@itracs.com</a>></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;">
Hi Robert,<br>
<br>
Sorry, I thought it would have been clear from my first e-mail. I'll try again.<br>
<br>
FileUtils.cpp in osgDB has this code.<br>
<br>
static void appendInstallationLibraryFilePaths(osgDB::FilePathList& filepath)<br>
{<br>
#ifdef OSG_DEFAULT_LIBRARY_PATH<br>
<br>
   // Append the install prefix path to the library search path if configured<br>
   filepath.push_back(ADDQUOTES(OSG_DEFAULT_LIBRARY_PATH));<br>
#endif<br>
}<br>
<br>
osgDB's CMakeLists.txt has this line:<div class="im"><br>
<br>
   ADD_DEFINITIONS(-DOSG_DEFAULT_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib${LIB_POSTFIX}/${OSG_PLUGINS})<br>
<br></div>
This means that the install path configured at build time will be searched for plugins. This does not make sense for prebuilt  binaries because the install location will likely be different on different machines. I propose removing the function appendInstallationLibraryFilePaths, and also the line in CMakeLists since it is only this function that makes use of it.</blockquote>
<div><br>This is kinda dangerous too.  What happens if:<br><br>1. User installs OSG 2.6 to /usr/local/OSG<br>2. User is happy<br>3. One day user decides to download OSG 2.8<br>4. User decides to move /usr/local/OSG => /usr/local/OSG-2.6<br>
5. User compiles OSG 2.8 and installs to /usr/local/OSG again<br>6. User is happy but if they go to run their old OSG 2.6 build what happens?  My guess is that OSG 2.8 libraries are found.<br><br>What is ${LIB_POSTFIX} above.  Is this supposed to be to facilitate debug builds?<br>
<br>Is it possible to somehow find the location of "osgDB.dll" or "libosgDB.so" within code as a way to solve the plugin loading problem.  Then you could simply append "path_to_libosgDB.so + ../lib${LIB_POSTFIX}/${OSG_PLUGINS}" to the search path.  I know you can do this with the binary that's being run (if osgviewer is used for example).  This wouldn't work for people running an OSG app in a different path that uses libosgDB however.<br>
</div></div><br>-- <br>Philip Lowman<br>