Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Bangun OpenWeave

Toolchain utama yang didukung untuk membangun OpenWeave adalah GNU Autotools.

Persyaratan sistem

Semua platform OS utama mendukung pembangunan dan kompilasi silang OpenWeave. Toolchain yang terdaftar telah diuji secara resmi oleh Nest.

Linux

Persyaratan: Ubuntu 14.04 (Trusty) secara resmi didukung, tetapi setiap mirip sistem berbasis Linux harus bekerja.
C/C++, Java, Python binding
Rantai alat gcc 4.6.3
Target i386-unknown-linux-gnu
x86_64-unknown-linux-gnu
C/C++, Java binding
Rantai alat gcc 4.6
Target arm-unknown-linux-android
armv7-unknown-linux-android
i386-unknown-linux-android

Mac OS X

Persyaratan: XQuartz untuk kloning satu direktori subtree ke yang lain dengan link simbolik.
C/C++, Kakao mengikat
Target armv7-apple-darwin-ios
armv7s-apple-darwin-ios
i386-apple-darwin-ios
C/C++, Python binding
Rantai alat LLVM/dentang 3.5 (6.0)
Target i386-apple-darwin-macosx
x86_64-apple-darwin-macosx

jendela

Persyaratan: Cygwin untuk dukungan baris perintah Linux.
Binding C/C++
Rantai alat gcc 4.8.3
Target i686-pc-cygwin

Tertanam

Binding C/C++
Rantai alat gcc 4.4.1
LLVM/dentang 3.1
LLVM/dentang 3.3
Target lengan*-unknown-linux*
lengan*-tidak diketahui-freertos-lwip

Prasyarat

Selain rantai alat yang didukung, kami menyarankan untuk menginstal paket dan alat berikut sebelum membangun OpenWeave.

Paket

Linux:

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

Linux dan Mac OS X:

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

GNU Autotools

OpenWeave bergantung pada GNU Autotools untuk sistem pembuatannya. Versi GNU Autotools harus tersedia untuk berhasil membangun OpenWeave. Untuk menggunakan versi autotools yang disediakan sistem di Linux:

sudo apt-get install libtool autoconf automake

Untuk sistem di mana GNU Autotools tidak tersedia atau tidak dapat diinstal (misalnya, Mac OS) atau pada sistem di mana versi yang disediakan sistem tidak menyediakan generasi build out-of-box yang solid, Nest Labs telah membuat build turnkey yang disesuaikan kerangka kerja sistem, berdasarkan GNU Autotools. Sistem menyematkan set program yang digunakan dalam pembuatan build ke versi bagus yang diketahui. Menyematkan alat ke versi tertentu juga memastikan churn yang relatif rendah dalam output alat otomatis sehingga mengarah ke pengalaman pengembang dan dukungan yang dapat diprediksi. Build Nest Labs dari GNU Autotools direkomendasikan untuk digunakan dengan OpenWeave.

Untuk membangun Nest Labs GNU Autotools:

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

Senang

Untuk menjalankan skrip pengujian yang disertakan dalam OpenWeave, atau untuk menggunakan Weave dalam topologi simulasi, instal Happy di mesin Linux Anda. Lihat Selamat pengaturan untuk informasi lebih lanjut.

Aplikasi mandiri

Gunakan aplikasi OpenWeave Standalone default untuk desktop atau host pengembangan server.

  1. Mengkloning repositori OpenWeave:
    git clone https://github.com/openweave/openweave-core.git
  2. Membangun aplikasi OpenWeave Standalone:
    cd openweave-core
    make -f Makefile-Standalone

Gunakan help bendera dengan Makefile-Standalone untuk mempelajari apa membangun switch yang tersedia untuk membangun kustomisasi.

make -f Makefile-Standalone help

Misalnya, untuk mengaktifkan kode debug Weave dan logging:

make -f Makefile-Standalone DEBUG=1

Penautan proyek

  1. Mengkloning repositori OpenWeave:
    git clone https://github.com/openweave/openweave-core.git
  2. Mengkonfigurasi membangun lingkungan untuk GNU autotools:
    cd openweave-core
    ./bootstrap
    ./configure
  3. Membangun OpenWeave:
    make all
  4. Tahap output ke lokasi terpisah untuk menghubungkan proyek:
    mkdir <openweave-output>
    make DESTDIR=<openweave-output> install

Setelah pementasan, gunakan direktori di bawah <openweave-output> untuk proyek yang menghubungkan:

  • /usr/local/include - header publik
  • /usr/local/lib - libraries

Android dan iOS

Untuk membangun perpustakaan untuk Android dan iOS menghubungkan proyek, menggunakan platform-spesifik Makefiles :

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

Gunakan help bendera dengan Makefile- <platform> untuk mempelajari apa membangun switch yang tersedia untuk membangun kustomisasi. Sebagai contoh:

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

Konfigurasi

Sebelum mengonfigurasi OpenWeave dengan berbagai skrip dan header, gunakan autotools untuk mem-bootstrap file build yang relevan:

./bootstrap

Langkah ini perlu dilakukan sekali, setelah checkout pohon, dan kemudian pada setiap perubahan configure.ac atau Makefile.am . Itu tidak perlu diulang ketika hanya mengubah konfigurasi atau target build.

Skrip

Gunakan --help bendera dengan konfigurasi script yang disertakan untuk mempelajari lebih lanjut tentang pilihan konfigurasi.

./configure --help

Misalnya, untuk mengonfigurasi OpenWeave tanpa dukungan BlueZ:

./configure --without-bluez

Header

Termasuk Makefiles menggunakan dua file header yang mendefinisikan konstanta pada saat kompilasi:

Header konfigurasi khusus proyek juga dapat disediakan. Tempatkan file-file ini di direktori proyek Anda—jangan letakkan di dalam repositori OpenWeave. Gunakan opsi konfigurasi yang sesuai untuk menentukan lokasi setiap file selama konfigurasi:

File header Opsi konfigurasi
InetProjectConfig.h --with-weave-inet-project-includes= <directory>
WeaveProjectConfig.h --with-weave-project-includes= <directory>

Misalnya, untuk mengkonfigurasi OpenWeave menggunakan proyek-spesifik WeaveProjectConfig.h file yang terletak di ~/my-project/headers :

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