Google is committed to advancing racial equity for Black communities. See how.

Zbuduj OpenWeave

Podstawowym obsługiwanym toolchainem do budowania OpenWeave jest GNU Autotools.

Wymagania systemowe

Wszystkie główne platformy operacyjne obsługują budowanie i kompilację skrośną OpenWeave. Wymienione łańcuchy narzędzi zostały oficjalnie przetestowane przez firmę Nest.

Linux

Wymagania: Ubuntu 14.04 (Trusty) jest oficjalnie obsługiwane, ale każdy podobny system oparty na systemie Linux powinien działać.
Wiązania C/C++, Java, Python
Łańcuchy narzędziowe gcc 4.6.3
Cele i386-nieznany-linux-gnu
x86_64-nieznany-linux-gnu
C/C++, wiązania Javy
Łańcuchy narzędziowe gcc 4.6
Cele ramię-nieznany-linux-android
armv7-nieznany-linux-android
i386-nieznany-linux-android

Mac OS X

Wymagania: XQuartz do klonowania jedno poddrzewo katalogu do drugiego z linków symbolicznych.
C/C++, Wiązania kakaowe
Cele armv7-jabłko-darwin-ios
armv7s-jabłko-darwin-ios
i386-jabłko-darwin-ios
C/C++, wiązania Pythona
Łańcuchy narzędziowe LLVM/klang 3,5 (6,0)
Cele i386-apple-darwin-macosx
x86_64-apple-darwin-macosx

Okna

Wymagania: Cygwin dla Linux wsparcie linii poleceń.
Wiązania C/C++
Łańcuchy narzędziowe gcc 4.8.3
Cele i686-pc-cygwin

Wbudowany

Wiązania C/C++
Łańcuchy narzędziowe gcc 4.4.1
LLVM/klang 3.1
LLVM/klang 3,3
Cele ramię*-nieznany-linux*
ramię*-nieznany-freertos-lwip

Warunki wstępne

Oprócz obsługiwanego zestawu narzędzi zalecamy zainstalowanie następujących pakietów i narzędzi przed zbudowaniem OpenWeave.

Pakiety

Linux:

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

Linux i Mac OS X:

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

Autonarzędzia GNU

OpenWeave w swoim systemie kompilacji opiera się na GNU Autotools. Aby pomyślnie zbudować OpenWeave, musi być dostępna wersja GNU Autotools. Aby użyć dostarczonej przez system wersji autotools w systemie Linux:

sudo apt-get install libtool autoconf automake

W przypadku systemów, w których narzędzia GNU Autotools nie są łatwo dostępne lub łatwe do zainstalowania (na przykład Mac OS) lub w systemach, w których wersja dostarczona przez system nie zapewnia solidnego generowania kompilacji po wyjęciu z pudełka, firma Nest Labs stworzyła niestandardową, pod klucz framework systemu, oparty na GNU Autotools. System przypina zestaw programów używanych do generowania kompilacji do znanej dobrej wersji. Przypinanie narzędzi do konkretnej wersji zapewnia również stosunkowo niski churn w produkcji autotools, co prowadzi do przewidywalnego doświadczenia programistów i wsparcia. Do użytku z OpenWeave zalecana jest kompilacja GNU Autotools firmy Nest Labs.

Aby zbudować Nest Labs GNU Autotools:

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

Szczęśliwy

Aby uruchomić skrypty testowe zawarte w OpenWeave lub użyć Weave w symulowanych topologiach, zainstaluj Happy na swoim komputerze z systemem Linux. Zobacz Szczęśliwa konfiguracji , aby uzyskać więcej informacji.

Samodzielna aplikacja

Użyj domyślnej aplikacji OpenWeave Standalone dla komputera stacjonarnego lub hosta programistycznego serwera.

  1. Klonowania repozytorium OpenWeave:
    git clone https://github.com/openweave/openweave-core.git
  2. Budowanie aplikacji OpenWeave autonomiczny:
    cd openweave-core
    make -f Makefile-Standalone

Użyj help flagi z Makefile-Standalone , aby dowiedzieć się, jakie są dostępne dla budowania dostosowania przełączniki budować.

make -f Makefile-Standalone help

Na przykład, aby włączyć kod debugowania Weave i rejestrowanie:

make -f Makefile-Standalone DEBUG=1

Łączenie projektów

  1. Klonowania repozytorium OpenWeave:
    git clone https://github.com/openweave/openweave-core.git
  2. Skonfigurować środowisko budowania GNU Autotools:
    cd openweave-core
    ./bootstrap
    ./configure
  3. Budowa OpenWeave:
    make all
  4. Etap wyjście do innej lokalizacji na powiązanie projektu:
    mkdir <openweave-output>
    make DESTDIR=<openweave-output> install

Po inscenizacji, użyj katalogów pod <openweave-output> dla projektu łączącego:

  • /usr/local/include - nagłówki publicznych
  • /usr/local/lib - biblioteki

Android i iOS

Do bibliotek zbudować dla Androida i iOS projektu łączenia, użyj specyficzne dla platformy Makefiles :

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

Użyj help flagę z Makefile- <platform> , aby dowiedzieć się, jakie są dostępne dla budowania dostosowania przełączniki budować. Na przykład:

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

Konfiguracja

Przed skonfigurowaniem OpenWeave z różnymi skryptami i nagłówkami, użyj autotools, aby załadować odpowiednie pliki kompilacji:

./bootstrap

Ten krok musi być wykonywana raz po drzewie kasie, a następnie o wszelkich zmianach configure.ac lub Makefile.am . Nie trzeba tego powtarzać, po prostu zmieniając konfiguracje kompilacji lub cele.

Skrypty

Użyj --help flagę za pomocą dołączonego skryptu konfiguracyjnego, aby dowiedzieć się więcej o konfigurowalnych opcji.

./configure --help

Na przykład, aby skonfigurować OpenWeave bez obsługi BlueZ:

./configure --without-bluez

Nagłówki

Zawarte Makefiles korzystać z dwóch plików nagłówkowych, które definiują stałe w czasie kompilacji:

Można również podać nagłówki konfiguracji specyficzne dla projektu. Umieść te pliki w katalogu projektu — nie umieszczaj ich w repozytorium OpenWeave. Użyj odpowiedniej opcji konfiguracji, aby określić lokalizację każdego pliku podczas konfiguracji:

Plik nagłówkowy Opcja konfiguracji
InetProjectConfig.h --with-weave-inet-project-includes= <directory>
WeaveProjectConfig.h --with-weave-project-includes= <directory>

Na przykład, aby skonfigurować OpenWeave użycie konkretnego projektu WeaveProjectConfig.h plik znajdujący się w ~/my-project/headers :

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