Я пытаюсь использовать биокод для управления зависимостями для моего проект так что я могу автоматизировать такие вещи, как boost или sqlite и использовать travis-ci
Из того, что я понимаю, bii ожидает, что ваши исходные файлы будут в корневой папке вашего блока, как упоминалось в их уроках:
|-- my_project
| +-- bii
| +-- bin
| +-- blocks
| | +-- myuser
| | | +-- my_block
| | | | |-- main.cpp
| | | | |-- biicode.conf
Но в моем случае исходный файл выглядит так
|-- my_project
| +-- bii
| +-- bin
| +-- blocks
| | +-- myuser
| | | +-- my_block
| | | | |-- src
| | | | | +--folderA
| | | | | | +--core
| | | | | | |-- various .cpp
| | | | | | +--impl
| | | | | | |-- various .cpp
| | | | | |-- various .cpp
| | | | |-- biicode.conf
и запущенная конфигурация пропускает эти папки
bii cpp:configure
Я прочитал документ о biicode.conf но он не упоминает альтернативный путь для исходных файлов.
Итак, мой вопрос: действительно ли мне нужно поместить все в плоский каталог, где каждый исходный файл находится в одной папке, чтобы использовать биокод?
РЕДАКТИРОВАТЬ: я забыл упомянуть, что я пытаюсь создать библиотеку (для использования в другом проекте bii), а не исполняемый файл
Вы можете сортировать свой блок так, как вы хотите внутри вашего blocks/my_user/my_block
, Например, посмотрите на этот блок:
Здесь есть структура без какого-либо шаблона.
biicode.conf
кроме всего прочего, помогает вам сказать biicode, где находятся ваши заголовочные файлы (но не исходные), благодаря [paths]
раздел, потому что исходный биокод обнаруживает их автоматически, иначе вы можете настроить свои зависимости с [dependencies]
раздел.
Делая пример с этим макетом:
|-- my_project
| +-- bii
| +-- bin
| +-- blocks
| | +-- myuser
| | | +-- my_block
| | | | |-- src
| | | | | +--folderA
| | | | | | +--core
| | | | | | |-- core.h
| | | | | | |-- core.cpp
| | | | | | +--impl
| | | | | | |-- impl_ext.h
| | | | | | |-- impl.h
| | | | | | +--src
| | | | | | |-- impl.cpp
| | | | | | |-- impl_ext.cpp
| | | | | |-- CMakeLists.txt
| | | | |-- biicode.conf
| | | | |-- CMakeLists.txt
Тогда ваш .cpp
файлы могут иметь относительные включения, такие как:
#include "core/core.h"#include "impl/impl.h"#include "impl/impl_ext.h"
Предположим, что ваши файлы CMakeLists.txt верны, вам нужно только указать biicode, где он должен искать этот «относительный» заголовок, так что пишите в biicode.conf
:
[paths]
folderA/core
folderA/impl
Я надеюсь, что это разрешит ваши сомнения! 😉