Crea OpenWeave

La principale catena di strumenti supportata per la creazione di OpenWeave è GNU Autotools.

Requisiti di sistema

Tutte le principali piattaforme di sistema operativo supportano la creazione e la compilazione incrociata di OpenWeave. Le catene di strumenti elencate sono state ufficialmente testate da Nest.

Linux

Requisiti: Ubuntu 14.04 (Trusty) è ufficialmente supportato, ma un sistema simile basato su Linux dovrebbe funzionare.
C/C++, Java, associazioni Python
Portachiavi gcc 4.6.3
Destinazioni i386-unknown-linux-gnu
x86_64-unknown-linux-gnu
C/C++, associazioni Java
Portachiavi gcc 4.6
Destinazioni arm-unknown-linux-android
armv7-unknown-linux-android
i386-unknown-linux-android

Mac OS X

Requisiti: XQuartz per clonare una sottostruttura di directory a un'altra con link simbolici.
C/C++, associazioni di cacai
Destinazioni armv7-apple-darwin-ios
armv7s-apple-darwin-ios
i386-apple-darwin-ios
C/C++, associazioni Python
Portachiavi LLVM/clang 3.5 (6.0)
Destinazioni i386-apple-darwin-macosx
x86_64-apple-darwin-macosx

Windows

Requisiti: Cygwin per il supporto della riga di comando Linux.
Associazioni C/C++
Portachiavi gcc 4.8.3
Destinazioni i686-pc-cygwin

Incorporato

Associazioni C/C++
Portachiavi gcc 4.4.1
LLVM/clang 3.1
LLVM/clang 3.3
Destinazioni arm*-unknown-linux*
arm*-unknown-freertos-lwip

Prerequisiti

Oltre a una toolchain supportata, ti consigliamo di installare i pacchetti e gli strumenti elencati di seguito prima di creare OpenWeave.

Pacchetti

Linux:

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

Linux e Mac OS X:

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

Strumenti automatici GNU

OpenWeave dipende da GNU Autotools per il suo sistema di compilazione. Per creare correttamente OpenWeave deve essere disponibile una versione di GNU Autotools. Per utilizzare la versione fornita dal sistema degli strumenti automatici su Linux:

sudo apt-get install libtool autoconf automake

Per i sistemi in cui GNU Autotools non è immediatamente disponibile o installabile (ad esempio, Mac OS) o per i sistemi in cui la versione fornita dal sistema non fornisce una solida generazione di build, Nest Labs ha creato un framework personalizzato di sistemi preconfigurati basato su GNU Autotools. Il sistema blocca l'insieme di programmi utilizzati per la generazione della build in una versione nota. La limitazione degli strumenti a una particolare versione assicura inoltre un tasso di abbandono relativamente basso nell'output degli strumenti automatici, generando un'esperienza di assistenza e sviluppatori prevedibile. È consigliabile utilizzare la build Nest Labs di GNU Autotools con OpenWeave.

Per creare gli Strumenti automatici GNU di Nest Labs:

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

Felice

Per eseguire gli script di test inclusi in OpenWeave o per utilizzare Weave in topologie simulate, installa Happy sulla tua macchina Linux. Per ulteriori informazioni, consulta la sezione Buona configurazione.

Applicazione autonoma

Utilizza l'applicazione autonoma OpenWeave Standalone predefinita per un host di sviluppo desktop o server.

  1. Clona il repository OpenWeave:
    git clone https://github.com/openweave/openweave-core.git
  2. Crea l'applicazione autonoma OpenWeave:
    cd openweave-core
    make -f Makefile-Standalone

Utilizza il flag help con Makefile-Standalone per sapere quali sensori di build sono disponibili per la personalizzazione della build.

make -f Makefile-Standalone help

Ad esempio, per attivare il codice di debug e il logging di Weave:

make -f Makefile-Standalone DEBUG=1

Collegamento dei progetti

  1. Clona il repository OpenWeave:
    git clone https://github.com/openweave/openweave-core.git
  2. Configura l'ambiente di compilazione per GNU Autotools:
    cd openweave-core
    ./bootstrap
    ./configure
  3. Crea OpenWeave:
    make all
  4. Imposta l'output in una posizione separata per il collegamento del progetto:
    mkdir <openweave-output>
    make DESTDIR=<openweave-output> install

Dopo la gestione temporanea, utilizza le directory nella sezione <openweave-output> per il collegamento del progetto:

  • /usr/local/include - intestazioni pubbliche
  • /usr/local/lib - biblioteche

Android iOS

Per creare librerie per il collegamento di progetti Android e iOS, utilizza l'elemento Makefiles specifico della piattaforma:

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

Utilizza il flag help con Makefile-<platform> per scoprire quali sensori di build sono disponibili per la personalizzazione della build. Ad esempio:

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

Configurazione

Prima di configurare OpenWeave con vari script e intestazioni, utilizza gli strumenti automatici per eseguire il bootstrap dei file di build pertinenti:

./bootstrap

Questo passaggio deve essere eseguito una volta dopo un pagamento ad albero e successivamente a ogni modifica a configure.ac o Makefile.am. Non è necessario ripeterlo quando modifichi semplicemente le configurazioni o i target della build.

Script

Utilizza il flag --help con lo script di configurazione incluso per scoprire di più sulle opzioni configurabili.

./configure --help

Ad esempio, per configurare OpenWeave senza il supporto BlueZ:

./configure --without-bluez

Intestazioni

I file Makefiles inclusi utilizzano due file di intestazione che definiscono le costanti al tempo di compilazione:

Possono essere fornite anche intestazioni di configurazione specifiche del progetto. Inserisci questi file nella directory del progetto e non inserirli nel repository OpenWeave. Utilizza l'opzione di configurazione appropriata per specificare la posizione di ciascun file durante la configurazione:

File di intestazione Opzione di configurazione
InetProjectConfig.h --with-weave-inet-project-includes=<directory>
WeaveProjectConfig.h --with-weave-project-includes=<directory>

Ad esempio, per configurare OpenWeave in modo che utilizzi un file WeaveProjectConfig.h specifico per il progetto presente in ~/my-project/headers:

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