Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CMAKE RPATH with packaging

Tags:

cmake

rpath

I am creating package using cmake

I am having following structure

bin/
    bin1
lib/

    lib1
    lib2

Where lib1 and lib2 are external dynamic library. How can I set RPATH so it will automatically link with lib1 and lib2 ?

like image 562
Vivek Goel Avatar asked Dec 06 '11 14:12

Vivek Goel


1 Answers

I've been fussing with cmake on this as well. Cmake uses CMAKE_SKIP_BUILD_RPATH for linking at build time and CMAKE_INSTALL_RPATH to set the rpath used when the install target is built. cmake has some good info on using its rpath mechanism: http://www.cmake.org/Wiki/CMake_RPATH_handling

An alternative method is to use ldconfig. I notice that when you build svn(1.6.17), it's make install target invokes ldconfig to set rpath.

take a look at $ORIGIN as you'll need that in your rpath to keep it relative to the binary rather than relative to $PWD.

Building a simple (hello-world-esque) example of using ld's option -rpath with $ORIGIN

like image 109
Phillip Whoriskey Avatar answered Sep 28 '22 05:09

Phillip Whoriskey