6

依存関係マネージャーBiicodeのブロックを作成したいと考えています。既存のソース コードには触れたくないので、インクルード パスを既存の Bii ブロックからソース コードで使用されているパスにマップする必要があります。

既存のコードで次のインクルードを使用しています。

#include "gtest/gtest.h"
#include "fw/core/uncopyable_mixin.h"

デフォルト設定では、Bii は次のパスを想定しています。

#include "google/gtest/include/gtest/gtest.h"
#include "florianwolters/include/fw/core/uncopyable_mixin.h"

インクルードを置き換えると、すべてが期待どおりに機能します。しかし、すでに述べたように、私はそのような醜いインクルード パスを望んでいませんが、常識を使用してください (Boost や他のライブラリがそうであるように)。

したがって、パスをマップする必要があります。私はそのセクションについて読んでbiicode.conf、偶然見つけました[includes]

私は次のことを試しました:

[requirements]
    google/gtest: 9
    florianwolters/uncopyable-mixin: 0

[parent]
    florianwolters/singleton: -1

[paths]
    include

[dependencies]

[mains]

[hooks]

[includes]
    gtest/gtest.h: google/gtest/include/gtest
    fw/core/uncopyable_mixin.h: florianwolters/uncopyable-mixin/include/fw/core

[data]

しかし、それはうまくいきません:

INFO: Processing changes...
WARN: Removing unused reference to "florianwolters/uncopyable-mixin: 0" from florianwolters/singleton "requirements"
WARN: Removing unused reference to "google/gtest: 9" from florianwolters/singleton "requirements"

私の質問は次のとおりです。既存の#include-statements で動作するようにマッピングを構成するにはどうすればよいですか? これはうまくいかなければなりません、そうでなければそれはキラー基準です...

4

1 に答える 1

5

[includes] セクションは、左側のパターンがファイル名と一致する場合に備えて、右側の部分を左側に付加します。あなたの場合、最後のフォルダーは必要ありません。代わりに試してください:

[includes]
    gtest/gtest.h: google/gtest/include
    fw/core/uncopyable_mixin.h: florianwolters/uncopyable-mixin/include

さらに、パターン (ala fnmatch) も使用できることに注意してください。

[includes]
    gtest/*.h: google/gtest/include
    fw/core/*.h: florianwolters/uncopyable-mixin/include
于 2014-12-31T16:51:40.797 に答える