2016-12-13 1 views
1

私は、 "dep"、 "app 1"、 "app 2"の両方を開発しながら、プロジェクト "app 1"と "app 2"で使用したいC++パッケージ "dep"を開発しています。現在のワークフローは、 "アプリ1" と "アプリ2" "DEP" で行われたすべての小さな変更のための Conan.io - "python setup.py develop"と似たようなことができますか?

に "DEP" で

  • conan export、および
  • conan install --buildを呼んで構成されています。このプロセスは面倒で、たびに「dep」の完全な再構築が行われます。

    私はConanの "test_package"機能を認識していますが、プロジェクト "app 1"と "app 2"はオプションではない "dep"と同じツリーに存在する必要があります。

    Pythonのsetuptoolsでは、「python setup.py develop」を使用して、それに応じてパッケージをすぐに利用できるようにパッケージをインストールすることができます。 "app 1"と "app 2"をビルドする前に、 "dep"が更新される(変更があれば)Conanで同様のことをすることは可能ですか?

+0

「test_package」とは、app1とapp2のプロジェクトが「dep」と同じツリーに存在することを意味しています。 – drodri

+0

私は[documentation](http://conanio.readthedocs.io/en/latest/packaging/testing.html)を正しく理解していれば、 "test_package"コマンドを使って "dep"を素早く構築し、パッケージをテストすることができます「アプリ1」など)。これは私が達成したいと思っているものに近く、「dep」の変更を簡単に作成してから「app 1」をビルドし、「app 1」を実行してすべてが機能しているかどうかを確認することです。しかし、 "app 1"は、ドキュメントの例のように私の場合、 "dep"の "test_package"フォルダの中に置くことはできません。 – dragly

+1

あなたは "test_package"を誤解しているかもしれません。パッケージを作成し、パッケージの任意の数のアプリまたはテストでパッケージをテストすることができます。便利なアプリケーションを1つ作成するのではなく、すべてが適切に構築され、正しくリンクされていることをテストするだけです。 app1とapp2があなたの "製品"または有用なアプリケーションである場合、もちろんそれらは独立しているべきです。ですから、 "--build = missing"についての答えは十分に良いかもしれません。 – drodri

答えて

1

いつも--buildを発行する必要はありません。このオプションは、完全な依存関係ツリーを再構築することを強いられています。あなたが使用することができます。

$ conan install --build=missing 
or 
$ conan install --build=app1 

をかかわらずtest_packageかどうかを使用するのではなく、依存関係が再構築されることはありません。

+0

はい、それは動作しますが、手動です。私は "dep"のソースの変更を自動的に検出する方法があるのだろうかと思っています。変更があれば、 "app 1"の "dep"と "conan install --build dep"に "conan export"を行います。私はすぐに "dep"のソースの変更を見ることができるようにしたいと思います。私が "app 1"プロジェクトに "dep"のソースを組み込み、すべてを一度にビルドすれば、動作に似ています。しかし、私はこれが現在コナンの選択肢ではないかどうかは完全に理解しています。 – dragly

+1

私は、あなたがCIについて話していることが問題だと思うし、コナンはパッケージマネージャーです。多分、フローは逆になるはずです。CIは "dep"に変更があることを検出し、test_packageで "dep"の再ビルドを起動します。次に、コマンド "conan info --build-order"は、CIシステムが "dep"の依存関係を再構築する必要があるかどうかを知るのに役立ちます。 – drodri

+1

はい、私が探している自動化はCIのようなものシステム。私はちょうどConanの "python setup.py development"の利便性を望んでいたと思うが、ソースが変更されたときにビルドする必要がないので、Pythonパッケージの実装が簡単な方法であることは間違いないC++の場合です。フィードバックをお寄せいただきありがとうございます! – dragly

関連する問題