Построить 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
Наборы инструментов gcc 4.6
Цели рука-неизвестный-linux-андроид
armv7-неизвестный-linux-андроид
i386-неизвестный-linux-андроид

Mac OS X

Требования: XQuartz для клонирования одного поддерева каталогов в другое с символическими ссылками.
C/C++, привязки какао
Цели armv7-apple-darwin-ios
armv7s-apple-darwin-ios
i386-яблоко-дарвин-ios
C/C++, привязки Python
Наборы инструментов LLVM/лязг 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/клэнг 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. Система привязывает набор программ, используемых при создании сборки, к заведомо исправной версии. Привязка инструментов к конкретной версии также обеспечивает относительно низкую текучесть выходных данных автоинструментов, что обеспечивает предсказуемый опыт разработки и поддержки. Сборка 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 Standalone для настольного или серверного узла разработки.

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

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

Основным поддерживаемым набором инструментов для создания 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
Наборы инструментов gcc 4.6
Цели рука-неизвестный-linux-андроид
armv7-неизвестный-linux-андроид
i386-неизвестный-linux-андроид

Mac OS X

Требования: XQuartz для клонирования одного поддерева каталогов в другое с символическими ссылками.
C/C++, привязки какао
Цели armv7-apple-darwin-ios
armv7s-apple-darwin-ios
i386-яблоко-дарвин-ios
C/C++, привязки Python
Наборы инструментов LLVM/лязг 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/клэнг 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. Система привязывает набор программ, используемых при создании сборки, к заведомо исправной версии. Привязка инструментов к конкретной версии также обеспечивает относительно низкую текучесть выходных данных автоинструментов, что обеспечивает предсказуемый опыт разработки и поддержки. Сборка 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 Standalone для настольного или серверного узла разработки.

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

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