OpenWeave oluşturma

OpenWeave derlemek için desteklenen birincil araç zinciri GNU Autotools'dur.

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 desteklenir, ancak benzer Linux tabanlı sistem çalışır.
C/C++, Java, Python bağlantıları
Alet Zincirleri gcc 4.6.3
Hedefler i386-unknown-linux-gnu
x86_64-unknown-linux-gnu
C/C++, Java bağlamaları
Alet Zincirleri gcc 4.6
Hedefler kol-bilinmeyen-linux-android
armv7-unknown-linux-android
i386-unknown-linux-android

Mac OS X

Gereksinimler: Bir dizin alt ağacını, sembolik bağlantılarle klonlamak için XQuartz.
C/C++, Kakao bağlantıları
Hedefler Armv7-apple-darwin-ios
Armv7s-apple-darwin-ios
i386-apple-darwin-ios
C/C++, Python bağlamaları
Alet Zincirleri LLVM/clang 3.5 (6.0)
Hedefler i386-apple-darwin-macosx
x86_64-apple-darwin-macosx

Windows

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

Yerleşik

C/C++ bağlamalar
Alet Zincirleri gcc 4.4.1
LLVM/clang 3.1
LLVM/clang 3.3
Hedefler kol*-unknown-linux*
kol*-unknown-freertos-lwip

Ön koşullar

Desteklenen bir araç zincirine ek olarak, OpenWeave oluşturmadan önce aşağıdaki paketleri ve araçları yüklemenizi ö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 Autotools

OpenWeave, derleme sistemi için GNU Autotools'a bağlıdır. OpenWeave'i başarılı bir şekilde oluşturmak için bir GNU Autotools sürümü bulunmalı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'ın hemen kullanılamadığı veya yüklenemediği sistemler (örneğin, Mac OS) veya sistem tarafından sağlanan sürümün sağlam bir kullanıma hazır derleme sağlamadığı sistemlerde Nest Labs, GNU Autotools'a dayalı, özelleştirilmiş ve kullanıma hazır bir derleme sistemi çerçevesi oluşturur. Sistem, derleme oluşturmada kullanılan program grubunu bilinen iyi bir sürüme sabitler. Araçların belirli bir sürüme sabitlenmesi de otomatik araçların üretilmesinde nispeten düşük bir kullanıcı kaybına neden olur. Böylece, tahmin edilebilir geliştirici ve destek deneyimi sağlanır. GNU Autotools'un Nest Labs yapısının OpenWeave ile kullanılması önerilir.

Nest Labs GNU Autotools 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 yer alan test komut dosyalarını çalıştırmak veya simüle edilmiş topolojilerde Weave'i kullanmak için Linux makinenize Happy'yi yükleyin. Daha fazla bilgi için Mutlu kurulum bölümüne bakın.

Bağımsız uygulama

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

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

Derleme özelleştirmede kullanılabilecek derleme anahtarlarını öğrenmek için Makefile-Standalone ile help işaretini kullanın.

make -f Makefile-Standalone help

Örneğin, Weave hata ayıklama kodunu ve günlük kaydını etkinleştirmek için:

make -f Makefile-Standalone DEBUG=1

Proje bağlantısı

  1. OpenWeave veri deposunu klonlayın:
    git clone https://github.com/openweave/openweave-core.git
  2. GNU Autotools için derleme ortamını yapılandırın:
    cd openweave-core
    ./bootstrap
    ./configure
  3. OpenWeave oluşturun:
    make all
  4. Çıkışı, proje bağlantısı için ayrı bir konumda aşamalı olarak sunun:
    mkdir <openweave-output>
    make DESTDIR=<openweave-output> install

Hazırlıktan sonra, proje bağlantısı için <openweave-output> altındaki dizinleri kullanın:

  • /usr/local/include — genel üstbilgiler
  • /usr/local/lib — kitaplıklar

Android ve iOS

Android ve iOS proje bağlantıları için kitaplık oluşturmak istiyorsanız platforma özgü Makefiles kullanın:

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

Derleme özelleştirmede kullanılabilecek derleme anahtarlarını öğrenmek için Makefile-<platform> ile help işaretini kullanın. Ö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ı başlatmak için otomatik araçları kullanın:

./bootstrap

Bu adımın bir kez, ağaç ödemesi yapıldıktan sonra ve ardından configure.ac veya Makefile.am ile ilgili tüm değişikliklerde yapılması gerekir. Bu işlemi, yalnızca derleme yapılandırmalarını veya hedeflerini değiştirirken tekrarlamanız gerekmez.

Komut Dosyaları

Yapılandırılabilir seçenekler hakkında daha fazla bilgi edinmek için birlikte verilen yapılandırma komut dosyasıyla --help işaretini kullanın.

./configure --help

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

./configure --without-bluez

Üst bilgiler

Dahil edilen Makefiles, derleme zamanında sabit değerleri tanımlayan iki başlık dosyası kullanır:

Projeye özgü yapılandırma başlıkları da sağlanabilir. Bu dosyaları proje dizininize yerleştirin; OpenWeave deposuna yerleştirmeyin. Yapılandırma sırasında her bir 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, OpenWeave'i ~/my-project/headers içinde bulunan projeye özel bir WeaveProjectConfig.h dosyası kullanacak şekilde yapılandırmak için:

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