Меня интересует строка вроде:
add_link_options(-Wl,-rpath=$ORIGIN)
Однако в исполняемом файле $ расширяется до $$.Например,
15:19:52 Debug # readelf -a mybinary | egrep -i runpath
0x000000000000001d (RUNPATH) Library runpath: [$$ORIGIN]
Этот эффект можно получить с помощью patchelf
после сборки, но я хотел бы иметь его в самом cmake, если это возможно.
Я пробовал что-то вроде \ $,$$ и "$ ORIGIN" без везения и не могут думать ни о чем, кроме 50 ¢.
Это с cmake 3.13.1.
Редактировать: Подробный вывод cmake:
/usr/bin/c++ -g "-Wl,-rpath=\$$ORIGIN" CMakeFiles/mybinary.dir/....
Edit2: это работает:
set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} "-Wl,-rpath=$ORIGIN")
...
/usr/bin/c++ -g -Wl,-rpath=$ORIGIN CMakeFiles/mybinary.dir/...