Я новичок в boost.build, и хотя bjam довольно прост в использовании для большинства задач компиляции, я не понял, как сделать что-то, что должно быть действительно простым: установить мое приложение в систему.
Скажем, у меня есть очень простой проект с двумя файлами в дереве (помимо Jamroot).
hello.cpp : программа на C++ сообщает, что печатает содержимое /etc/hello.conf
hello.conf : hello.conf по умолчанию
Что я хочу сделать, так это:
- иметь возможность скомпилировать и связать hello.cpp без установки чего-либо в масштабе всей системы
- when called with an install target (and only then) :
- copy executable hello to /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.
Для меня очень важно разделить этапы установки и сборки, так как этап сборки должен выполняться с правами пользователя, а этап установки — с правами администратора.