Google is committed to advancing racial equity for Black communities. See how.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Сборка OpenWeave

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

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

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

Linux

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

Mac OS X

Требования: XQuartz для клонирования одного поддерева каталога в другое с символическими ссылками.
C / C ++, привязки какао
Цели ARMv7-яблочно-Darwin-ИСН
armv7s-яблочные-Darwin-ИСН
i386-яблоко-Darwin-ИСН
C / C ++, привязки Python
компилированные инструменты LLVM / clang 3.5 (6.0)
Цели i386-яблоко-Darwin-MacOSX
x86_64-яблочно-Darwin-MacOSX

Windows

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

внедренный

Привязки C / C ++
компилированные инструменты gcc 4.4.1
LLVM / clang 3.1
LLVM / clang 3.3
Цели рука * -Неизвестный-Linux *
рука * -Неизвестный-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. См. « Удачная установка» для получения дополнительной информации.

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

Используйте автономное приложение 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 - библиотеки

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 конкретного WeaveProjectConfig.h расположенного в ~/my-project/headers :

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