[CMake] new rpath support

Zachary Pincus zpincus at stanford.edu
Mon Feb 27 11:45:42 EST 2006


Thanks Brad for setting my head straight with regard to this (as  
usual). This is the problem with such a nice cross-platform  
development tool: though I've never developed on windows (or  
extensively on linux), CMake makes it so easy to get 95% of the way  
to a cross-platform build solution.

I thank everyone for help with the last 5% of corner cases. (And for  
CMake, without which I'd have never even tried to make things build  
on windows.)

>> (3) Install the library in a location with a known relative path  
>> to  the python modules. On OS X, link the *runtime library* with  
>> an  install_name containing this relative path. On other unix,  
>> link each  *python module* with an rpath containing that relative  
>> path. (Is this  right??) On windows... is this even possible?
>
> This may work on OSX if the install_name uses the @executable_path  
> feature but it will not work in general.  RPATH entries cannot be  
> relative paths because they would be interpreted relative to the  
> current working directory, not the executable or module location!

Of course, silly me. I guess I could always cwd() before loading the  
module to make this work, but that's piling ugliness on ugliness.  
Better to not go there.

> The solution on Windows is just to put the runtime DLLs in the same  
> directory as the modules that need them.

Is this the case even if the modules aren't in the same directory as  
the python executable? The python executable will be in one place,  
and the python module dlls will be in another, and the runtime dll  
will be in the same directory as the modules. The windows loader will  
then know to find the runtime in the directory that the modules are in?

Thanks again,

Zach


> -Brad
> _______________________________________________
> CMake mailing list
> CMake at cmake.org
> http://www.cmake.org/mailman/listinfo/cmake



More information about the CMake mailing list