Я новичок в boost.build, и хотя bjam довольно прост в использовании для большинства задач компиляции, я так и не понял, как сделать что-то, что должно быть действительно простым: установить мое приложение в систему.
Скажем, у меня очень простой проект с двумя файлами в дереве (кроме Jamroot).
hello.cpp: программа на C ++ сообщает, что печатает содержимое /etc/hello.conf
hello.conf: по умолчанию hello.conf
Что я хочу сделать, это:
- иметь возможность компилировать и связывать hello.cpp без установки всего системного
- при вызове с целью установки (и только потом):
- скопировать исполняемый файл hello в / usr / bin
- скопировать hello.conf в /etc.
Ниже бхам, который я начал писать:
exe hello : hello.cpp ;
alias install : install-bin install-etc ;
install install-bin : hello : <location>/usr/bin ;
install install-etc : hello.conf : <location>/etc ;
Моя проблема в том, что я как пользователь не могу писать в / etc или / usr / bin и хочу, чтобы это делалось только при явном вызове цели установки, а не всякий раз, когда я набираю bjam.
Для меня очень важно разделить этапы установки и сборки, поскольку этап сборки должен выполняться с использованием прав пользователя, а этап установки с использованием прав администратора.