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 |
| |||||
C/C++, wiązania Javy |
|
Mac OS X | ||||||
---|---|---|---|---|---|---|
Wymagania: XQuartz do klonowania jedno poddrzewo katalogu do drugiego z linków symbolicznych. | ||||||
C/C++, Wiązania kakaowe |
| |||||
C/C++, wiązania Pythona |
|
Okna | ||||||
---|---|---|---|---|---|---|
Wymagania: Cygwin dla Linux wsparcie linii poleceń. | ||||||
Wiązania C/C++ |
|
Wbudowany | ||||||
---|---|---|---|---|---|---|
Wiązania C/C++ |
|
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.
- Klonowania repozytorium OpenWeave:
git clone https://github.com/openweave/openweave-core.git
- 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
- Klonowania repozytorium OpenWeave:
git clone https://github.com/openweave/openweave-core.git
- Skonfigurować środowisko budowania GNU Autotools:
cd openweave-core
./bootstrap
./configure
- Budowa OpenWeave:
make all
- 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