I've got a project with 21 shared libraries and a number of executables. The shared libraries end up in their various directories but on Linux not-installed binaries can still be run because the path to the shared libraries are "burned in" to the shared libraries and executables as rpaths.

The exact same project build on Windows doesn't work as well because the shared libraries are not found. For the short term solution we have chosen to set up the PATH variable prior to starting visual studio from a command prompt, e.g

set PATH=%PATH%;C:\path\to\myproject_build\module1\src\Debug
set PATH=%PATH%;C:\path\to\myproject_build\module2\src\Debug
set PATH=%PATH%;C:\path\to\myproject_build\module3\src\Debug
set PATH=%PATH%;C:\path\to\myproject_build\module4\src\Debug
set PATH=%PATH%;C:\path\to\myproject_build\module5\src\Debug
set PATH=%PATH%;C:\path\to\myproject_build\module6\src\Debug
...

It would be very handy and get us closer to common behaviour if CMake could provide a crutch of some kind in the absence of rpath support in Windows .dlls.

First, it would be handy if the project CMake output included a .cmd script for setting all the paths above. This would allow you to start a Visual Studio (or Windows SDK) command shell and get the environment right by running e.g. "C:\path\to\myproject_build\setup_build_paths_debug.cmd".

You could use the above solution with Visual Studio if you run the script before opening visual studio from a command prompt. A supplement would be to have CMake generate an appropriate environment setting for the debugging section of all executables. This way you can start visual studio without any tricks and still get it right most of the time. It would also (unlike the former solution) work correctly if you switch between build types (e.g Debug, RelWithDbg, Release).

Does something like this exist? Any alternative solutions out there. Obviously I can't be the first cmake user with this problem. I've found this stackoverflow question which is related but not identical, but no convincing solution:

http://stackoverflow.com/questions/1005901/how-to-set-path-environment-variable-using-cmake-and-visual-studio-to-run-test


Thanks,

Thomas

_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to