LinuxForum.Fans
Тема

cmake, slim переопределение переменных - проблема с переменной MANDIR.

Автор: yars 9 сообщений 4512 просмотров
#277003

Доброго времени!
Собираю SLiM. Приглянулся, и к нему нашлась неплохая тема :) Но - маны при сборке попадают не в $PKG/usr/man, а в $PKG/usr/share/man. Что-то я упускаю...
Вот кусок слакбилда:

text
cmake \
  -DCFLAGS="$SLKCFLAGS" \
  -DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
  -DUSE_PAM=${USE_PAM} \
  -DCMAKE_INSTALL_PREFIX=/usr \
  -DCMAKE_BUILD_TYPE=$ARCH-slackware-linux \
  -DMANDIR:PATH=/usr/man

make install DESTDIR=$PKG

С этой стороны все как будто хорошо, чему в подтверждение -

text
grep -e MANDIR CMakeCache.txt 
MANDIR:PATH=/usr/man

Что же я упускаю?

#277022

-DMAN_INSTALL_DIR=/usr/man \

#277023

Таки нет в CMakeLists.txt такой переменной.
Нашел:

text
zcat mandir.fix.patch.gz 
*** ./CMakeLists.txt.orig    2012-09-29 07:43:20.287147436 +0400
--- ./CMakeLists.txt    2012-09-29 07:43:09.370146787 +0400
***************
*** 24,30 ****
  set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Installation Directory")
  set(PKGDATADIR "${CMAKE_INSTALL_PREFIX}/share/slim")
  set(SYSCONFDIR "/etc")
! set(MANDIR "${CMAKE_INSTALL_PREFIX}/share/man")
  
  set(SLIM_DEFINITIONS)
  if(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD" OR
--- 24,30 ----
  set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Installation Directory")
  set(PKGDATADIR "${CMAKE_INSTALL_PREFIX}/share/slim")
  set(SYSCONFDIR "/etc")
! set(MANDIR "${CMAKE_INSTALL_PREFIX}/share/man" CACHE PATH "Installation Directory")
  
  set(SLIM_DEFINITIONS)
  if(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD" OR
#277028

Ссылка в первом посте, безусловно, хороша :-)

Вади́м Вита́льевич Мотылё́в, более известный под сценическим псевдонимом Slim (рус. Слим); род. 21 января 1981, Москва — популярный российский рэп-исполнитель, битмейкер и продюсер, участник групп «CENTR», «Дымовая Завеса».
#277030

Ой :) Спасибо, поправил.

#277037

Это ведь вроде встроенная в сам cmake переменная, как в qmake встроен install_root и другие Хотя может и ошибаюсь

#277196

Продолжаю. Возникла проблема: после логина интерфейс англоязычный, но locale показывает, что локаль русская. Интересно...

#277731

"yars" написал:
text

- set(MANDIR "${CMAKE_INSTALL_PREFIX}/share/man")
+ set(MANDIR "${CMAKE_INSTALL_PREFIX}/share/man" CACHE PATH "Installation Directory")

А стоит ли оно того? Ведь в Slackware /usr/share/man традиционно симлинк на /usr/man, и, если ничего не делать, то файлы из непатченного пакета всё равно попадут в /usr/man/, или я что-то неправильно путаю?
#277732

Да нет, все правильно. Но, люблю, когда все как положено. А то мало ли... ;)
UPD: Ну, и для прокачки "скилла" :)
UPD2: Плюс, в слакбилде есть такой момент:

text
( cd $PKG/usr/man || exit 1
  find . -type f -exec gzip -9 {} \;
  for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
)

Проще, конечно, слакбилд поправить, но... пусть будет.

Войдите или зарегистрируйтесь, чтобы ответить.