blob: 7e519b97b8b18b66791e828be0a6bae6e72ad18e [file] [log] [blame]
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.