Сборка OpenWeave

Основным поддерживаемым набором инструментов для создания OpenWeave является GNU Autotools.

Системные требования

Все основные платформы ОС поддерживают сборку и кросс-компиляцию OpenWeave. Перечисленные цепочки инструментов были официально протестированы Nest.

Линукс

Требования: Ubuntu 14.04 (Trusty) официально поддерживается, но любая аналогичная система на базе Linux должна работать.
Привязки C/C++, Java, Python
Цепочки инструментов gcc 4.6.3
Цели i386-неизвестный-linux-gnu
x86_64-неизвестный-linux-gnu
C/C++, привязки Java
Цепочки инструментов ГЦК 4.6
Цели рука-неизвестный-Linux-Android
Armv7-неизвестный-Linux-Android
i386-неизвестный-linux-android

Мак ОС Х

Требования: XQuartz для клонирования одного поддерева каталогов в другое с помощью символических ссылок.
C/C++, привязки какао
Цели Armv7-Apple-Дарвин-ios
Armv7s-Apple-Дарвин-ios
i386-apple-darwin-ios
C/C++, привязки Python
Цепочки инструментов ЛЛВМ/кланг 3,5 (6,0)
Цели i386-apple-darwin-macosx
x86_64-apple-darwin-macosx

Окна

Требования: поддержка командной строки Cygwin для Linux.
Привязки C/C++
Цепочки инструментов gcc 4.8.3
Цели i686-pc-cygwin

Встроенный

Привязки C/C++
Цепочки инструментов gcc 4.4.1
LLVM/кланг 3.1
LLVM/кланг 3.3
Цели рука*-неизвестный-Linux*
рука*-неизвестно-freertos-lwip

Предварительные условия

В дополнение к поддерживаемому набору инструментов мы рекомендуем установить следующие пакеты и инструменты перед сборкой OpenWeave.

Пакеты

Линукс:

sudo apt-get install python-pip python-setuptools bridge-utils /
               libglib2.0-dev libdbus-1-dev libudev-dev /
               libical-dev libreadline-dev

Linux и Mac OS X:

pip install --user google-cloud googleapis-common-protos grpc protobuf pycryptodomex
sudo cpan -i Text::Template

GNU Автоинструменты

OpenWeave зависит от GNU Autotools в своей системе сборки. Для успешной сборки OpenWeave должна быть доступна версия GNU Autotools. Чтобы использовать системную версию autotools в Linux:

sudo apt-get install libtool autoconf automake

Для систем, в которых GNU Autotools недоступны или недоступны для установки (например, Mac OS), или для систем, в которых предоставляемая системой версия не обеспечивает создание надежной готовой сборки, Nest Labs создала индивидуальную сборку «под ключ». системная платформа, основанная на GNU Autotools. Система присваивает набору программ, используемых при создании сборки, заведомо исправную версию. Привязка инструментов к определенной версии также обеспечивает относительно низкий уровень оттока результатов autotools, что приводит к предсказуемому опыту разработки и поддержки. Сборку GNU Autotools от Nest Labs рекомендуется использовать с OpenWeave.

Чтобы собрать Nest Labs GNU Autotools:

git clone https://github.com/openweave/openweave-core.git
cd openweave-core
make -C third_party/nlbuild-autotools/repo/ tools

Счастливый

Чтобы запустить тестовые сценарии, включенные в OpenWeave, или использовать Weave в моделируемых топологиях, установите Happy на свой компьютер с Linux. См. раздел «Счастливая настройка» для получения дополнительной информации.

Автономное приложение

Используйте автономное приложение OpenWeave по умолчанию для хоста разработки настольных компьютеров или серверов.

  1. Клонируйте репозиторий OpenWeave:
    git clone https://github.com/openweave/openweave-core.git
  2. Создайте автономное приложение OpenWeave:
    cd openweave-core
    make -f Makefile-Standalone

Используйте флаг help с Makefile-Standalone чтобы узнать, какие переключатели сборки доступны для настройки сборки.

make -f Makefile-Standalone help

Например, чтобы включить код отладки Weave и ведение журнала:

make -f Makefile-Standalone DEBUG=1

Связывание проектов

  1. Клонируйте репозиторий OpenWeave:
    git clone https://github.com/openweave/openweave-core.git
  2. Настройте среду сборки для GNU Autotools:
    cd openweave-core
    ./bootstrap
    ./configure
  3. Сборка OpenWeave:
    make all
  4. Перенесите выходные данные в отдельное место для связывания проектов:
    mkdir <openweave-output>
    make DESTDIR=<openweave-output> install

После подготовки используйте каталоги в <openweave-output> для связывания проектов:

  • /usr/local/include — общедоступные заголовки
  • /usr/local/lib — библиотеки

Андроид и iOS

Чтобы создать библиотеки для связывания проектов Android и iOS, используйте Makefiles для конкретной платформы:

make -f Makefile-Android
make -f Makefile-iOS

Используйте флаг help с Makefile- <platform> чтобы узнать, какие переключатели сборки доступны для настройки сборки. Например:

make -f Makefile-Android help
make -f Makefile-iOS help

Конфигурация

Прежде чем настраивать OpenWeave с помощью различных скриптов и заголовков, используйте автоинструменты для загрузки соответствующих файлов сборки:

./bootstrap

Этот шаг необходимо выполнить один раз после извлечения дерева и впоследствии при любых изменениях в configure.ac или Makefile.am . Это не нужно повторять при простом изменении конфигураций сборки или целей.

Скрипты

Используйте флаг --help с включенным сценарием конфигурации, чтобы узнать больше о настраиваемых параметрах.

./configure --help

Например, чтобы настроить OpenWeave без поддержки BlueZ:

./configure --without-bluez

Заголовки

Включенные Makefiles используют два заголовочных файла, которые определяют константы во время компиляции:

Также могут быть предоставлены заголовки конфигурации для конкретного проекта. Поместите эти файлы в каталог вашего проекта — не помещайте их в репозиторий OpenWeave. Используйте соответствующий параметр конфигурации, чтобы указать расположение каждого файла во время настройки:

Заголовочный файл Вариант конфигурации
InetProjectConfig.h --with-weave-inet-project-includes= <directory>
WeaveProjectConfig.h --with-weave-project-includes= <directory>

Например, чтобы настроить OpenWeave на использование файла WeaveProjectConfig.h для конкретного проекта, расположенного в ~/my-project/headers :

./configure --with-weave-project-includes=~/my-project/headers