Можно ли прочитать значение переменной CMAKE_INSTALL_PREFIX в postinst? - PullRequest
0 голосов
/ 19 марта 2019

Просто хотел спросить, можно ли прочитать значение переменной CMAKE_INSTALL_PREFIX в postinst сценарии? Цель состоит в том, чтобы иметь сценарий postinst для чтения файла в папке ${CMAKE_INSTALL_PREFIX}/share/myapp и на основе содержимого прочитанного файла создать файл в папке ${CMAKE_INSTALL_PREFIX}/etc/myapp. Я бы хотел не полагаться на абсолютные пути.

Заранее спасибо!

Редактировать

Звонок env с postinst дает хорошую информацию:

DPKG_MAINTSCRIPT_DEBUG=0
DPKG_COLORS=never
DPKG_MAINTSCRIPT_NAME=postinst
DPKG_MAINTSCRIPT_PACKAGE=myapp
DPKG_RUNNING_VERSION=1.19.0.5
DPKG_FRONTEND_LOCKED=true
DPKG_ROOT=
DPKG_MAINTSCRIPT_ARCH=armhf
DPKG_ADMINDIR=/var/lib/dpkg
DPKG_MAINTSCRIPT_PACKAGE_REFCOUNT=1

DPKG_ROOT это, наверное, то, что мне нужно. Кажется, что CMAKE_INSTALL_PREFIX не имеет отношения к postinst.

1 Ответ

2 голосов
/ 08 апреля 2019

Вообще говоря, в момент выполнения postinst переменных CMake нет (и они определенно никогда не будут в выводе env). Таким образом, способ сделать то, что вы хотите, - сгенерировать ваш postinst скрипт (из файла postinst.in) с использованием функции configure_file. В файле шаблона вы можете ссылаться на переменные CMake, поэтому при визуализации ваш скрипт вместо этого будет содержать «жестко закодированные» литералы. И это вполне нормально.

Но примите во внимание следующее:

...