1

メイン バイナリが依存する多くのライブラリを含む大規模なプロジェクトがあります。これをランチパッドで処理する適切な方法を知りたいので、ライブラリをビルドしてからメインバイナリをビルドし、ppa で各 debian パッケージを提供できます。

問題のプロジェクトは lp:snapcpp ( https://code.launchpad.net/snapcpp/ ) で確認できます。snacpp には、ライブラリ「libQtCassandra」を介して Cassandra データベースに接続する C++ CMS システム「snapwebsites」があります。「snapwebsites」は、libltd などと同様に、libQtCassandra に依存しています。これらの各ライブラリは、個別の debian パッケージ自体である必要があります。各プロジェクトには独自の「debian」フォルダーがありますが、現時点ではルートの debian フォルダーはありません。

ルート debian フォルダーを必要とするランチパッドでこれを機能させるにはどうすればよいですか? 各依存関係をリストするルートで debian プロジェクトを構築する必要がありますか? そうでない場合、bzr を使用して各プロジェクトを独自のブランチに分割する必要がありますか? 後者を行う場合、ビルドの依存関係 deb を呼び出すにはどうすればよいですか (つまり、snapwebsites のレシピに、libQtCassandra とその依存関係パッケージをインストールする必要があることを伝えるにはどうすればよいでしょうか)。

ありがとう!

4

1 に答える 1

1

私が独自に発見した解決策は、レシピ コマンド「nest-part」を利用することでした。これにより、bzr ブランチから 1 つのフォルダーを取り出してプロジェクトにマップすることができます。ただし、ブランチのルートにマップすることはできません。

私がしたことは、パッケージ情報のみを含むブランチと、「add_subdirectory(src)」を含む CMakeLists.txt ファイルを作成することでした。次に、メイン コード ブランチ (lp:snapcpp) からマップしますが、問題のプロジェクトのみです。たとえば、snapcpp の「controlled_vars」プロジェクトのレシピは次のとおりです。

# bzr-builder format 0.3 deb-version {debupstream}+{revno}
lp:~snapcpp/snapcpp/controlled_vars
nest-part src lp:snapcpp controlled_vars src

サブプロジェクトごとにパッケージ情報を含むブランチが必要ですが、これは 1 回限りのセットアップの問題です。

于 2013-12-05T04:49:51.443 に答える