Указание альтернативного каталога исходных файлов с помощью biicode

Я пытаюсь использовать биокод для управления зависимостями для моего проект так что я могу автоматизировать такие вещи, как 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), а не исполняемый файл

3

Решение

Вы можете сортировать свой блок так, как вы хотите внутри вашего blocks/my_user/my_block, Например, посмотрите на этот блок:

блок fenix / flatbuffers

Здесь есть структура без какого-либо шаблона.

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

Я надеюсь, что это разрешит ваши сомнения! 😉

1

Другие решения


По вопросам рекламы [email protected]