Hi,

I'd like to set up a kind of meta super project, which builds a bunch of 
subprojects, which contains executable and shared libraries.
These subprojects come from different repositories, mostly git repositories.

AFAIK I can basically do this using the ExternalProject_add() feature of 
cmake, it will get the sources, configure and build them.

So far so good.


Now, what do I do with installing ?
Usually the external projects are installed at the end of their build step at 
make-time, and usually somewhere in the build tree.

But finally I'd like to have these projects installed into a proper system-
wide directory.

If I simply do install(DIRECTORY ... ) in the "superproject", stuff which 
depends on CMAKE_INSTALL_PREFIX, like e.g. RPATH will be wrong after the final 
install step (since the RPATHs will still point to the install locations in 
the build tree).

If I put the final install location as install location in the 
ExternalProject_Add() call, I will have to build with permissions to install 
into the final install directory, which is generally not the case. E.g. to 
install in /opt/ I would basically have to build as root (or change the 
permissions of /opt/, but that's not possible on a standard system).

I could maybe also setuid cmake root (ugly too).

Always set a relative RPATH always using $ORIGIN ?
(but this will be kind of hard to enforce)

Any other ideas ?
Am I missing something ?
Any ideas how support for this could be added in a clean way ?

Alex
_______________________________________________
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