| Overview |
| -------- |
| libWeave is the library to with device side implementation of Weave |
| protocol. |
| |
| Sources |
| ------- |
| Sources are located in git repository at |
| https://weave.googlesource.com/weave/libweave/ |
| |
| Checkout code with: |
| |
| git clone https://weave.googlesource.com/weave/libweave && \ |
| (cd libweave && \ |
| curl -Lo `git rev-parse --git-dir`/hooks/commit-msg \ |
| https://gerrit-review.googlesource.com/tools/hooks/commit-msg ;\ |
| chmod +x `git rev-parse --git-dir`/hooks/commit-msg) |
| |
| Directory structure |
| ------------------- |
| Includes to be used by device code: |
| include/ |
| |
| Implementation sources: |
| src/ |
| |
| Example of device code: |
| examples/ |
| |
| Dependencies: |
| third_party/ |
| |
| Build files: |
| libweave_standalone.gyp |
| libweave_common.gypi |
| |
| Quick start on Ubuntu |
| --------------------- |
| |
| Install prerequisites: |
| |
| examples/ubuntu/prerequisites.sh |
| |
| Build library, tests, run tests, build example: |
| |
| examples/ubuntu/build.sh |
| |
| Execute example: |
| |
| sudo out/Debug/weave |
| |
| |
| Prerequisites |
| ------------- |
| Common: |
| |
| autoconf |
| automake |
| binutils |
| libtool |
| gyp |
| libexpat1-dev |
| ninja-build |
| |
| For tests: |
| |
| gtest |
| gmock |
| |
| For examples: |
| |
| hostapd |
| libavahi-client-dev |
| libcurl4-openssl-dev |
| libevent 2.1.x-alpha |
| |
| |
| Compiling |
| --------- |
| Everywhere below Debug can be replaced with Release. |
| |
| Generate ninja build files: |
| |
| gyp -I libweave_common.gypi --toplevel-dir=. --depth=. \ |
| -f ninja libweave_standalone.gyp |
| |
| Build library with tests: |
| |
| ninja -C out/Debug |
| |
| Build library only: |
| |
| ninja -C out/Debug libweave |
| |
| Testing |
| ------- |
| Run unittests tests: |
| |
| out/Debug/libweave_testrunner |
| out/Debug/libweave_exports_testrunner |
| |
| Making changes |
| -------------- |
| Make sure to have correct user in local or global config e.g.: |
| |
| git config --local user.name "John Doe" |
| git config --local user.email johndoe@example.com |
| |
| Edit code and commit locally e.g.: |
| |
| git commit -a -v |
| |
| Upload CL: |
| |
| git push origin HEAD:refs/for/master |
| |
| Go to the url from the output of "push" and add reviewers. |