Google is committed to advancing racial equity for Black communities. See how.
Cette page a été traduite par l'API Cloud Translation.
Switch to English

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 OS 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 devrait fonctionner.
C / C ++, Java, liaisons 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 cloner une sous-arborescence de répertoires dans une autre avec des liens symboliques.
C / C ++, liaisons Cocoa
Cibles armv7-pomme-darwin-ios
armv7s-pomme-darwin-ios
i386-pomme-darwin-ios
C / C ++, liaisons Python
Chaînes à outils LLVM / clang 3,5 (6,0)
Cibles i386-pomme-darwin-macosx
x86_64-pomme-darwin-macosx

les fenêtres

Exigences: Prise en charge de la ligne de commande Cygwin pour 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 * -unknown-linux *
bras * -unknown-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 fournie par le système des outils automatiques sous Linux:

sudo apt-get install libtool autoconf automake

Pour les systèmes où les Autotools 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 construction solide prête à l'emploi, Nest Labs a créé une version clé en main personnalisée 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 Autotools 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 Configuration heureuse 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. Cloner le référentiel OpenWeave:
    git clone https://github.com/openweave/openweave-core.git
  2. Créez l'application OpenWeave Standalone: ​​
    cd openweave-core
    make -f Makefile-Standalone

Utilisez l'indicateur d' help avec Makefile-Standalone pour savoir quels commutateurs de build sont disponibles pour la personnalisation de build.

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. Cloner le référentiel OpenWeave:
    git clone https://github.com/openweave/openweave-core.git
  2. Configurer l'environnement de construction pour GNU Autotools:
    cd openweave-core
    ./bootstrap
    ./configure
  3. Construire OpenWeave:
    make all
  4. Mettre en scène la sortie vers un emplacement distinct pour la liaison du projet:
    mkdir <openweave-output>
    make DESTDIR=<openweave-output> install

Après la <openweave-output> , utilisez les répertoires sous <openweave-output> pour la liaison de projet:

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

Android et iOS

Pour créer des bibliothèques pour la liaison de projets Android et iOS, utilisez les Makefiles spécifiques à la plate-forme:

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

Utilisez l'indicateur d' help avec Makefile- <platform> pour savoir quels commutateurs de build sont disponibles pour la personnalisation de build. Par exemple:

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

Configuration

Avant de configurer OpenWeave avec divers scripts et en-têtes, utilisez les autotools pour amorcer les fichiers de construction appropriés:

./bootstrap

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

Les scripts

Utilisez l'indicateur --help 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 Makefiles inclus utilisent deux fichiers d'en-tête qui définissent des constantes au moment de la compilation:

Des en-têtes de configuration spécifiques au projet peuvent également être fournis. Placez ces fichiers dans le répertoire de votre 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 Option de configuration
InetProjectConfig.h --with-weave-inet-project-includes= <directory>
WeaveProjectConfig.h --with-weave-project-includes= <directory>

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

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