Die primär unterstützte Toolchain zum Erstellen von OpenWeave sind GNU Autotools.
System Anforderungen
Alle wichtigen Betriebssystemplattformen unterstützen das Erstellen und Kompilieren von OpenWeave. Gelistete Toolchains wurden von Nest offiziell getestet.
Linux | ||||||
---|---|---|---|---|---|---|
Anforderungen: Ubuntu 14.04 (Trusty) wird offiziell unterstützt, aber jedes ähnliche Linux-basierte System sollte funktionieren. | ||||||
C / C ++, Java, Python-Bindungen |
| |||||
C / C ++, Java-Bindungen |
|
Mac OS X | ||||||
---|---|---|---|---|---|---|
Anforderungen: XQuartz zum Klonen eines Verzeichnis-Teilbaums in einen anderen mit symbolischen Links. | ||||||
C / C ++, Kakaobindungen |
| |||||
C / C ++, Python-Bindungen |
|
Windows | ||||||
---|---|---|---|---|---|---|
Anforderungen: Unterstützung für Cygwin für Linux-Befehlszeilen. | ||||||
C / C ++ - Bindungen |
|
Eingebettet | ||||||
---|---|---|---|---|---|---|
C / C ++ - Bindungen |
|
Voraussetzungen
Zusätzlich zu einer unterstützten Toolchain empfehlen wir, die folgenden Pakete und Tools zu installieren, bevor Sie OpenWeave erstellen.
Pakete
Linux:
sudo apt-get install python-pip python-setuptools bridge-utils /
libglib2.0-dev libdbus-1-dev libudev-dev /
libical-dev libreadline-dev
Linux und Mac OS X:
pip install --user google-cloud googleapis-common-protos grpc protobuf pycryptodomex
sudo cpan -i Text::Template
GNU Autotools
OpenWeave ist für sein Build-System von GNU Autotools abhängig. Eine Version von GNU Autotools muss verfügbar sein, um OpenWeave erfolgreich zu erstellen. So verwenden Sie die vom System bereitgestellte Version von Autotools unter Linux:
sudo apt-get install libtool autoconf automake
Für Systeme, auf denen die GNU Autotools nicht sofort verfügbar oder installierbar sind (z. B. Mac OS) oder auf Systemen, auf denen die vom System bereitgestellte Version keine solide sofort einsatzbereite Build-Generierung bietet, hat Nest Labs einen benutzerdefinierten, schlüsselfertigen Build erstellt System-Framework, basierend auf GNU Autotools. Das System fixiert die bei der Build-Generierung verwendeten Programme mit einer bekanntermaßen guten Version. Durch das Fixieren der Tools auf eine bestimmte Version wird auch eine relativ geringe Abwanderung der Ausgabe von Autotools sichergestellt, was zu einer vorhersehbaren Entwickler- und Supporterfahrung führt. Der Nest Labs-Build von GNU Autotools wird für die Verwendung mit OpenWeave empfohlen.
So erstellen Sie Nest Labs GNU Autotools:
git clone https://github.com/openweave/openweave-core.git
cd openweave-core
make -C third_party/nlbuild-autotools/repo/ tools
glücklich
Installieren Sie Happy auf Ihrem Linux-Computer, um die in OpenWeave enthaltenen Testskripte auszuführen oder Weave in simulierten Topologien zu verwenden. Weitere Informationen finden Sie unter Happy Setup .
Eigenständige Anwendung
Verwenden Sie die Standard-OpenWeave-Standalone-Anwendung für einen Desktop- oder Server-Entwicklungshost.
- Klonen Sie das OpenWeave-Repository:
git clone https://github.com/openweave/openweave-core.git
- Erstellen Sie die OpenWeave Standalone-Anwendung:
cd openweave-core
make -f Makefile-Standalone
Verwenden Sie das help
Flag mit Makefile-Standalone
, um zu erfahren, welche Build-Switches für die Build-Anpassung verfügbar sind.
make -f Makefile-Standalone help
So aktivieren Sie beispielsweise den Weave-Debugcode und die Protokollierung:
make -f Makefile-Standalone DEBUG=1
Projektverknüpfung
- Klonen Sie das OpenWeave-Repository:
git clone https://github.com/openweave/openweave-core.git
- Konfigurieren Sie die Build-Umgebung für GNU Autotools:
cd openweave-core
./bootstrap
./configure
- Erstellen Sie OpenWeave:
make all
- Stellen Sie die Ausgabe an einem separaten Ort für die Projektverknüpfung bereit:
mkdir <openweave-output>
make DESTDIR=<openweave-output> install
Verwenden Sie nach dem Staging die Verzeichnisse unter <openweave-output>
für die Projektverknüpfung:
-
/usr/local/include
- öffentliche Header -
/usr/local/lib
- Bibliotheken
Android und iOS
Verwenden Sie die plattformspezifischen Makefiles
um Bibliotheken für die Verknüpfung von Android- und iOS-Projekten zu erstellen:
make -f Makefile-Android
make -f Makefile-iOS
Verwenden Sie das help
Flag mit Makefile- <platform>
, um zu erfahren, welche Build-Switches für die Build-Anpassung verfügbar sind. Zum Beispiel:
make -f Makefile-Android help
make -f Makefile-iOS help
Aufbau
Verwenden Sie die Autotools, um die relevanten Build-Dateien zu booten, bevor Sie OpenWeave mit verschiedenen Skripten und Headern konfigurieren:
./bootstrap
Dieser Schritt muss einmal nach dem Auschecken eines Baums und anschließend bei Änderungen an configure.ac
oder Makefile.am
. Es muss nicht wiederholt werden, wenn einfach Build-Konfigurationen oder Ziele geändert werden.
Skripte
Verwenden Sie das Flag --help
mit dem enthaltenen Konfigurationsskript, um mehr über konfigurierbare Optionen zu erfahren.
./configure --help
So konfigurieren Sie OpenWeave beispielsweise ohne BlueZ-Unterstützung:
./configure --without-bluez
Überschriften
Die enthaltenen Makefiles
verwenden zwei Header-Dateien, die zur Kompilierungszeit Konstanten definieren:
Es können auch projektspezifische Konfigurationsheader bereitgestellt werden. Platzieren Sie diese Dateien in Ihrem Projektverzeichnis. Platzieren Sie sie nicht im OpenWeave-Repository. Verwenden Sie die entsprechende Konfigurationsoption, um den Speicherort jeder Datei während der Konfiguration anzugeben:
Header-Datei | Konfigurationsoption |
---|---|
InetProjectConfig.h | --with-weave-inet-project-includes= <directory> |
WeaveProjectConfig.h | --with-weave-project-includes= <directory> |
So konfigurieren Sie OpenWeave beispielsweise für die Verwendung einer projektspezifischen WeaveProjectConfig.h
Datei in ~/my-project/headers
:
./configure --with-weave-project-includes=~/my-project/headers