OpenWeave'i oluşturun

OpenWeave oluşturmak için desteklenen birincil araç zinciri GNU Autotools'tur.

Sistem gereksinimleri

Tüm büyük işletim sistemi platformları, OpenWeave'in oluşturulmasını ve çapraz derlenmesini destekler. Listelenen araç zincirleri, Nest tarafından resmi olarak test edilmiştir.

Linux

Gereksinimler: Ubuntu 14.04 (Trusty) resmi olarak desteklenen, ancak benzer herhangi Linux tabanlı sistem çalışması gerekir.
C/C++, Java, Python bağlamaları
alet zincirleri gcc 4.6.3
Hedefler i386-bilinmeyen-linux-gnu
x86_64-bilinmeyen-linux-gnu
C/C++, Java bağlamaları
alet zincirleri gcc 4.6
Hedefler kol-bilinmeyen-linux-android
armv7-bilinmeyen-linux-android
i386-bilinmeyen-linux-android

Mac OS X

Gereksinimler: XQuartz sembolik bağlantıları olan başka bir dizin alt ağacı klonlama için.
C/C++, Kakao bağlamaları
Hedefler armv7-elma-darwin-ios
armv7s-elma-darwin-ios
i386-elma-darwin-ios
C/C++, Python bağlamaları
alet zincirleri LLVM/clang 3.5 (6.0)
Hedefler i386-elma-darwin-macosx
x86_64-elma-darwin-macosx

pencereler

Gereksinimler: Cygwin Linux komut satırı desteği için.
C/C++ bağlamaları
alet zincirleri gcc 4.8.3
Hedefler i686-pc-cygwin

gömülü

C/C++ bağlamaları
alet zincirleri gcc 4.4.1
LLVM/klan 3.1
LLVM/klan 3.3
Hedefler kol*-bilinmeyen-linux*
arm*-unknown-freertos-lwip

Önkoşullar

Desteklenen bir araç zincirine ek olarak, OpenWeave'i oluşturmadan önce aşağıdaki paketleri ve araçları kurmanızı öneririz.

Paketler

Linux:

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

Linux ve Mac OS X:

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

GNU Otomatik Araçları

OpenWeave, yapı sistemi için GNU Autotools'a bağlıdır. OpenWeave'i başarılı bir şekilde oluşturmak için GNU Autotools'un bir sürümü mevcut olmalıdır. Linux'ta otomatik araçların sistem tarafından sağlanan sürümünü kullanmak için:

sudo apt-get install libtool autoconf automake

GNU Autotools'un hazır olmadığı veya kurulamadığı sistemler (örneğin, Mac OS) veya sistem tarafından sağlanan sürümün kullanıma hazır sağlam bir yapı üretimi sağlamadığı sistemler için Nest Labs, özelleştirilmiş, anahtar teslimi bir yapı oluşturmuştur. GNU Autotools'a dayalı sistem çerçevesi. Sistem, yapı oluşturmada kullanılan program kümesini bilinen iyi bir sürüme sabitler. Araçları belirli bir sürüme sabitlemek ayrıca otomatik araçların çıktısında nispeten düşük kesinti sağlar ve bu da öngörülebilir geliştirici ve destek deneyimine yol açar. GNU Autotools'un Nest Labs yapısının OpenWeave ile kullanılması önerilir.

Nest Labs GNU Autotools'u oluşturmak için:

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

Mutlu

OpenWeave'de bulunan test komut dosyalarını çalıştırmak veya Weave'i simüle edilmiş topolojilerde kullanmak için Linux makinenize Happy kurun. Bkz Mutlu kurulumu Daha fazla bilgi için.

Bağımsız uygulama

Bir masaüstü veya sunucu geliştirme ana bilgisayarı için varsayılan OpenWeave Bağımsız uygulamasını kullanın.

  1. OpenWeave deposunu Clone:
    git clone https://github.com/openweave/openweave-core.git
  2. OpenWeave Bağımsız uygulaması oluşturun:
    cd openweave-core
    make -f Makefile-Standalone

Kullanım help işaretleyin Makefile-Standalone inşa anahtarları inşa özelleştirme için hangi öğrenmek için.

make -f Makefile-Standalone help

Örneğin, Örgü hata ayıklama kodunu ve günlüğe kaydetmeyi etkinleştirmek için:

make -f Makefile-Standalone DEBUG=1

Proje bağlama

  1. OpenWeave deposunu Clone:
    git clone https://github.com/openweave/openweave-core.git
  2. GNU Autotools için oluşturma ortamını yapılandırın:
    cd openweave-core
    ./bootstrap
    ./configure
  3. Yapı OpenWeave:
    make all
  4. Proje bağlama için ayrı bir yere çıktı sahneye:
    mkdir <openweave-output>
    make DESTDIR=<openweave-output> install

Evreleme sonra altında dizinleri kullanmak <openweave-output> bağlama projesi için:

  • /usr/local/include - Kamu başlıklarını
  • /usr/local/lib - kütüphaneler

Android ve iOS

Android ve iOS proje bağlantı için inşa kütüphaneleri için, platforma özel kullanmak Makefiles :

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

Kullanım help işaretleyin Makefile- <platform> yapı anahtarları inşa özelleştirme için hangi öğrenmek için. Örneğin:

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

Yapılandırma

OpenWeave'i çeşitli komut dosyaları ve başlıklarla yapılandırmadan önce, ilgili derleme dosyalarını önyüklemek için otomatik araçları kullanın:

./bootstrap

Bu adım bir ağaç Kontrolden sonra ve daha sonra herhangi bir değişiklik üzerinde, bir kere gerçekleştirilmesi gereken configure.ac veya Makefile.am . Yalnızca yapı yapılandırmalarını veya hedeflerini değiştirirken tekrarlanması gerekmez.

Kodlar

Kullanım --help yapılandırılabilir seçenekleri hakkında daha fazla bilgi edinmek için dahil yapılandırma komut dosyası ile bayrağı.

./configure --help

Örneğin, OpenWeave'i BlueZ desteği olmadan yapılandırmak için:

./configure --without-bluez

Başlıklar

Dahil Makefiles derleme zamanında sabitleri tanımlayan iki başlık dosyaları kullanın:

Projeye özel konfigürasyon başlıkları da sağlanabilir. Bu dosyaları proje dizininize yerleştirin—onları OpenWeave deposuna yerleştirmeyin. Yapılandırma sırasında her dosyanın konumunu belirtmek için uygun yapılandırma seçeneğini kullanın:

Başlık dosyası Yapılandırma seçeneği
InetProjectConfig.h --with-weave-inet-project-includes= <directory>
WeaveProjectConfig.h --with-weave-project-includes= <directory>

Örneğin, yapılandırmak OpenWeave bir proje özgü kullanmak WeaveProjectConfig.h bulunan dosyayı ~/my-project/headers :

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