Die primäre unterstützte Toolchain zum Erstellen von OpenWeave ist GNU Autotools.
Systemanforderungen
Alle gängigen Betriebssystemplattformen unterstützen das Erstellen und Cross-Kompilierung von OpenWeave. Die aufgeführten Toolchains wurden offiziell von Nest getestet.
Linux | ||||||
---|---|---|---|---|---|---|
Anforderungen:Ubuntu 14.04 (Trusty) wird offiziell unterstützt, aber alle ähnlichen Linux-basierten Systeme sollten funktionieren. | ||||||
C/C++, Java, Python-Bindungen |
|
|||||
C/C++, Java-Bindungen |
|
Mac OS X | ||||||
---|---|---|---|---|---|---|
Anforderungen:XQuartz zum Klonen einer Verzeichnis-Unterstruktur auf eine andere mit symbolischen Links. | ||||||
C/C++, Kakaonbindungen |
|
|||||
C/C++, Python-Bindungen |
|
Windows | ||||||
---|---|---|---|---|---|---|
Anforderungen:Cygwin für die Linux-Befehlszeile. | ||||||
C/C++-Bindungen |
|
Eingebettet | ||||||
---|---|---|---|---|---|---|
C/C++-Bindungen |
|
Vorbereitung
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 hängt von GNU Autotools für sein Build-System ab. Für die erfolgreiche Erstellung von OpenWeave muss eine Version von GNU Autotools verfügbar sein. So verwenden Sie die vom System bereitgestellte Version der Autotools unter Linux:
sudo apt-get install libtool autoconf automake
Für Systeme, bei denen die GNU Autotools nicht leicht verfügbar oder installierbar sind (z. B. Mac OS) oder auf Systemen, in denen die vom System bereitgestellte Version keine feste Build-Generation bietet, wurde ein benutzerdefiniertes, einsatzbereites Build-System-Framework basierend auf GNU Autotools erstellt. Das System angepinnt die zum Erstellen der Generierung verwendeten Programme auf eine bekannte fehlerfreie Version. Durch das Anpinnen der Tools an eine bestimmte Version wird außerdem eine relativ niedrige Abwanderung bei der Ausgabe von Autotools gewährleistet, was zu einer vorhersehbaren Entwickler- und Supporterfahrung führt. Die Verwendung von Nest Labs von GNU Autotools wird für die Verwendung mit OpenWeave empfohlen.
So erstellen Sie GNU Autotools für Nest Labs:
git clone https://github.com/openweave/openweave-core.git
cd openweave-core
make -C third_party/nlbuild-autotools/repo/ tools
Fröhlich
Installieren Sie Happy auf Ihrem Linux-Computer, um die in OpenWeave enthaltenen Testskripts auszuführen oder Weave in simulierten Topologien zu verwenden. Weitere Informationen findest du unter Happy Setup.
Eigenständige Anwendung
Verwenden Sie die standardmäßige eigenständige OpenWeave-Anwendung für einen Desktop- oder Serverentwicklungshost.
- Klonen Sie das OpenWeave-Repository:
git clone https://github.com/openweave/openweave-core.git
- Erstellen Sie die eigenständige App „OpenWeave“:
cd openweave-core
make -f Makefile-Standalone
Verwenden Sie das Flag help
mit Makefile-Standalone
, um zu erfahren, welche Build-Schalter für die Build-Anpassung verfügbar sind.
make -f Makefile-Standalone help
So aktivieren Sie beispielsweise Weave-Debug-Code und -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 Speicherort für die Projektverknüpfung bereit:
mkdir <openweave-output>
make DESTDIR=<openweave-output> install
Nach dem Staging verwenden Sie die Verzeichnisse unter <openweave-output>
für die Projektverknüpfung:
/usr/local/include
– öffentliche Header/usr/local/lib
– Bibliotheken
Android- und iOS-Geräte
Verwende zum Erstellen von Bibliotheken für Android- und iOS-Projekte die plattformspezifische Makefiles
:
make -f Makefile-Android
make -f Makefile-iOS
Verwenden Sie das Flag help
mit Makefile-<platform>
, um zu erfahren, welche Build-Schalter für die Build-Anpassung verfügbar sind. Beispiel:
make -f Makefile-Android help
make -f Makefile-iOS help
Konfiguration
Bevor Sie OpenWeave mit verschiedenen Skripts und Headern konfigurieren, können Sie mit den Autotools die relevanten Build-Dateien per Bootstrahl speichern:
./bootstrap
Dieser Schritt muss einmal, nach einer Baumstruktur und dann bei Änderungen an configure.ac
oder Makefile.am
ausgeführt werden. Er muss nicht wiederholt werden, wenn Sie einfach Build-Konfigurationen oder Ziele ändern.
Skripts
Verwenden Sie das Flag --help
mit dem enthaltenen Konfigurationsskript, um mehr über konfigurierbare Optionen zu erfahren.
./configure --help
So konfigurieren Sie beispielsweise OpenWeave ohne BlueZ-Unterstützung:
./configure --without-bluez
Header
Das enthaltene Makefiles
verwendet zwei Headerdateien, die Konstanten zur Kompilierungszeit definieren:
Projektspezifische Konfigurationsheader können auch bereitgestellt werden. Legen Sie diese Dateien im Projektverzeichnis ab, nicht in das OpenWeave-Repository. Verwenden Sie die entsprechende Konfigurationsoption, um den Standort jeder Datei während der Konfiguration anzugeben:
Headerdatei | Konfigurationsoption |
---|---|
InetProjectConfig.h |
--with-weave-inet-project-includes=<directory> |
WeaveProjectConfig.h |
--with-weave-project-includes=<directory> |
So konfigurieren Sie beispielsweise OpenWeave, um eine projektspezifische WeaveProjectConfig.h
-Datei in ~/my-project/headers
zu verwenden:
./configure --with-weave-project-includes=~/my-project/headers