私はboost.build初心者ですが、bjamはほとんどのコンパイルタスクで非常に使いやすいですが、システムにアプリケーションをインストールするという、本当に簡単なはずのことを行う方法がわかりませんでした。
ツリーに 2 つのファイル (Jamroot 以外) を持つ非常に単純なプロジェクトがあるとします。
hello.cpp : /etc/hello.conf の内容を出力すると言う C++ プログラム
hello.conf : デフォルトの hello.conf
私がやりたいことは次のとおりです。
- システム全体に何もインストールせずに、hello.cpp をコンパイルしてリンクできるようにする
- インストール ターゲットで呼び出された場合 (その場合のみ):
- 実行可能な hello を /usr/bin にコピーします
- hello.conf を /etc にコピーします。
以下は、私が書き始めた bjam です。
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 を入力するたびにではなく、明示的にインストール ターゲットを呼び出すときにのみこれを実行したいのです。
構築段階はユーザー権限を使用して実行し、インストール段階は管理者権限を使用して実行する必要があるため、インストール段階と構築段階を分離することは非常に重要です。