La principal cadena de herramientas admitida para compilar OpenWeave es GNU Autotools.
Requisitos del sistema
Todas las plataformas de SO principales admiten la compilación y la compilación cruzada de OpenWeave. Las cadenas de herramientas enumeradas fueron probadas oficialmente por Nest.
Linux | ||||||
---|---|---|---|---|---|---|
Requisitos: Ubuntu 14.04 (Trusty) es compatible oficialmente, pero debería funcionar cualquier sistema basado en Linux. | ||||||
Vinculaciones de C/C++, Java y Python |
|
|||||
Vinculaciones de C/C++ y Java |
|
Mac OS X | ||||||
---|---|---|---|---|---|---|
Requisitos: XQuartz para clonar un subárbol de directorios con vínculos simbólicos. | ||||||
Vinculaciones de C/C++ y Cocoa |
|
|||||
Vinculaciones de C/C++ y Python |
|
Windows | ||||||
---|---|---|---|---|---|---|
Requisitos: Cygwin para la compatibilidad con la línea de comandos de Linux. | ||||||
Vinculaciones de C/C++ |
|
Embedded | ||||||
---|---|---|---|---|---|---|
Vinculaciones de C/C++ |
|
Requisitos previos
Además de una cadena de herramientas compatible, te 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
GNU Autotools
OpenWeave depende de GNU Autotools para su sistema de compilación. Debe estar disponible una versión de GNU Autotools para compilar OpenWeave con éxito. Para usar la versión de herramientas automáticas proporcionada por el sistema en Linux, haz lo siguiente:
sudo apt-get install libtool autoconf automake
En el caso de los sistemas en los que las herramientas automáticas de GNU no están disponibles o instalables con facilidad (por ejemplo, Mac OS) o en sistemas en los que la versión proporcionada por el sistema no proporciona una generación de compilaciones sólida y lista para usar, Nest Labs creó un framework de sistema de compilación listo para usar basado en GNU Autotools personalizado. El sistema fija el conjunto de programas utilizados en la generación de compilaciones en una buena versión conocida. Fijar las herramientas en una versión particular también garantiza una deserción relativamente baja en el resultado de las herramientas automáticas, lo que genera una experiencia predecible de desarrollador y asistencia. Se recomienda la compilación de Nest Labs de GNU Autotools para usar con OpenWeave.
Para compilar herramientas automáticas de GNU de Nest Labs:
git clone https://github.com/openweave/openweave-core.git
cd openweave-core
make -C third_party/nlbuild-autotools/repo/ tools
Alegre
Para ejecutar las secuencias de comandos de prueba incluidas en OpenWeave o usar Weave en topologías simuladas, instala Happy en tu máquina Linux. Para obtener más información, consulta Configuración feliz.
Aplicación independiente
Usa la aplicación independiente de OpenWeave predeterminada para un host de desarrollo de servidor o computadora de escritorio.
- Clona el repositorio de OpenWeave:
git clone https://github.com/openweave/openweave-core.git
- Compila la aplicación independiente de OpenWeave:
cd openweave-core
make -f Makefile-Standalone
Usa la marca help
con Makefile-Standalone
a fin de saber qué interruptores de compilación están disponibles para la personalización de compilaciones.
make -f Makefile-Standalone help
Por ejemplo, para habilitar el registro y el código de depuración de Weave, haz lo siguiente:
make -f Makefile-Standalone DEBUG=1
Vinculación de proyectos
- Clona el repositorio de OpenWeave:
git clone https://github.com/openweave/openweave-core.git
- Configura el entorno de compilación para las herramientas automáticas de GNU:
cd openweave-core
./bootstrap
./configure
- Compila OpenWeave:
make all
- Almacena en etapa intermedia el resultado en una ubicación separada para la vinculación del proyecto:
mkdir <openweave-output>
make DESTDIR=<openweave-output> install
Después de la etapa de pruebas, usa los directorios de <openweave-output>
para la vinculación de proyectos:
/usr/local/include
: Encabezados públicos/usr/local/lib
: Bibliotecas
iOS y Android
Si deseas compilar bibliotecas para el vínculo de proyectos de iOS y Android, usa el objeto Makefiles
específico de la plataforma:
make -f Makefile-Android
make -f Makefile-iOS
Usa la marca help
con Makefile-<platform>
a fin de saber qué interruptores de compilación están disponibles para la personalización de compilaciones. Por ejemplo:
make -f Makefile-Android help
make -f Makefile-iOS help
Configuración
Antes de configurar OpenWeave con varias secuencias de comandos y encabezados, usa las herramientas automáticas para iniciar los archivos de compilación relevantes:
./bootstrap
Este paso se debe realizar una vez, después de confirmar la compra y, luego, en los cambios a configure.ac
o Makefile.am
. No es necesario repetirlo cuando simplemente se cambian las configuraciones o los objetivos de compilación.
Secuencias de comandos
Usa la marca --help
con la secuencia de comandos de configuración incluida para obtener más información sobre las opciones configurables.
./configure --help
Por ejemplo, para configurar OpenWeave sin la compatibilidad con BlueZ:
./configure --without-bluez
Encabezados
El Makefiles
incluido usa dos archivos de encabezado que definen constantes en el momento de la compilación:
También se pueden proporcionar encabezados de configuración específicos del proyecto. Coloca estos archivos en el directorio de tu proyecto; no los coloques en el repositorio de OpenWeave. Usa la opción de configuración adecuada para especificar la ubicación de cada archivo durante la configuración:
Archivo de encabezado | 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 a fin de usar un archivo WeaveProjectConfig.h
específico del proyecto ubicado en ~/my-project/headers
:
./configure --with-weave-project-includes=~/my-project/headers