Kompilacja OpenWeave

Głównym łańcuchem narzędzi do tworzenia OpenWeave jest GNU Autotools.

Wymagania systemowe

Główne platformy systemów operacyjnych obsługują tworzenie i kompilowanie plików OpenWeave. Wymienione łańcuchy narzędzi zostały oficjalnie przetestowane przez Nest.

Linux

Wymagania: Ubuntu 14.04 (Trusty) jest oficjalnie obsługiwany, ale powinien działać podobny system oparty na systemie Linux.
C/C++, Java, wiązania Pythona
Łańcuchy narzędziowe GCC 4.6.3
Cele i386-unknown-linux-gnu
x86_64-unknown-linux-gnu
C/C++, powiązania Java
Łańcuchy narzędziowe GCC 4.6
Cele Arm-unknown-linux-android
armv7-unknown-linux-android
i386-unknown-linux-android

Mac OS X

Wymagania: XQuartz do kopiowania jednego poddrzewa katalogów do innego za pomocą linków symbolicznych.
C/C++, wiązania kakao
Cele Armv7-apple-darwin-ios
armv7s-apple-darwin-ios
i386-apple-darwin-ios
Wiązania Pythona w języku C/C++
Łańcuchy narzędziowe LLVM/clang 3.5 (6.0)
Cele i386-apple-darwin-macosx
x86_64-apple-darwin-macosx

Windows

Wymagania: Cygwin na potrzeby obsługi wiersza poleceń systemu Linux.
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/clang 3.1
LLVM/clang 3.3
Cele ramiona*-unknown-linux*
arm*-unknown-freertos-lwip

Wymagania wstępne

Oprócz obsługiwanego łańcucha narzędzi zalecamy zainstalowanie tych pakietów i narzędzi przed utworzeniem kompilacji OpenWeave.

Pakiety

System 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

Automatyczny GNU

OpenWeave korzysta z GNU Autotools dla swojego systemu kompilacji. Do utworzenia kompilacji OpenWeave musi być dostępna wersja GNU Autotools. Aby skorzystać z udostępnianej przez system wersji narzędzi automatycznych w systemie Linux:

sudo apt-get install libtool autoconf automake

W przypadku systemów, w których narzędzia GNU Autotools nie można łatwo zainstalować lub zainstalować (np. Mac OS), albo w systemach, w których wersja systemowa nie zapewnia solidnej konstrukcji gotowej do użycia, Nest Labs stworzyła dostosowaną do infrastruktury platformę kompilacji opartą na GNU Autotools. System przypina zestaw programów używanych do generowania kompilacji do znanej, dobrej wersji. Przypinanie narzędzi do konkretnej wersji pozwala też stosunkowo zmniejszyć liczbę rezygnacji z narzędzi w ten sposób, a tym samym zapewnić przewidywalną obsługę programistów i wsparcie. Zalecamy korzystanie z kompilacji Nest GNU Autotools w połączeniu z OpenWeave.

Aby utworzyć automatyczne narzędzia Nest Labs GNU:

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

Radosna muzyka

Aby uruchomić skrypty testowe dołączone do OpenWeave lub użyć Weave w symulowanych topologiach, zainstaluj Happy na swoim komputerze z systemem Linux. Więcej informacji znajdziesz w sekcji Udanej konfiguracji.

Aplikacja samodzielna

Używaj domyślnej aplikacji OpenWeave Standaam na hoście komputerów lub serwerów programistycznych.

  1. Skopiuj repozytorium OpenWeave:
    git clone https://github.com/openweave/openweave-core.git
  2. Utwórz aplikację samodzielną OpenWeave:
    cd openweave-core
    make -f Makefile-Standalone

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

make -f Makefile-Standalone help

Aby na przykład włączyć kod debugowania i logowanie Weave:

make -f Makefile-Standalone DEBUG=1

Łączenie projektów

  1. Skopiuj repozytorium OpenWeave:
    git clone https://github.com/openweave/openweave-core.git
  2. Skonfiguruj środowisko kompilacji dla Automatycznych narzędzi GNU:
    cd openweave-core
    ./bootstrap
    ./configure
  3. Utwórz OpenWeave:
    make all
  4. Umieść dane wyjściowe w osobnej lokalizacji do łączenia projektów:
    mkdir <openweave-output>
    make DESTDIR=<openweave-output> install

Po przejściowej próbie użycia projektu użyj linków w katalogu <openweave-output>:

  • /usr/local/include – nagłówki publiczne
  • /usr/local/lib – biblioteki

Android i iOS

Aby utworzyć biblioteki do łączenia projektów na Androida i iOS, użyj platformy Makefiles przeznaczonej na tę platformę:

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

Użyj flagi help z Makefile-<platform>, aby dowiedzieć się, jakie przełączniki kompilacji są dostępne do dostosowania. Przykład:

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

Konfiguracja

Zanim skonfigurujesz narzędzie OpenWeave za pomocą różnych skryptów i nagłówków, użyj narzędzi automatycznych, aby pobrać odpowiednie pliki kompilacji:

./bootstrap

Tę czynność trzeba wykonać raz po przejściu do drzewa, a potem w przypadku zmian w configure.ac i Makefile.am. Nie musisz powtarzać tych ustawień przy zmianie konfiguracji lub celu kompilacji.

Skrypty

Aby dowiedzieć się więcej o opcjach do skonfigurowania, użyj flagi --help z dołączonym skryptem konfiguracji.

./configure --help

Aby na przykład skonfigurować OpenWeave bez obsługi BlueZ:

./configure --without-bluez

nagłówków,

Uwzględnione obiekty Makefiles używają 2 plików nagłówka, które określają stałe w czasie kompilacji:

Możesz też podać nagłówki konfiguracji konkretnego projektu. Umieść te pliki w katalogu projektu – nie umieszczaj ich w repozytorium OpenWeave. Wybierz odpowiednią opcję konfiguracji, aby podczas konfiguracji określić lokalizację każdego pliku:

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

Aby na przykład skonfigurować OpenWeave tak, aby używał WeaveProjectConfig.h projektu związanego z projektem w ~/my-project/headers:

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