Google is committed to advancing racial equity for Black communities. See how.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Crea OpenWeave

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

Requisiti di sistema

Tutte le principali piattaforme OS supportano la creazione e la compilazione incrociata di OpenWeave. Le toolchain elencate sono state ufficialmente testate da Nest.

Linux

Requisiti: Ubuntu 14.04 (Trusty) è ufficialmente supportato, ma qualsiasi sistema simile basato su Linux dovrebbe funzionare.
C / C ++, Java, collegamenti Python
toolchain gcc 4.6.3
obiettivi i386-unknown-linux-gnu
x86_64-unknown-linux-gnu
C / C ++, collegamenti Java
toolchain gcc 4.6
obiettivi arm-unknown-linux-android
ARMv7-unknown-linux-android
i386-unknown-linux-android

Mac OS X

Requisiti: XQuartz per la clonazione di una sottostruttura di directory in un'altra con collegamenti simbolici.
C / C ++, collegamenti Cocoa
obiettivi ARMv7-apple-Darwin-ios
armv7s-apple-Darwin-ios
i386-apple-Darwin-ios
C / C ++, collegamenti Python
toolchain LLVM / clang 3.5 (6.0)
obiettivi i386-apple-darwin-MacOSX
x86_64-apple-darwin-MacOSX

finestre

Requisiti: Cygwin per il supporto della riga di comando Linux.
Collegamenti C / C ++
toolchain gcc 4.8.3
obiettivi i686-pc-cygwin

Incorporato

Collegamenti C / C ++
toolchain gcc 4.4.1
LLVM / clang 3.1
LLVM / clang 3.3
obiettivi braccio * -Sconosciuto-linux *
braccio * -Sconosciuto-FreeRTOS-lwip

Prerequisiti

Oltre a una toolchain supportata, consigliamo di installare i seguenti pacchetti e strumenti prima di creare OpenWeave.

Pacchi

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

GNU Autotools

OpenWeave dipende da GNU Autotools per il suo sistema di compilazione. Una versione di GNU Autotools deve essere disponibile per costruire correttamente OpenWeave. Per utilizzare la versione di autotools fornita dal sistema su Linux:

sudo apt-get install libtool autoconf automake

Per i sistemi in cui GNU Autotools non sono prontamente disponibili o installabili (ad esempio, Mac OS) o su sistemi in cui la versione fornita dal sistema non fornisce una solida generazione di build out-of-box, Nest Labs ha creato una build personalizzata e chiavi in ​​mano framework di sistema, basato su GNU Autotools. Il sistema blocca il set di programmi utilizzati nella generazione di build su una buona versione nota. Il blocco degli strumenti su una particolare versione garantisce anche un tasso di abbandono relativamente basso nell'output degli strumenti automatici, portando così a un'esperienza prevedibile per lo sviluppatore e il supporto. Si consiglia di utilizzare la build Nest Labs di GNU Autotools con OpenWeave.

Per creare gli autotools GNU di Nest Labs:

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

Contento

Per eseguire gli script di test inclusi in OpenWeave o per utilizzare Weave in topologie simulate, installa Happy sulla tua macchina Linux. Vedere Configurazione felice per ulteriori informazioni.

Applicazione standalone

Utilizza l'applicazione 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. Compila l'applicazione OpenWeave Standalone: ​​
    cd openweave-core
    make -f Makefile-Standalone

Usa il flag di help con Makefile-Standalone per scoprire quali opzioni di build sono disponibili per la personalizzazione della build.

make -f Makefile-Standalone help

Ad esempio, per abilitare il codice di debug di Weave e la registrazione:

make -f Makefile-Standalone DEBUG=1

Collegamento al progetto

  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. Compila OpenWeave:
    make all
  4. Metti in scena l'output in una posizione separata per il collegamento del progetto:
    mkdir <openweave-output>
    make DESTDIR=<openweave-output> install

Dopo lo staging, utilizza le directory in <openweave-output> per il collegamento del progetto:

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

Android e iOS

Per creare librerie per il collegamento di progetti Android e iOS, usa i Makefiles specifici della piattaforma:

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

Usa il flag di help con Makefile- <platform> per sapere quali opzioni di build sono disponibili per la personalizzazione della build. Per esempio:

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

Configurazione

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

./bootstrap

Questo passaggio deve essere eseguito una volta, dopo un checkout ad albero e successivamente su qualsiasi modifica a configure.ac o Makefile.am . Non è necessario che venga ripetuto quando si cambiano semplicemente le configurazioni di build o gli obiettivi.

Script

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

./configure --help

Ad esempio, per configurare OpenWeave senza il supporto BlueZ:

./configure --without-bluez

intestazioni

I Makefiles inclusi utilizzano due file di intestazione che definiscono le costanti in fase di compilazione:

Possono essere fornite anche intestazioni di configurazione specifiche del progetto. Posiziona questi file nella directory del tuo progetto, non inserirli nel repository OpenWeave. Utilizzare l'opzione di configurazione appropriata per specificare la posizione di ogni 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 del WeaveProjectConfig.h situato in ~/my-project/headers :

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