Construire OpenWeave

La principale chaîne d'outils prise en charge pour la construction d'OpenWeave est GNU Autotools.

Configuration requise

Toutes les principales plates-formes de système d'exploitation prennent en charge la construction et la compilation croisée d'OpenWeave. Les chaînes d'outils répertoriées ont été officiellement testées par Nest.

Linux

Exigences: Ubuntu 14.04 (Trusty) est officiellement pris en charge, mais tout système similaire basé sur Linux devraient fonctionner.
Liaisons C/C++, Java, Python
Chaînes à outils gcc 4.6.3
Cibles i386-inconnu-linux-gnu
x86_64-inconnu-linux-gnu
C/C++, liaisons Java
Chaînes à outils gcc 4.6
Cibles arm-inconnu-linux-android
armv7-inconnu-linux-android
i386-inconnu-linux-android

Mac OS X

Exigences: XQuartz pour le clonage d' un sous - arbre de répertoire à un autre avec des liens symboliques.
C/C++, liaisons Cocoa
Cibles armv7-apple-darwin-ios
armv7s-apple-darwin-ios
i386-apple-darwin-ios
C/C++, liaisons Python
Chaînes à outils LLVM/clang 3.5 (6.0)
Cibles i386-apple-darwin-macosx
x86_64-apple-darwin-macosx

les fenêtres

Exigences: Cygwin pour le soutien de la ligne de commande Linux.
Liaisons C/C++
Chaînes à outils gcc 4.8.3
Cibles i686-pc-cygwin

Embarqué

Liaisons C/C++
Chaînes à outils gcc 4.4.1
LLVM/clang 3.1
LLVM/clang 3.3
Cibles arm*-inconnu-linux*
arm*-inconnu-freertos-lwip

Conditions préalables

En plus d'une chaîne d'outils prise en charge, nous vous recommandons d'installer les packages et outils suivants avant de créer OpenWeave.

Paquets

Linux :

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

Linux et Mac OS X :

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

Outils automatiques GNU

OpenWeave dépend de GNU Autotools pour son système de construction. Une version de GNU Autotools doit être disponible pour réussir à construire OpenWeave. Pour utiliser la version d'autotools fournie par le système sous Linux :

sudo apt-get install libtool autoconf automake

Pour les systèmes où les outils automatiques GNU ne sont pas facilement disponibles ou installables (par exemple, Mac OS) ou sur les systèmes où la version fournie par le système ne fournit pas une génération de build prête à l'emploi solide, Nest Labs a créé un build clé en main personnalisé framework système, basé sur GNU Autotools. Le système épingle l'ensemble des programmes utilisés dans la génération de build à une bonne version connue. L'épinglage des outils à une version particulière garantit également un taux de désabonnement relativement faible dans la sortie des outils automatiques, conduisant ainsi à une expérience prévisible des développeurs et du support. La version Nest Labs de GNU Autotools est recommandée pour une utilisation avec OpenWeave.

Pour créer les outils automatiques GNU de Nest Labs :

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

Heureux

Pour exécuter les scripts de test inclus dans OpenWeave, ou pour utiliser Weave dans des topologies simulées, installez Happy sur votre machine Linux. Voir la configuration Heureux pour plus d' informations.

Application autonome

Utilisez l'application OpenWeave Standalone par défaut pour un hôte de développement de bureau ou de serveur.

  1. Clone du dépôt de OpenWeave:
    git clone https://github.com/openweave/openweave-core.git
  2. Construire l'application autonome OpenWeave:
    cd openweave-core
    make -f Makefile-Standalone

Utilisez l' help drapeau avec Makefile-Standalone pour apprendre ce build commutateurs sont disponibles pour la construction de personnalisation.

make -f Makefile-Standalone help

Par exemple, pour activer le code de débogage et la journalisation de Weave :

make -f Makefile-Standalone DEBUG=1

Liaison de projet

  1. Clone du dépôt de OpenWeave:
    git clone https://github.com/openweave/openweave-core.git
  2. Configurer l'environnement de compilation pour GNU Autotools:
    cd openweave-core
    ./bootstrap
    ./configure
  3. Construire OpenWeave:
    make all
  4. Mettre en scène la sortie vers un emplacement séparé pour la liaison du projet:
    mkdir <openweave-output>
    make DESTDIR=<openweave-output> install

Après la mise en scène, utilisez les répertoires sous <openweave-output> pour le projet liant:

  • /usr/local/include - les en- têtes publics
  • /usr/local/lib - bibliothèques

Androïd et iOS

Pour les bibliothèques de construction pour le projet Android et iOS liaison, utilisez les plates-formes spécifiques Makefiles :

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

Utilisez l' help drapeau avec Makefile- <platform> - Makefile- <platform> pour savoir ce que les commutateurs de construction sont disponibles pour la construction de personnalisation. Par example:

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

Configuration

Avant de configurer OpenWeave avec divers scripts et en-têtes, utilisez les outils automatiques pour amorcer les fichiers de construction pertinents :

./bootstrap

Cette étape doit être effectuée une fois, après une caisse d'arbre, puis sur toute modification configure.ac ou Makefile.am . Il n'est pas nécessaire de le répéter lors de la simple modification des configurations de build ou des cibles.

Scénarios

Utilisez le --help drapeau avec le script de configuration inclus pour en savoir plus sur les options configurables.

./configure --help

Par exemple, pour configurer OpenWeave sans le support BlueZ :

./configure --without-bluez

En-têtes

Les inclus Makefiles utilisent deux fichiers d' en- tête qui définissent des constantes à la compilation:

Des en-têtes de configuration spécifiques au projet peuvent également être fournis. Placez ces fichiers dans votre répertoire de projet, ne les placez pas dans le référentiel OpenWeave. Utilisez l'option de configuration appropriée pour spécifier l'emplacement de chaque fichier lors de la configuration :

En tête de fichier Possibilité de configuration
InetProjectConfig.h --with-weave-inet-project-includes= <directory>
WeaveProjectConfig.h --with-weave-project-includes= <directory>

Par exemple, pour configurer OpenWeave d'utiliser un projet spécifique WeaveProjectConfig.h fichier situé dans ~/my-project/headers en- ~/my-project/headers :

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