CMake-ковский CPack в Debian “wheezy” не справляется с созданием deb-пакета, если в RPATH прописан $ORIGIN. CMake вываливается с ошибкой вида:
$ORIGIN используется в RPATH (...) и соответствующий каталог невозможно определить из-за отсутствия подкаталога DEBIAN в корне дерева сборки пакетаИли, для CLANG=C:
CPackDeb: dpkg-shlibdeps: dpkg-shlibdeps: warning: $ORIGIN is used in RPATH of ... and the corresponding directory could not be identified due to lack of DEBIAN sub-directory in the root of package's build treeБеда в том, что каталог "debian" есть, но название его состоит из маленьких букв, а не больших, как того хочет dpkg-shlibdeps.
Есть простенький патч для модуля CPackDeb.cmake, решающий эту проблему.
Однако, если нет возможности пропатчить CMake, то обойти проблему можно следующим, хоть и довольно грязным, костылем: прописать установку какого-нибудь файла, можно даже пустого, в каталог /DEBIAN:
install(FILES dirty_fix.txt DESTINATION /DEBIAN)Вполне допускаю, что на основе этого костыля можно соорудить костыль поизящней, например удалять файл во время сборки, чтобы он не попадал в deb-пакет. В этом смысле совет выше можно рассматривать как направление, куда в дальнейшем копать.
Ключевые слова: Хозяйке на заметку, CMake, deb, Linux
0 коммент.:
Подписаться на:
Комментарии к сообщению (Atom)