2016-08-16 10 views
1

にファイルをインストールすることはできません、私は似たGroupアイテムを含む、単一のモジュールに応じて、いくつかのプラグインを持っている:グループアイテム:私のプロジェクトでは、同じ場所

Group { 
    name: "group" 
    qbs.install: true 
    qbs.installDir: "../" 
    files: <filename> 
} 

しかし、コンパイルはエラー」で失敗:ファイルをインストールすることはできません'ファイル名'と 'ファイル名'を同じ場所 '' 'に変更してください。基本的にqbsは同じファイルを同じ場所に2回コピーすることはできません(私には不公平です)

このバグはどうやって解決できますか?

+0

他の製品のモジュールにどのように依存関係を追加しますか? – BlueMagma

+0

@BlueMagma、モジュールのすべての製品依存関係は 'Depends {name:" MyModuleName "}' –

+0

として指定されています。モジュール全体を提供できますか(それとも機密ですか? – BlueMagma

答えて

0

プロジェクトのいくつかの再編が必要な場合があります回避策は、あり:

の代わり:

我々が使用することができます
Module { 
    name: "somemodule" 

    // module properties set to dependant products 

    Group { 
     // files to install 
     qbs.install: true 
    } 
} 

Product { 
    name: "somemodule" 

    Group { 
     // files to install 
     qbs.install: true 
    } 

    Export { 
     // module properties set to dependant products 
    } 
} 

このように、ファイルがのみインストールされていますmymoduleの手順を実行すると、競合が解消されます。 Exportアイテムを介してエクスポートされたモジュールプロパティは、Moduleによってエクスポートされたものと同じように機能します。

制限:

  1. ProductProject/Exportペア
に依存するすべてのモジュールを再構築するために必要な場合があり
  • ModulesProductアイテムに依存することができないProjectアイテムのreferencesに追加されなければなりません
  • 1

    これはqbs.installSourceBaseプロパティのジョブです。基本的には、これをグループ内のファイルを含むベースディレクトリに設定すると、Qbsは前述のベースディレクトリに対するパスに基づいて階層的にqbs.installDirにリストされたファイルをインストールします。

    // defined in /source/myproject/myproject.qbs 
    Group { 
        qbs.install: true 
        qbs.installDir: "share/stuff" 
        qbs.installSourceBase: "." // relative to /source/myproject 
        files: [ 
         "fileA.txt", 
         "fileB.txt", 
         "subdir/fileB.txt", 
        ] 
    } 
    

    、次のコマンドラインからの呼び出し::

    $ qbs [...] --install-root /sample/some-root 
    

    次のファイルシステム階層はなります:

    /sample/some-root/share/stuff/fileA.txt 
    /sample/some-root/share/stuff/fileB.txt 
    /sample/some-root/share/stuff/subdir/fileB.txt 
    

    QBSを参照し、次のグループを与え例えば

    、詳細についてはInstallation Propertiesのドキュメントをご覧ください。

    +0

    2つのサブプロジェクトから同じ場所に同じファイルをインストールできないという問題は解決しません... –

    +0

    これは論理的パラドックスです。同じ経路にあなたは実際に何を達成しようとしていますか? –

    +0

    1つのファイルを1つの場所にコピーしようとしていますが、2つのサブプロジェクトからコピーしようとしています。 –

    関連する問題