blob: c78283b66ba7b8e4f25521f215af152753abfd57 [file] [log] [blame]
Overview
--------
libWeave is the library with device side implementation of Weave
protocol.
Sources
-------
Sources are located in git repository at
https://weave.googlesource.com/weave/libweave/
Install Repo
-------
1. Make sure you have a bin/ directory in your home directory
and that it is included in your path:
mkdir ~/bin
PATH=~/bin:$PATH
2. Download the Repo tool and ensure that it is executable:
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
Checkout code
-------
repo init -u https://weave.googlesource.com/weave/manifest
repo sync
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 Debian/Ubuntu
----------------------------
Install prerequisites:
examples/prerequisites.sh
Build library, tests, run tests, build example:
examples/build.sh
Execute example (check examples/daemon/README for details):
sudo out/Debug/weave_daemon
Prerequisites
-------------
Common:
autoconf
automake
binutils
libtool
gyp
libexpat1-dev
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 build files:
gyp -I libweave_common.gypi --toplevel-dir=. --depth=. \
-f make libweave_standalone.gyp
Build library with tests:
make
Build library only:
make 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
Start local branch
repo start <branch name> .
Edit code and commit locally e.g.:
git commit -a -v
Upload CL:
repo upload .
Go to the url from the output of "repo upload" and add reviewers.