простая установка с использованием BJAM - PullRequest
1 голос
/ 29 октября 2009

Я новичок в 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.

Для меня очень важно разделить этапы установки и сборки, поскольку этап сборки должен выполняться с использованием прав пользователя, а этап установки с использованием прав администратора.

1 Ответ

3 голосов
/ 29 октября 2009

То, что вы написали, выглядит хорошо, за исключением двух вопросов. Во-первых, последняя строка должна выглядеть следующим образом:

install install-etc : hello.conf : <location>/etc ;
explicit install install-bin install-etc ;

Во-вторых, псевдоним install должен относиться как к install-bin, так и к install-etc. Когда вы вносите эти изменения, все работает?

...