Google is committed to advancing racial equity for Black communities. See how.

Сборка OpenWeave

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

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

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

Linux

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

Mac OS X

Требования: XQuartz для клонирования одного каталога поддерева к другому с символическими ссылками.
C / C ++, привязки какао
Цели armv7-яблоко-Дарвин-iOS
armv7s-яблоко-дарвин-ios
i386-яблоко-Дарвин-iOS
C / C ++, привязки Python
Цепочки инструментов LLVM / clang 3.5 (6.0)
Цели i386-яблоко-дарвин-macosx
x86_64-яблоко-дарвин-macosx

Окна

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

Встроенный

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

Предпосылки

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

Пакеты

Linux:

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 Autotools

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

sudo apt-get install libtool autoconf automake

Для систем, в которых GNU Autotools недоступен или недоступен для установки (например, Mac OS), или в системах, в которых версия, предоставляемая системой, не обеспечивает надежное создание готовой сборки, Nest Labs создала индивидуальную сборку под ключ. системный фреймворк, основанный на GNU 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. См настройки Happy для получения дополнительной информации.

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

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

  1. Клон хранилище OpenWeave:
    git clone https://github.com/openweave/openweave-core.git
  2. Постройте приложение OpenWeave Standalone:
    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 - библиотеки

Android и 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