En Google, luchamos por la equidad racial de la comunidad negra. Más información

Construir OpenWeave

La cadena de herramientas principal compatible para crear OpenWeave es GNU Autotools.

Requisitos del sistema

Todas las principales plataformas de sistemas operativos admiten la creación y compilación cruzada de OpenWeave. Nest ha probado oficialmente las cadenas de herramientas enumeradas.

Linux

Requisitos: Ubuntu 14.04 (Trusty) está soportado oficialmente, pero cualquier sistema basado en Linux similares deben trabajar.
C / C ++, Java, enlaces de Python
Cadenas de herramientas gcc 4.6.3
Objetivos i386-desconocido-linux-gnu
x86_64-unknown-linux-gnu
C / C ++, enlaces Java
Cadenas de herramientas gcc 4.6
Objetivos brazo-desconocido-linux-android
armv7-unknown-linux-android
i386-desconocido-linux-android

Mac OS X

Requisitos: XQuartz para la clonación de un sub-árbol de directorio a otro con enlaces simbólicos.
C / C ++, enlaces Cocoa
Objetivos armv7-apple-darwin-ios
armv7s-apple-darwin-ios
i386-apple-darwin-ios
C / C ++, enlaces de Python
Cadenas de herramientas LLVM / clang 3,5 (6,0)
Objetivos i386-manzana-darwin-macosx
x86_64-apple-darwin-macosx

Ventanas

Requisitos: Cygwin para el soporte de la línea de comandos de Linux.
Enlaces C / C ++
Cadenas de herramientas gcc 4.8.3
Objetivos i686-pc-cygwin

Incorporado

Enlaces C / C ++
Cadenas de herramientas gcc 4.4.1
LLVM / clang 3.1
LLVM / clang 3.3
Objetivos brazo * -unknown-linux *
brazo * -unknown-freertos-lwip

Prerrequisitos

Además de una cadena de herramientas compatible, recomendamos instalar los siguientes paquetes y herramientas antes de compilar OpenWeave.

Paquetes

Linux:

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

Linux y Mac OS X:

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

Herramientas automáticas GNU

OpenWeave depende de GNU Autotools para su sistema de construcción. Debe estar disponible una versión de GNU Autotools para construir OpenWeave con éxito. Para utilizar la versión de autotools proporcionada por el sistema en Linux:

sudo apt-get install libtool autoconf automake

Para los sistemas en los que las herramientas automáticas GNU no están disponibles o no se pueden instalar fácilmente (por ejemplo, Mac OS) o en sistemas donde la versión proporcionada por el sistema no proporciona una generación de compilación sólida y lista para usar, Nest Labs ha creado una compilación llave en mano personalizada. marco del sistema, basado en GNU Autotools. El sistema fija el conjunto de programas utilizados en la generación de compilación a una versión buena conocida. Anclar las herramientas a una versión en particular también garantiza una tasa de rotación relativamente baja en la salida de las herramientas automáticas, lo que conduce a una experiencia predecible de desarrollador y soporte. Se recomienda la compilación de Nest Labs de GNU Autotools para su uso con OpenWeave.

Para crear herramientas automáticas GNU de Nest Labs:

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

Contento

Para ejecutar los scripts de prueba incluidos en OpenWeave, o para usar Weave en topologías simuladas, instale Happy en su máquina Linux. Ver configuración feliz para más información.

Aplicación independiente

Utilice la aplicación independiente OpenWeave predeterminada para un host de desarrollo de servidor o de escritorio.

  1. Clonar el repositorio OpenWeave:
    git clone https://github.com/openweave/openweave-core.git
  2. Generar la aplicación OpenWeave Independiente:
    cd openweave-core
    make -f Makefile-Standalone

Utilice la help , marca con Makefile-Standalone para aprender lo que está disponible para la personalización acumulación interruptores de construcción.

make -f Makefile-Standalone help

Por ejemplo, para habilitar el código de depuración y el registro de Weave:

make -f Makefile-Standalone DEBUG=1

Vinculación de proyectos

  1. Clonar el repositorio OpenWeave:
    git clone https://github.com/openweave/openweave-core.git
  2. Configurar el entorno de construcción para GNU Autotools:
    cd openweave-core
    ./bootstrap
    ./configure
  3. Construir OpenWeave:
    make all
  4. Organizar la salida a un lugar separado para la vinculación del proyecto:
    mkdir <openweave-output>
    make DESTDIR=<openweave-output> install

Después de la clasificación, utilizar los directorios bajo <openweave-output> para el proyecto de vinculación:

  • /usr/local/include - cabeceras públicas
  • /usr/local/lib - bibliotecas

Android y iOS

Para construir bibliotecas para Android y iOS vinculación proyecto, utilice las específicas de la plataforma Makefiles :

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

Utilice la help , marca con Makefile- <platform> para aprender lo que está disponible para la personalización acumulación interruptores de construcción. Por ejemplo:

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

Configuración

Antes de configurar OpenWeave con varios scripts y encabezados, use las herramientas automáticas para arrancar los archivos de compilación relevantes:

./bootstrap

Este paso se debe realizar una vez, después de una extracción de árboles, y, posteriormente, en cualquier cambio en configure.ac o Makefile.am . No es necesario repetirlo cuando simplemente se cambian las configuraciones de compilación o los objetivos.

Guiones

Usar la --help , marca con la secuencia de comandos de configuración incluido para aprender más acerca de las opciones configurables.

./configure --help

Por ejemplo, para configurar OpenWeave sin el soporte de BlueZ:

./configure --without-bluez

Encabezados

Las incluidos Makefiles utilizan dos ficheros de cabecera que definen constantes en tiempo de compilación:

También se pueden proporcionar encabezados de configuración específicos del proyecto. Coloque estos archivos en el directorio de su proyecto, no los coloque dentro del repositorio de OpenWeave. Utilice la opción de configuración adecuada para especificar la ubicación de cada archivo durante la configuración:

Archivo de cabecera Opción de configuración
InetProjectConfig.h --with-weave-inet-project-includes= <directory>
WeaveProjectConfig.h --with-weave-project-includes= <directory>

Por ejemplo, para configurar OpenWeave utilizar un proyecto específico WeaveProjectConfig.h archivo que se encuentra en ~/my-project/headers :

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