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 |
|
|||||
C/C++, associazioni Java |
|
Mac OS X | ||||||
---|---|---|---|---|---|---|
Requisiti: XQuartz per clonare una sottostruttura di directory a un'altra con link simbolici. | ||||||
C/C++, associazioni di cacai |
|
|||||
C/C++, associazioni Python |
|
Windows | ||||||
---|---|---|---|---|---|---|
Requisiti: Cygwin per il supporto della riga di comando Linux. | ||||||
Associazioni C/C++ |
|
Incorporato | ||||||
---|---|---|---|---|---|---|
Associazioni C/C++ |
|
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.
- Clona il repository OpenWeave:
git clone https://github.com/openweave/openweave-core.git
- 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
- Clona il repository OpenWeave:
git clone https://github.com/openweave/openweave-core.git
- Configura l'ambiente di compilazione per GNU Autotools:
cd openweave-core
./bootstrap
./configure
- Crea OpenWeave:
make all
- 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