Я хочу создать блок для менеджера зависимостей Биикод. я не хочу прикоснуться к существующему исходному коду, поэтому я должен сопоставить пути включения из существующих блоков 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
-заявления? Это должно сработать, иначе это критерий убийцы …
Раздел [include] добавляет правую часть к левой стороне, если шаблон левой стороны соответствует имени файла. В вашем случае последние папки не нужны. Попробуйте вместо этого:
[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