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 |
|
|||||
C/C++, binding Java |
|
Mac OS X | ||||||
---|---|---|---|---|---|---|
Persyaratan: XQuartz untuk membuat cloning satu subhierarki direktori ke subhierarki yang lain dengan link simbolis. | ||||||
C/C++, Pengikatan kakao |
|
|||||
C/C++, binding Python |
|
Windows | ||||||
---|---|---|---|---|---|---|
Persyaratan: Cygwin untuk dukungan command line Linux. | ||||||
Binding C/C++ |
|
Embedded | ||||||
---|---|---|---|---|---|---|
Binding C/C++ |
|
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.
- Clone repositori OpenWeave:
git clone https://github.com/openweave/openweave-core.git
- 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
- Clone repositori OpenWeave:
git clone https://github.com/openweave/openweave-core.git
- Konfigurasikan lingkungan build untuk GNU Autotools:
cd openweave-core
./bootstrap
./configure
- Mem-build OpenWeave:
make all
- 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