blob: 548d302ffb1246599e97d8bba3e3aef4b2d1c7e7 [file] [log] [blame] [view]
# 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
Make sure you have a bin/ directory in your home directory
and that it is included in your path:
```
mkdir ~/bin
PATH=~/bin:$PATH
```
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
| Path | Description |
|----------------|------------------------------------|
| include/ | Includes to be used by device code |
| src/ | Implementation sources |
| examples/ | Example of device code |
| third_party/ | Dependencies |
| \*.gyp\* files | Build files |
# Quick start on Debian/Ubuntu
### Install prerequisites
```
examples/prerequisites.sh
```
### Build library, tests, run tests, build example
```
examples/build.sh
```
### Execute example (see this [README](/examples/daemon/README.md) 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
### 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
### Configure git
Make sure to have correct user in local or global config e.g.:
```
git config --local user.name "User Name"
git config --local user.email user.name@example.com
```
### Start local branch
```
repo start <branch name> .
```
### Edit code and commit locally e.g.
```
git commit -a -v
```
### Upload CL
```
repo upload .
```
### Request code review
Go to the url from the output of "repo upload" and add reviewers.