Membuat OpenWeave

Toolchain utama yang didukung untuk mem-build OpenWeave adalah GNU Autotools.

Persyaratan sistem

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

Linux

Persyaratan: Ubuntu 14.04 (Trusty) secara resmi didukung, tetapi sistem berbasis Linux serupa lainnya akan berfungsi.
Binding C/C++, Java, Python
Toolchain gcc 4.6.3
Targets i386-tidak diketahui-linux-gnu
x86_64-unknown-linux-gnu
C/C++, binding Java
Toolchain gcc 4.6
Targets arm-unknown-linux-android
armv7-unknown-linux-android
i386-unknown-linux-android

Mac OS X

Persyaratan: XQuartz untuk membuat cloning satu subhierarki direktori ke subhierarki yang lain dengan link simbolis.
C/C++, Pengikatan kakao
Targets armv7-apple-darwin-ios
armv7s-apple-darwin-ios
i386-apple-darwin-ios
C/C++, binding Python
Toolchain LLVM/Clang 3.5 (6.0)
Targets i386-apel-darwin-macosx
x86_64-apel-darwin-macosx

Windows

Persyaratan: Cygwin untuk dukungan command line Linux.
Binding C/C++
Toolchain gcc 4.8.3
Targets i686-pc-cygwin

Embedded

Binding C/C++
Toolchain gcc 4.4.1
LLVM/clang 3.1
LLVM/clang 3.3
Targets arm*-unknown-linux*
lengan*-unknown-freertos-lwip

Prasyarat

Selain toolchain yang didukung, sebaiknya instal paket dan alat berikut sebelum mem-build 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

Alat GNU

OpenWeave bergantung pada GNU Autotools untuk sistem build-nya. Versi GNU Autotools harus tersedia agar berhasil membuat OpenWeave. Untuk menggunakan versi alat otomatis yang disediakan sistem di Linux:

sudo apt-get install libtool autoconf automake

Untuk sistem tempat GNU Autotools tidak tersedia atau dapat diinstal (misalnya, Mac OS) atau pada sistem di mana versi yang disediakan sistem tidak menyediakan pembuatan build siap pakai yang solid, Nest Labs telah membuat framework sistem build siap pakai yang disesuaikan, berdasarkan GNU Autotools. Sistem menyematkan serangkaian program yang digunakan dalam pembuatan build ke versi baik yang diketahui. Penyematan alat ke versi tertentu juga memastikan churn yang relatif rendah dalam output alat otomatis sehingga menghasilkan pengalaman dukungan dan developer yang dapat diprediksi. Build Nest Lab GNU Autotools direkomendasikan untuk digunakan dengan OpenWeave.

Untuk membuat Nest Labs GNU Autotools:

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

Musik gembira

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

Aplikasi mandiri

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

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

Gunakan flag help dengan Makefile-Standalone untuk mempelajari tombol build yang tersedia untuk penyesuaian build.

make -f Makefile-Standalone help

Misalnya, untuk mengaktifkan kode debug Weave dan logging:

make -f Makefile-Standalone DEBUG=1

Penautan project

  1. Clone repositori OpenWeave:
    git clone https://github.com/openweave/openweave-core.git
  2. Konfigurasikan lingkungan build untuk GNU Autotools:
    cd openweave-core
    ./bootstrap
    ./configure
  3. Mem-build OpenWeave:
    make all
  4. Tahapkan output ke lokasi terpisah untuk penautan project:
    mkdir <openweave-output>
    make DESTDIR=<openweave-output> install

Setelah staging, gunakan direktori di <openweave-output> untuk penautan project:

  • /usr/local/include — header publik
  • /usr/local/lib — library

Android dan iOS

Untuk membuat library bagi penautan project Android dan iOS, gunakan Makefiles khusus platform:

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

Gunakan flag help dengan Makefile-<platform> untuk mempelajari tombol build yang tersedia untuk penyesuaian build. Misalnya:

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

Konfigurasi

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

./bootstrap

Langkah ini harus dilakukan sekali, setelah checkout pohon, dan selanjutnya pada setiap perubahan pada configure.ac atau Makefile.am. Tidak perlu diulang hanya dengan mengubah konfigurasi atau target build.

Skrip

Gunakan flag --help dengan skrip konfigurasi yang disertakan untuk mempelajari lebih lanjut opsi yang dapat dikonfigurasi.

./configure --help

Misalnya, untuk mengonfigurasi OpenWeave tanpa dukungan BlueZ:

./configure --without-bluez

Header

Makefiles yang disertakan menggunakan dua file header yang menentukan konstanta pada waktu kompilasi:

Header konfigurasi khusus project juga mungkin disediakan. Tempatkan file ini di direktori project Anda—jangan tempatkan di dalam repositori OpenWeave. Gunakan opsi konfigurasi yang sesuai untuk menentukan setiap lokasi file selama konfigurasi:

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

Misalnya, untuk mengonfigurasi OpenWeave agar menggunakan file WeaveProjectConfig.h khusus project yang berada di ~/my-project/headers:

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